(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024141024
(43)【公開日】2024-10-10
(54)【発明の名称】制御システム、及び制御回路
(51)【国際特許分類】
G06N 20/00 20190101AFI20241003BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023052450
(22)【出願日】2023-03-28
(71)【出願人】
【識別番号】501241645
【氏名又は名称】学校法人 工学院大学
(71)【出願人】
【識別番号】505225197
【氏名又は名称】長崎県公立大学法人
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】小林 良太郎
(72)【発明者】
【氏名】加藤 雅彦
(57)【要約】
【課題】本開示は、ハードウェアに組み込まれた判別器の木構造とデータを更新可能とする。
【解決手段】制御システムは、機器に搭載されたプロセッサにおいて判別器における判別及び更新を可能とする制御システムである。制御システムは、判別器としての予め定められた完全二分木の第1木構造であって、書き換え可能なレジスタとして構成された各ノードのノード番号、特徴量番号、及び閾値の組を含む第1木構造を記憶した構造記憶回路と、更新対象の機械学習された第2木構造であって、ノード番号、特徴量番号、及び閾値の組である第2木構造を受信し、前記第2木構造のノード番号、特徴量番号、及び閾値の組を用いて前記構造記憶回路の前記第1木構造を書き換えて更新する更新部と、コアから出力される特徴量に応じて、前記構造記憶回路の前記第1木構造の各ノードを用いて、判別したい特徴量についての判別動作を制御する制御ユニットと、を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
機器に搭載されたプロセッサにおいて判別器における判別及び更新を可能とする制御システムであって、
判別器としての予め定められた完全二分木の第1木構造であって、書き換え可能なレジスタとして構成された各ノードのノード番号、特徴量番号、及び閾値の組を含む第1木構造を記憶した構造記憶回路と、
更新対象の機械学習された第2木構造であって、ノード番号、特徴量番号、及び閾値の組である第2木構造を受信し、前記第2木構造のノード番号、特徴量番号、及び閾値の組を用いて前記構造記憶回路の前記第1木構造を書き換えて更新する更新部と、
コアから出力される特徴量に応じて、前記構造記憶回路の前記第1木構造の各ノードを用いて、判別したい特徴量についての判別動作を制御する制御ユニットと、
を含む制御システム。
【請求項2】
前記プロセッサの外部に設置され、前記更新部と通信可能に接続された再学習部であって、
再学習により木構造を生成し、不完全二分木となるノードをダミーノードとし、各ダミーノードには任意の値をセットするようにして、予め定められた完全二分木の前記第1木構造との差分を埋めるように、回路情報としての前記第2木構造を生成する再学習部を更に含む、
請求項1に記載の制御システム。
【請求項3】
前記更新部は、前記第1木構造の各非終端ノードについて、当該非終端ノードに対応する前記第2木構造のノード番号、特徴量番号、及び閾値の組を用いて書き換えて更新する、請求項1に記載の制御システム。
【請求項4】
前記構造記憶回路は、各ノードを構成する複数のレジスタを有し、複数のレジスタによって、前記第1木構造の前記ノード番号、特徴量番号、及び閾値の組が管理される、請求項1に記載の制御システム。
【請求項5】
前記制御ユニットは、前記第2木構造を受信した場合に、前記構造記憶回路の判別器を用いて判別動作を実行した後に、前記判別動作を停止し、
前記更新部は、前記判別動作の停止後、受信した前記第2木構造により前記第1木構造を更新する、
請求項1に記載の制御システム。
【請求項6】
前記制御ユニットは、前記更新部による更新後に、更新された前記第1木構造を用いて、ルートノードから非終端ノードの判定を行っていき、終端ノードの値により判定結果を出力することで、前記判別動作を制御する、請求項1に記載の制御システム。
【請求項7】
前記構造記憶回路の情報はフラッシュメモリに記憶しておき、前記機器の電源がOFFになった場合、
前記更新部は、電源が再びONになった時点で前記フラッシュメモリから情報を読み出し、前記構造記憶回路に対して、更新後の前記第1木構造を形成するように更新動作を行う、請求項1に記載の制御システム。
【請求項8】
機器に搭載されたプロセッサにおいて判別器における判別及び更新を可能とする制御回路であって、
判別器としての予め定められた完全二分木の第1木構造であって、書き換え可能なレジスタとして構成された各ノードのノード番号、特徴量番号、及び閾値の組を含む第1木構造を記憶した構造記憶回路と、
更新対象の機械学習された第2木構造であって、ノード番号、特徴量番号、及び閾値の組である第2木構造を受信し、前記第2木構造のノード番号、特徴量番号、及び閾値の組を用いて前記構造記憶回路の前記第1木構造を書き換えて更新する更新部と、
コアから出力される特徴量に応じて、前記構造記憶回路の前記第1木構造の各ノードを用いて、判別したい特徴量についての判別動作を制御する制御ユニットと、
を含む制御回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システム、及び制御回路に関する。
【背景技術】
【0002】
従来、サイバー攻撃に対する異常検知に関する技術がある。
【0003】
例えば、ログの重要度を適切に判定可能とする手法に関する技術がある(特許文献1参照)。この技術では、ランダムフォレスト等による分析モデルを作成し、ログエントリに関する重要度を判定可能とするソフトウェア・プログラムを動作させる分析装置が開示されている。
【0004】
また、起動プログラムの改ざんをマイコンで検証する手法に関する技術がある(特許文献2参照)。この技術では、起動プログラムからハッシュ値を計算し、署名データのハッシュ値と比較し検証することが行われている。
【0005】
また、プロセッサ情報を用いた回路レベルのハードウェアによるマルウェア検知に関する技術が検討されている(非特許文献1参照)。この技術では、一つのLSIにおいてコアに隣接する検知回路の実装を検討している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】再表2018-235252号公報
【特許文献2】特開2019-128792号公報
【非特許文献】
【0007】
【非特許文献1】Kazuki Koike, Ryotaro Kobayashi, Masahiko Katoh. "IoT-oriented high-efficient anti-malware hardware focusing on time series metadata extractable from inside a processor core". International Journal of Information Security: 2022-02-25.
【発明の概要】
【発明が解決しようとする課題】
【0008】
昨今、IoT機器が、マルウェアに感染する事例が相次いでいる。しかし、PC・サーバ向けの従来のセキュリティ対策ソフトは、複雑なソフトウェアであり、PC・サーバにおいても動作を重くすることがある。そのため、小型で安価に提供する必要のあるIoT機器に搭載することは現実的ではない。例えば、監視カメラにセキュリティ対策ソフトをインストールして動作させることはできない。また、特許文献2のような検証では多様なマルウェアの検知には対応できない。一方、非特許文献1のように、ソフトウェアではなく、ハードウェアでマルウェア検知機構を実装する技術が提案されている。
【0009】
もっとも非特許文献1の技術では、一度ハードウェアに実装してしまうと、マルウェアに関する情報を更新できないという問題がある。配線で値を回路に埋め込むと、値の更新ができなくなる。上記機構では、検知のため、機械学習で得られた判別器をハードウェアとして実装している。機械学習のアルゴリズムとしては、小規模なハードウェアで実現可能なランダムフォレストを用いている。ランダムフォレストは、木構造モデルであり、各ノードは比較演算を行うだけであるため、比較的、単純なハードウェア構造となっている。ただし、既存技術で用いているランダムフォレストは、一度ハードウェアに回路として実装すると、その木構造とデータを変更することができなかった。そのため、新たなマルウェアが発生しても、新たなサイバー攻撃を学習し、判別器を更新することができなかった。また、判別器に設計段階で不具合などが含まれていた場合、製造後に修正することができなかった。
【0010】
本発明は、上記問題点を解決するために成されたものであり、ハードウェアに組み込まれた判別器の木構造とデータを更新可能とする制御システム、及び制御回路を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明に係る制御システムは、機器に搭載されたプロセッサにおいて判別器における判別及び更新を可能とする制御システムであって、判別器としての予め定められた完全二分木の第1木構造であって、書き換え可能なレジスタとして構成された各ノードのノード番号、特徴量番号、及び閾値の組を含む第1木構造を記憶した構造記憶回路と、更新対象の機械学習された第2木構造であって、ノード番号、特徴量番号、及び閾値の組である第2木構造を受信し、前記第2木構造のノード番号、特徴量番号、及び閾値の組を用いて前記構造記憶回路の前記第1木構造を書き換えて更新する更新部と、コアから出力される特徴量に応じて、前記構造記憶回路の前記第1木構造の各ノードを用いて、判別したい特徴量についての判別動作を制御する制御ユニットと、を含んで構成されている。
【0012】
また、本発明に係る制御回路は、機器に搭載されたプロセッサにおいて判別器における判別及び更新を可能とする制御回路であって、判別器としての予め定められた完全二分木の第1木構造であって、書き換え可能なレジスタとして構成された各ノードのノード番号、特徴量番号、及び閾値の組を含む第1木構造を記憶した構造記憶回路と、更新対象の機械学習された第2木構造であって、ノード番号、特徴量番号、及び閾値の組である第2木構造を受信し、前記第2木構造のノード番号、特徴量番号、及び閾値の組を用いて前記構造記憶回路の前記第1木構造を書き換えて更新する更新部と、コアから出力される特徴量に応じて、前記構造記憶回路の前記第1木構造の各ノードを用いて、判別したい特徴量についての判別動作を制御する制御ユニットと、を含んで構成される。
【発明の効果】
【0013】
本発明の制御システム、及び制御回路によれば、ハードウェアに組み込まれた判別器の木構造とデータを更新可能とすることができる、という効果が得られる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、上の再学習された更新後の木構造と、下の実装済みの木構造が異なる場合を模式的に示す図である。
【
図2】
図2は、ランダムフォレストで生成した木構造及び延伸処理の一例を示す図である。
【
図3】
図3は分類条件を付与する木構造の一例を示す図である。
【
図4】
図4は木構造のダミーノードにValueの値を付与する一例を示す図である。
【
図5】
図5は、木構造のレジスタを構成する場合の一例を示す図である。
【
図6】
図6は、本発明の実施形態の制御システムの構成を示す図である。
【
図7】
図7は、制御システムの制御処理の流れを示すシーケンスである。
【
図8】
図8は、レジスタに格納されるデータ及び木構造の各ノードを模式的に示す図である。
【
図9】
図9は、終端ノードの更新の一例を示す図である。
【
図10】
図10は、木構造の判別器を用いた判別処理の一例を示す図である。
【
図11】
図11は、制御ユニット114の各処理について、ハードウェア記述言語を用いてモジュール化し、状態遷移の機構としてプログラム的に各モジュールを動作させる場合の例である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0016】
まず、本発明の実施形態において前提となる背景及び概要を説明する。
【0017】
ランダムフォレストの木構造で学習されたハードウェア実装された判別器は、再学習を行うと決定木の木構造は毎回変化するが、実装されている木構造と更新したい木構造が異なると適切に更新できなくなるという問題がある。
【0018】
ここで、判別器としての木構造を定義する。木構造は、ノードとノードを結ぶ枝(エッジ)で構成される。全ノードのうち、先頭のノードをルート、末端のノードをリーフと呼ぶ。ノードの深さnはルートからの距離とする。ルートの深さは0、ノードから最短距離でn本の枝を経由した場合の深さはnとなる。
【0019】
図1は、上の再学習された更新後の木構造と、下の実装済みの木構造が異なる場合を模式的に示す図である。木構造が異なると、更新後のノードが存在しない場合(ノード10、11のケース)や更新前のノードが存在しない場合(ノードI、Jのケース)が生じ、適切に木構造情報を更新することができない。
【0020】
また、先行研究では、決定木の木構造を同じにして、ランダムフォレストをハードウェア上に実装することも行われている。この場合、生成される決定木はすべて、ある一定深さまでは同一の木構造になる。したがって、ある一定深さよりも深い部分のノードを枝切りし、残っている部分のみを取り出すことで、同一木構造を生成することができる。しかし、同一木構造にする際に深さを浅くしなければならず、その結果、判定精度が低くなってしまう。
【0021】
(更新手法の概要)
本実施形態の手法では、判別器をハードウェア上に実装後も再学習によって得られた内容へと更新することが可能で、かつ判定精度が高いマルウェア検知機構を提案する。本手法では、木構造の生成において、ハイパーパラメータにより深さを指定したうえで決定木を生成し、指定深さまで枝が伸びていない部分に対して、処理前後で判定結果が同じになるようにノードを補完する処理を実施する。これにより、決定木を一定の深さを満たして同一木構造になるように成形する。
【0022】
本手法の一つのポイントとして、ランダムフォレストによって不完全二分木が生成されるが、完全二分木との差分については、ダミーノードを設けて補完する点が挙げられる。各ダミーノードのレジスタには任意の値をセットし、ダミーノードのリーフ(ダミーリーフ)には、当該ダミーリーフの直近の祖先となるリーフのラベルを与える。これにより、どのような不完全二分木が生成されてもハードウェア上に木構造を反映させることが可能となる。ただし、ダミーノードの設定の仕方にはいくつかのパターンがあるため、一意に構造を決めないようにする必要がある。以下に、パターンのうちの一例を説明する。以下のパターンでは、ダミーノードについて、ノードを伸ばす、延伸する、追加するなどの表現としているが意味は同一である。
【0023】
パターンの一例について説明する。初めにハイパーパラメータにより深さを指定し、ランダムフォレストを生成する。
図2は、ランダムフォレストで生成した木構造及び延伸処理の一例を示す図である。ハイパーパラメータにより深さを指定しても各決定木は過学習を回避するために、
図2の上の木構造のように指定深さ(深さ3)まで枝が到達していない部分がある。そのため、深さが不足した部分に対して
図2の下の木構造のようにノードの追加を行う。その後、延伸処理前後で判定結果が同じになるように追加したダミーノードと、当該ダミーノードの親ノードに対して、終端ノード情報のValueと分類条件を付与していく。終端ノード情報は、Value=100(退避)、Value=400(退避)などである。なお、ノード中のdata[数値]は特徴量番号を示しており、判別において対応する特徴量番号の特徴量が読み込まれる。記号「<」の右側の値はノードに割り当てられる閾値である。本手法の木構造では、リーフの親より上の階層の各ノード(非終端ノード)について、予めノード番号、特徴量番号、及び閾値が定められる。非終端ノードは、特徴量及び閾値が読み込まれることで比較器として機能する。
【0024】
図3は分類条件を付与する木構造の一例を示す図である。追加したノードの親ノードはもともと終端ノードであるため、親ノードは分類条件を持っていない。したがって、親ノードに分類条件を付与していく。深さを一定以上に指定してランダムフォレストを生成すると深さ2までは同一木構造になる。そこで、
図3のように分類条件を付与したいノードの深さ-2の場所にある親ノードの分類条件をコピーして使用する。例ではダミーノードの親ノードに「If(data[10]<30000)」の分類条件をコピーしている。
【0025】
その後、追加したダミーノードに対して終端ノード情報であるValueの値を付与していく。
図4は木構造のダミーノードにValueの値を付与する一例を示す図である。
図4のように延伸元の終端ノード情報を、先ほど付与した分類条件を考慮し追加した終端ノードの左右どちらかに移動させる。ここでは、コピーした分類条件の分岐してくる側のノードに移動させる。分類条件が同じであるため、当該終端ノードにだけ分岐してくる。また、追加した終端ノードは2つとなり、もう一つの終端ノードにはまだValueが付与されていない。延伸元のノードの分類条件の付与により、ランダムフォレストの結果が、まだValueが付与されていない終端ノードに到達することはない。したがって、Valueが付与されていない終端ノードに対しては仮のValue値として適当な値を入れる。ここでは振り分けられるデータがないので0を入れる。これにより延伸処理前の決定木と延伸処理後の決定木で判定結果が同じになるようにでき、完全二分木との差分を埋めることができる。
【0026】
図5は、木構造のレジスタを構成する場合の一例を示す図である。従来のハードウェア構造では閾値などの値を配線で回路に埋め込んでおり、木構造情報の更新が実施できなかった。そこで、
図5のように決定木のノードごとにレジスタを用意し、レジスタ(例ではノードレジスタ及び閾値レジスタ)に閾値などの木構造情報を保持させることで、新たな木構造情報をレジスタに上書きする形で木構造情報の更新を実現できるようにする。従来は、閾値レジスタ部分が、グランド及び電源となっており閾値の値が配線で埋め込まれていた。本手法では、閾値を8bitの更新可能な閾値レジスタにより扱う。そのため、更新したい閾値で閾値レジスタを書き換えることで更新が可能となる。また、ノードレジスタを用いて、ノードに対応する特徴量番号などを同様に書き換えでき、更新された特徴量番号に対応した特徴量が入力されるように各ノードを構成できる。以上の延伸処理、ハードウェア構造変更を行い、提案するマルウェア検知機構を実現する。これにより、例えば、ハイパーパラメータが深さ4、ランダムフォレストの決定木数4とすることができる。
【0027】
<システム構成>
次に、本発明の実施形態に係る制御システムの構成について説明する。
図6に示すように、制御システム1は、機器2と、再学習部120とを備えている。機器2は、プロセッサ10(LSI)及び通信部30を備えており、プロセッサ10には、コア20及び制御回路100が隣接して組み込まれている。コア20、通信部30、及び制御回路100は通信バス60を介して接続されている。制御回路100は、構造記憶回路110と、更新部112と、制御ユニット114とを備えている。制御回路100は、制御ユニット114による制御によって、構造記憶回路110の判別器としての木構造(第1木構造)を用いて、コア20から出力された特徴量について、マルウェアであるか正常であるかを判別する。なお、更新部112、及び制御ユニット114を分けているが、制御ユニット114に一体として構成し、制御ユニット114で更新するようにしてもよい。
【0028】
コア20は、CPUとしてプログラムを実行し演算を行う回路であり、特徴量を制御回路100に出力する。なお、CPUが出力するプロセッサ情報は、マルチプレクサ(図示省略)を介して特徴量として制御回路100に入力されるが、本手法の主な技術態様ではないため説明を省略する。
【0029】
再学習部120は、プロセッサ10の外部に設置されており、再学習により更新対象の機械学習された第2木構造を生成する。回路情報としての第2木構造は、上述したように、不完全二分木となるノードをダミーノードとし、各ダミーノードには任意の値をセットするようにして、予め定められた完全二分木の第1木構造との差分を埋めるように生成する。第2木構造は回路情報として構造記憶回路110に格納可能な形式の木構造として、ノード番号、特徴量番号、及び閾値の組を生成する。再学習部120は、ハードウェアとしては、ランダムフォレスト等の機械学習が可能な任意のコンピュータを用いればよい。なお、再学習部120においてランダムフォレストで生成する木構造は、構造記憶回路110の第1木構造と同一の木構造となるようにハイパーパラメータ等が設定されているとする。
【0030】
通信部30は、インターネット等のネットワークNと接続されており、再学習部120で再学習され、出力された回路情報としての第2木構造を受信する。回路情報としての第2木構造は、一例として、ノード番号、特徴量番号、及び閾値の組である。
【0031】
構造記憶回路110には、書き換え可能なレジスタに判別器としての木構造(第1木構造)が記憶されている。構造記憶回路110は複数のレジスタで構成される。レジスタは、例えば、ノードレジスタ、特徴量番号レジスタ、特徴量レジスタ、閾値レジスタ、及びValueレジスタ等、適宜、木構造を構成するために必要な各種レジスタが設定される。なお、各ノードを構成する複数のレジスタによって、第1木構造のノード番号、特徴量番号、及び閾値の組が管理されるように構成されていればレジスタの態様は問わない。以下、ノードレジスタにはノード番号が対応付けられ、ノードレジスタに、特徴量番号レジスタ及び閾値レジスタが対応付けられている例とする。
【0032】
更新部112は、通信部30から第2木構造を受信し、第2木構造のノード番号、特徴量番号、及び閾値の組を用いて構造記憶回路110の第1木構造を書き換えて更新する。更新は、第1木構造の各非終端ノードについて、当該非終端ノードに対応する第2木構造の情報(当該非終端ノードに対応するノード番号、特徴量番号、及び閾値の組)を用いて書き換えて更新すればよい。また、第1木構造の各終端ノードについてコア20の情報を用いて更新してもよい。
【0033】
制御ユニット114は、コアから出力される特徴量に応じて、構造記憶回路110の第1木構造に対して、判別したい特徴量、ノード番号、特徴量番号、及び閾値の読み込み及び書き込みを行い、判別動作を制御する。制御ユニット114は、更新部112による更新後に、更新された第1木構造を用いて、ルートノードから非終端ノードの判定を行っていき、終端ノードの値により判定結果を出力することで、判別動作を制御する。
【0034】
ここで、制御回路100における(1)判別動作、(2)再学習結果の更新動作について説明する。
【0035】
(1)判別動作(特徴量セット及び判別処理)
判別動作は、制御ユニット114の処理によって実行される。判別動作は、(1-1)事前の特徴量セットと、(1-2)判別処理とに分けられる。
【0036】
(1-1)制御ユニット114は、判別処理を行う前に、まず各ノードに特徴量をセットする。コア20からプログラム実行時の特徴量(例えば、F[1]、F[2]、F[3]等)が送られてくると、各ノードに特徴量をセットする。なお、どのノードにどの特徴量をセットすればよいかは、各ノードが保持する特徴量番号レジスタを参照して判断できる。例えば、あるノードにおいて、特徴量番号が2であれば、特徴量F[2]を特徴量レジスタにセットする。なお、特徴量セットの方法は何通りか存在するが、特定の方法に限定されるものではない。特徴量セット方法の一例は後述する。例えば、ルートノードから特徴量を1つずつ順番に子ノードへと流れるように送っていく。送る際には、{n,F[n]}というように、特徴量番号と特徴量をセットで送る。各ノードは流れてきた特徴量番号が自身と一致すれば特徴量を受け取る、といった方法が可能である。
【0037】
(1-2)判別処理を説明する。ノードは、アクティベートされると、「ノード上判定」を行う。ノード上判定では、自身のレジスタに保持された特徴量と閾値を比較することで条件判定を行い、条件が成立すれば子ノードの一方(成立子ノード)をアクティベートし、そうでなければもう一方(不成立子ノード)をアクティベートする。特徴量>閾値となれば条件成立である(場合によっては、特徴量<閾値の判定のパターンもとり得るが設計事項である)。ルートノードをアクティベートすると、ルートからリーフに向かって、非終端ノードでのノード上判定が伝播していき、最終的にある1つのリーフ(終端ノード)に到達する。各リーフには、「攻撃」か「正常」のラベルが割り当てられており、ノード上判定が到達したリーフのラベルが、その木構造における判定結果となる。なお、ランダムフォレストでは複数の木を用いて並列に判定を行い、その結果をまとめて木全体の最終結果を出力するが、それは既存技術であるため、本手法の範囲ではない。
【0038】
(2)再学習結果の更新動作
再学習結果の更新動作は、更新部112の処理によって実行される。
【0039】
プロセッサ10の外部から、ノード番号、特徴量番号、閾値の組が送られてくると、各ノードのレジスタに特徴量番号と閾値をセットする。例として、{ノード番号,特徴量番号,閾値}={1,3,50}、{2,1,83}、{3,2,173}を受信したと想定する。なお、どのノードにどの値をセットすればよいかは、各ノードに割り当てたノード番号を参照して判断する。ノード番号は、例えば、ルートを1、ルートの左側ノードを2、ルートの右側ノードを3とする。この場合、ノード番号1、2、3のノードのレジスタ(ノードレジスタに対応する特徴量番号レジスタ及び閾値レジスタ)に、当該ノード番号と組になっている特徴量番号と閾値をセットする。
【0040】
なお、通常は(1)の判別動作のみが実施される。(2)の更新動作は、機器の所有者や管理者が考える適切なタイミングで更新が実施される。例えば1日単位、一か月単位、年単位などが考えられるが、(1)の判別動作の実施頻度(サイクルレベル)に比べると低い頻度が設定される。また、(1)の判別動作を停止、(2)の更新動作を実施、(1)の判別動作を再開、といった手順がとられるため、(1)及び(2)の動作の順番などは考慮しなくてよい。なお、再学習については、再学習部120においてソフトウェアを用いて機械学習を行って判別器を生成し、判別器の情報として{ノード番号、特徴量番号、閾値}の組を制御回路100に出力する。
【0041】
なお、特徴量番号と閾値は各ノードのレジスタが保持する値であるため、機器2の電源がOFFになった場合、レジスタの情報がリセットされてしまうことが想定される。したがって、構造記憶回路110の情報はフラッシュメモリ(図示省略)に記憶しておき、機器2の電源をONにした時点で改めて更新する、という実装が想定され得る。更新部112は、機器2の電源が再びONになった時点で、フラッシュメモリから情報を読み出して、構造記憶回路110に対して改めて更新後の最新の第1木構造を形成するように更新動作を行う。この実装では、再学習結果の更新は、フラッシュメモリ上の特徴量番号と閾値を用いてレジスタを書き換えることによって行われることになる。ただし、上記は実装の一例に過ぎず、起動時にネットワークを介して再学習部120から特徴量番号と閾値を受け取る、といった別の手段を用いてもよい。
【0042】
次に、
図7を参照して、本発明の実施形態に係る制御システム1の作用について説明する。
図7は、制御システム1の制御処理の流れを示すシーケンスである。なお、ステップS100~S106は、上述した(2)の更新動作に対応しており、管理者が所定のタイミングで実行した場合に処理が行われる。制御回路100ではステップS104以降を定期的に実行し、通常時はステップS108以降を処理する。
【0043】
ステップS100では、再学習部120が、再学習により更新対象の機械学習された第2木構造としてノード番号、特徴量番号、及び閾値の組を生成する。
【0044】
ステップS102では、再学習部120が、回路情報としての第2木構造を機器2に出力する。機器2では、通信部30が受信する。
【0045】
ステップS104では、機器2の通信部30が、更新対象の第2木構造を受信したか否かを判定する。受信した場合にはステップS106へ移行する。受信していない場合にはステップS108へ移行する。
【0046】
ステップS106では、更新部112が、通信部30から第2木構造を受信し、第2木構造のノード番号、特徴量番号、及び閾値の組を用いて、構造記憶回路110の第1木構造を書き換えて更新する。
【0047】
ステップS108では、制御ユニット114が、コア20から特徴量の出力を受け付けたか否かを判定する。特徴量の出力を受け付けた場合にステップ110へ移行する。特徴量の出力を受け付けていない場合にはステップS104に戻って処理を繰り返す。
【0048】
ステップS110では、制御ユニット114が、コア20から出力された特徴量を用いて、構造記憶回路110の各ノード(非終端ノード)に特徴量をセットする。
【0049】
ステップS112では、制御ユニット114が、構造記憶回路110の各ノードを用いた判定を行い、判定において到達した終端ノードの判別結果を出力する。制御ユニット114は、ルートノードから判定を開始し、判定を行う各非終端ノードで判定するようにして、終端ノードの出力により判別結果を得る。なお、後述するように複数クロック分の特徴量を用いて、各決定木についてのValueの平均を最終的な判別結果として出力してもよい。
【0050】
以上説明したように、本実施形態の制御システム1によれば、ハードウェアに組み込まれた判別器の木構造とデータを更新可能とする。
【0051】
また、本実施形態の手法に用いる木構造は比較的単純であり、演算はほぼ比較であるため、ハードウェア規模が小さく、また、消費電力も低くなる。したがって、適用分野としてIoT機器向けプロセッサに好適であり、また、プロセッサ上のコアに隣接した位置に組み込みが可能である。また、監視カメラ、工場の機器、自動車などの輸送機器にも適用できる。
【0052】
また、上述した実施形態では、IoT機器のマルウェアの攻撃の有無を判別する判別器を例に説明したが、これに限定されるものではない。例えば、IoT機器において、画像認識、音声認識、及び音響認識(例えば故障検査など)といった別の判別器に導入してもよい。
【0053】
(更新動作の一例)
上述した更新動作の一例を説明する。なお、本手法がハードウェアとして実現可能な態様における一例であり、これ以外の更新動作も可能である。
【0054】
図8は、レジスタに格納されるデータ及び木構造の各ノードを模式的に示す図である。
図8の上段は、レジスタに格納されるデータの凡例を示したものである。Reg:Featuersは特徴量が格納されるレジスタ、Reg:Featuers_Numは特徴量番号が格納されるレジスタ、Reg:Thresholdは閾値が格納されるレジスタ、Reg:ValueはVlalueの値が格納されるレジスタである。
図8の下部に示すように、レジスタとして置かれているノードのうち、各非終端ノードのレジスタに、分類条件に必要な特徴量番号と閾値をルートノードから順番に格納していく。例では、ルートノードに、特徴量番号:2、閾値:5000を格納している。ノード番号2の非終端ノードに、特徴量番号:10、閾値:240000を格納している。
図9は、終端ノードの更新の一例を示す図である。すべての非終端ノードのレジスタ内に特徴量番号と閾値が格納されたのち、
図9のように終端ノードのレジスタに、判定結果を出力する際に必要なValueの値を一番左のノードから順番に格納していく。以上により、更新動作が完了し、判別動作を実行できるようになる。
【0055】
図10は、木構造の判別器を用いた判別処理の一例を示す図である。判別動作が開始されると、ランダムフォレストの判定が行われる。ルートノードから非終端ノードで分類条件による判定を行っていき、終端ノードまで到達すると終端ノード内に格納されているValueの値を結果として出力する。また、判別動作中に、受信した場合は、出力が完了してから更新動作を実施すればよい。
【0056】
図11は、制御ユニット114の各処理について、ハードウェア記述言語を用いてモジュール化し、状態遷移の機構としてプログラム的に各モジュールを動作させる場合の例である。実装するモジュールは、一例として、状態遷移モジュール、特徴量番号・閾値取得モジュール、Value取得モジュール、特徴量取得モジュール、特徴量分配モジュール、及び判定モジュールの6つのモジュールとすることができる。
【0057】
状態遷移モジュールは、上位モジュールとして、判別処理の実行タイミング、及び各レジスタ(下位モジュールによって変化していく特徴量、特徴量番号、閾値、及びValueのレジスタ)の管理が実行される。なお、以下の判別動作の時に各モジュールで取得されるデータは、状態遷移モジュールで管理されるレジスタに受け渡される。また、状態遷移モジュールで、更新部112の更新動作のタイミングを制御してもよい。
【0058】
特徴量番号・閾値取得モジュールは、コア20から特徴量番号と閾値を取得する。Value取得モジュールは、コア20から一番左端の終端ノードから順番にValueの値を取得する。特徴量取得モジュールは、コア20から特徴量番号1から特徴量を取得する。特徴量分配モジュールは、特徴量番号を基に各ノードが判定に使用したい特徴量を分配していく。1クロックごとに1特徴量ずつ分配し、すべての特徴量の分配が終わると、判定に移行する。判定モジュールは、ランダムフォレストを用いた判定を行う。レジスタから特徴量と閾値を取り出し、ルートノードから順番に分類条件を判定していき、Vlalueを出力する。
【0059】
制御ユニット114は、例えば、コア20の複数クロック分の特徴量を用いて各決定木で上記の判別動作を実行し、Valueの平均を最終的な判別結果として出力する。
【0060】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【0061】
1 制御システム
2 機器
10 プロセッサ
20 コア
30 通信部
60 通信バス
100 制御回路
110 構造記憶回路
112 更新部
114 制御ユニット
120 再学習部