(57)【要約】【課題】ネットワークにおける攻撃による異常検知に用いられて誤検知率が抑えられた学習辞書を迅速に提供な情報処理装置を提供する。【解決手段】プロセッサを備える情報処理装置であって、プロセッサは、訓練データとして用いられる２個以上のベクトルであるデータ要素の入力を受け、訓練データを第一領域に渡って分布させるよう正規化し、第一領域を包含する多次元の第二領域を、大きさの等しい超立方体である第三領域に分割し、第三領域のそれぞれが含むデータ要素の個数Ｓを取得し、第一閾値Ｔより少ない個数のデータ要素を含む第三領域のそれぞれに、ベクトルである（Ｔ−Ｓ）個のノイズ要素を一様分布で付加し、第二領域内にあるベクトルを含むノイズ付加訓練データを生成し、生成したノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力する。【選択図】図１０
2018092613.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを備える情報処理装置であって、
前記プロセッサは、
Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けるデータ要素取得ステップと、
前記訓練データをＭ次元の第一領域に渡って分布させるよう正規化する正規化ステップと、
前記第一領域より大きく前記第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の超立方体である第三領域に分割する分割ステップと、
前記第三領域のそれぞれが含む前記データ要素の個数Ｓ（Ｓは０以上の整数）を取得し、前記第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数の前記データ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加する第一ノイズ付加ステップと、
前記データ要素及び前記ノイズ要素を含むノイズ付加訓練データを生成する生成ステップと、
前記ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力する学習辞書データ出力ステップとを実行する
情報処理装置。
【請求項２】
前記プロセッサは、
Ｎが所定の第二閾値以上であるか否かを判定する第一判定ステップを実行し、
前記第一判定ステップにおいてＮが前記第二閾値以上ではないと判定した場合、前記分割ステップ及び前記第一ノイズ付加ステップを実行してから前記生成ステップ及び前記学習辞書データ出力ステップを実行する
請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記第一判定ステップにおいてＮが前記第二閾値以上であると判定した場合、Ｋ個（ＫはＮより小さい自然数）のＭ次元のベクトルであるノイズ要素を前記第二領域内に一様分布で付加する第二ノイズ付加ステップを実行してから前記生成ステップ及び前記学習辞書データ出力ステップを実行する
請求項２に記載の情報処理装置。
【請求項４】
前記プロセッサはさらに、
前記第一判定ステップにおいてＮが前記第二閾値以上でないと判定した場合、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのテスト用データの入力を受けるテスト用データ取得ステップと、Ｎが所定の第三閾値以上であるか否かを判定する第二判定ステップとを実行し、
前記第二判定ステップにおいてＮが前記第三閾値以上でないと判定した場合、前記分割ステップ、前記第一ノイズ付加ステップ、前記生成ステップ、及び前記学習辞書データ出力ステップのセットを、前記分割ステップで値の異なるＬを用いて複数回実行して複数の前記学習辞書データを出力し、さらに、前記複数の学習辞書データのそれぞれを用いて前記テスト用データに対する異常検知を実行し、前記異常検知の結果に基づいて前記複数の学習辞書データのそれぞれを評価する評価ステップと、前記評価ステップの結果に基づいて前記複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、
前記第二判定ステップにおいてＮが前記第三閾値以上であると判定した場合、前記分割ステップで所定の値であるＬを用いて前記セットを１回実行する
請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記プロセッサは、前記第二判定ステップにおいてＮが前記第三閾値以上でないと判定した場合、Ｎの値と負の相関を有するようＬの前記異なる値の個数を決定する
請求項４に記載の情報処理装置。 
【請求項６】
前記プロセッサは、前記第一ノイズ付加ステップにおいて、前記第一領域内にある前記第三領域のそれぞれに含まれる前記データ要素の個数の中央値より小さい個数のいずれかを前記第一閾値Ｔの値として決定する
請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記プロセッサは、
前記第一判定ステップにおいてＮが前記第二閾値以上であると判定した場合、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのテスト用データの入力を受けるテスト用データ取得ステップと、Ｎが所定の第四閾値以上であるか否かを判定する第三判定ステップとを実行し、
前記第三判定ステップにおいてＮが前記第四閾値以上でないと判定した場合、前記第二ノイズ付加ステップ、前記生成ステップ、及び前記学習辞書データ出力ステップのセットを、前記第二ノイズ付加ステップで値の異なるＫを用いて複数回実行して複数の前記学習辞書データを出力し、さらに、前記複数の学習辞書データのそれぞれを用いて前記テスト用データに対する異常検知を実行して前記複数の学習辞書データのそれぞれを評価する評価ステップと、前記評価ステップの結果に基づいて前記複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、
前記第三判定ステップにおいてＮが前記第四閾値以上であると判定した場合、前記第二ノイズ付加ステップで所定の値であるＫを用いて前記セットを１回実行する
請求項１から３のいずれか１項に記載の情報処理装置。
【請求項８】
前記プロセッサは、前記第三判定ステップにおいてＮが前記第四閾値以上でないと判定した場合、Ｎの値と負の相関を有するようＫの前記異なる値の個数を決定する
請求項７に記載の情報処理装置。
【請求項９】
前記第一領域をＭ次元の空間における［０，１］Ｍの超立方体で画定される領域とすると、
前記第二領域は、前記空間において［−０．５，１．５］Ｍの超立方体で画定される領域である
請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
請求項１から９のいずれか１項に記載の情報処理装置と、
前記情報処理装置から出力された学習辞書データを記憶するメモリ及びプロセッサを備え、ネットワークに接続される異常判定装置であって、前記プロセッサは、前記ネットワークを流れるデータを取得し、取得された前記データの異常判定を前記メモリに記憶されている学習辞書データに基づいて実行する異常判定装置とを備える
異常検知システム。
【請求項１１】
前記ネットワークは車載のＣｏｎｔｒｏｌｌｅｄ  Ａｒｅａ  Ｎｅｔｗｏｒｋネットワークである
請求項１０に記載の異常検知システム。
【請求項１２】
プロセッサを備える情報処理装置を用いて実行される情報処理方法であって、
前記プロセッサに、
Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けさせるデータ要素取得ステップと、
前記訓練データをＭ次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、
前記第一領域より大きく前記第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の超立方体である第三領域に分割させる分割ステップと、
前記第三領域のそれぞれが含む前記データ要素の個数Ｓ（Ｓは０以上の整数）を取得させ、前記第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数の前記データ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、
前記データ要素及び前記ノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、
前記ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む
情報処理方法。 
【請求項１３】
コンピュータが備えるプロセッサに、請求項１２に記載の情報処理方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ネットワーク等で用いられる異常検知技術に関する。
【背景技術】
【０００２】
電子化が進んだ自動車において、車載ネットワークの重要性は以前にまして高い。
【０００３】
自動車には各種のシステムを制御する多数の電子制御ユニット（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ、以下ＥＣＵと表記する）が搭載されている。ＥＣＵ間では車載ネットワークに接続され、自動車の諸機能を実現するためにこの車載ネットワークを介して通信が行われている。ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）は、このような車載ネットワークの規格のひとつで、標準的な技術として多くの国及び地域で採用されている。
【０００４】
ＣＡＮのプロトコルに準拠するネットワークは１台の車上で閉じた通信経路として構築可能である。しかしながら、各自動車には外部からのアクセスが可能なネットワークとして構築され搭載されるのが珍しくない。例えば車載ネットワークには、ネットワークを流れる情報を車載の各システムの診断に利用する目的で取り出すためのポートが設置されたり、無線ＬＡＮを提供する機能を備えるカーナビゲーションシステムが接続されたりしている。車載ネットワークへの外部からのアクセスが可能になることで自動車のユーザにとっての利便性は向上し得るが、その一方で脅威も増大する。
【０００５】
例えば２０１３年には、車載ネットワークの外部からの駐車支援機能等の悪用による不正な車両制御が可能であることが実証された。また、２０１５年には特定の車種の遠隔からの不正制御が可能であることが実証され、この実証が発端となって当該車種のリコールに発展した。
【０００６】
このような外部からのアクセスによる車両の不正制御は、自動車業界にとっては看過できない問題であり、車載ネットワークのセキュリティ対策は急務な状況にある。
【０００７】
車載ネットワークへの攻撃の一手法としては、ネットワークに接続されるＥＣＵに外部からアクセスしてこのＥＣＵを乗っ取り、このＥＣＵから攻撃のためのフレーム（以下では攻撃フレームともいう）を送信させて自動車を不正に制御するものがある。攻撃フレームは、攻撃されていない車載ネットワークを流れる正常なフレームとは何らかの点で異なる異常なフレームである。
【０００８】
このような車載ネットワークでの異常検知のための技術として、ＣＡＮのバス上を流れるフレーム（以下、ＣＡＮメッセージ又は単にメッセージともいう）に対する異常データ検知処理を、学習データを用いた学習の結果として得る評価モデルを用いて実行する技術が開示されている（特許文献１、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１５−０２６２５２号公報
【特許文献２】特開２０１５−１７０１２１号公報
【非特許文献】
【００１０】
【非特許文献１】Fei Tony Liu, Kai Ming Ting, Zhi-Hua Zhou, Isolation Forest, "ICDM '08: Proceedings of the 2008 Eighth IEEE International Conference on Data Mining", (USA), IEEE Computer Society, December 2008, pp. 413-422
【発明の概要】
【発明が解決しようとする課題】
【００１１】
車載ネットワークへの攻撃及び攻撃に対抗するためのセキュリティ技術は研究途上であって特許文献１、２の技術で十分とは限らず、更なる研究開発が望まれている。
【００１２】
本発明は、自動車等の車両の車載ネットワークにおける攻撃による異常検知のために有用な情報処理装置等を提供する。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明の一態様に係る情報処理装置は、プロセッサを備える情報処理装置であって、前記プロセッサは、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けるデータ要素取得ステップと、前記訓練データをＭ次元の第一領域に渡って分布させるよう正規化する正規化ステップと、前記第一領域より大きく前記第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の超立方体である第三領域に分割する分割ステップと、前記第三領域のそれぞれが含む前記データ要素の個数Ｓ（Ｓは０以上の整数）を取得し、前記第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数の前記データ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加する第一ノイズ付加ステップと、前記データ要素及び前記ノイズ要素を含むノイズ付加訓練データを生成する生成ステップと、前記ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力する学習辞書データ出力ステップとを実行する。
【００１４】
また、本発明の一態様に係る情報処理方法は、プロセッサを備える情報処理装置を用いて実行される情報処理方法であって、このプロセッサに、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けさせるデータ要素取得ステップと、訓練データをＭ次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、第一領域より大きく第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の超立方体である第三領域に分割させる分割ステップと、第三領域のそれぞれが含むデータ要素の個数Ｓ（Ｓは０以上の整数）を取得させ、第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数のデータ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む。
【００１５】
なお、これらの包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又はコンピュータ読み取り可能なＣＤ−ＲＯＭなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１６】
本発明によれば、自動車等の車両の車載ネットワークにおける攻撃による異常検知に用いられて誤検知率が抑えられた学習辞書を迅速に提供な情報処理装置等が提供される。
【図面の簡単な説明】
【００１７】
【図１Ａ】図１Ａは、実施の形態１における情報処理装置を含む異常検知システムの構成例を示すブロック図である。
【図１Ｂ】図１Ｂは、実施の形態１における情報処理装置を含む異常検知システムの構成例を示すブロック図である。
【図１Ｃ】図１Ｃは、実施の形態１における情報処理装置を含む異常検知システムの構成例を示すブロック図である。
【図２】図２は、上記の異常検知システムを構成する異常判定部及び学習部の構成例を示すブロック図である。
【図３】図３は、上記の学習部が訓練データを用いて生成した学習辞書を説明するための模式図である。
【図４】図４は、上記の異常判定部による異常判定を説明するための模式図である。
【図５】図５は、学習辞書を生成する上記の学習部でのデータの流れを示す図である。
【図６】図６は、異常判定を行う上記の異常判定部でのデータの流れを示す図である。
【図７】図７は、訓練データの分布にフィットしていない不適切な判定境界の例である。
【図８】図８は、上記の異常検知システムにおいて実行される、適切な学習辞書を得るための訓練データの処理方法の一例を示すフロー図である。
【図９Ａ】図９Ａは、Ｍ次元空間に分布する正規化前の訓練データの例である。
【図９Ｂ】図９Ｂは、Ｍ次元空間に分布する正規化後の訓練データの例である。
【図９Ｃ】図９Ｃは、Ｍ次元空間に分布するノイズ要素の付加後の訓練データの例である。
【図１０】図１０は、上記の異常検知システムにおいて実行される、適切な学習辞書を得るための訓練データの処理方法の他の一例を示すフロー図である。
【図１１Ａ】図１１Ａは、Ｍ次元空間におけるＭ次元領域の分割の例を説明するための図である。
【図１１Ｂ】図１１Ｂは、Ｍ次元空間に分布するノイズ要素の付加後の訓練データの例を説明するための図である。
【図１２Ａ】図１２Ａは、ノイズを付加しない訓練データを用いて生成した学習辞書の判定境界と、同じ訓練データにノイズを付加したものを用いて生成した学習辞書の判定境界とを示す図である。
【図１２Ｂ】図１２Ｂは、ノイズを付加しない訓練データを用いて生成した学習辞書の判定境界と、同じ訓練データにノイズを付加したものを用いて生成した学習辞書の判定境界とを示す図である。
【図１２Ｃ】図１２Ｃは、図１２Ａ及び図１２Ｂに判定境界を示す各学習辞書を用いてなされた異常検知試験での誤検知率を示す棒グラフである。
【図１３】図１３は、実施の形態２における異常検知システムにおいて実行される、訓練データの処理方法の選択及び各処理方法でのパラメータの探索の実行の有無に関する決定のための処理方法の一例を示すフロー図である。
【図１４】図１４は、実施の形態２における異常検知システムにおいて実行される、より適切な学習辞書を得るための処理方法の一例を示すフロー図である。
【図１５】図１５は、実施の形態２における異常検知システムにおいて実行される、より適切な学習辞書を得るための処理方法の他の例を示すフロー図である。
【発明を実施するための形態】
【００１８】
（本開示の基礎になった知見等）
車載ネットワークのセキュリティ対策として提案されている手法は、大きくに二つに分けられる。
【００１９】
ひとつはメッセージの暗号化又は送信元の認証を利用するものである。ただし、この技術には、理論上は有効であるがＥＣＵの実装の変更が必要なものもあり、また、自動車１台当たりに搭載されるＥＣＵは数百を超える場合があることから、早期の普及は難しい。
【００２０】
もうひとつは、車載ネットワークを流れるＣＡＮメッセージを監視するものである。この手法は、監視用のＥＣＵ（ノード）を各自動車に追加することで実現可能であり、導入は比較的容易である。提案されているこのような手法をさらに分類すると、ルールベースの手法、データの送信周期を利用する手法、ＬＯＦ（Ｌｏｃａｌ  Ｏｕｔｌｉｅｒ  Ｆａｃｔｏｒ）を用いてメッセージの内容の外れ値を検知する手法の三種類に大きく分けることができる。
【００２１】
これらの三種類の手法のうち、ルールベースの手法及びデータの送信周期を利用する手法では既知の攻撃パターンに対応することができるが、未知の攻撃パターンを検知するには、ＬＯＦを利用する手法のようにメッセージの内容に基づく検知が必要である。
【００２２】
ただし、ＬＯＦを利用する手法では、ＣＡＮメッセージの評価のために大量の正常データを保持しておく必要があり、要求される計算量が大きい。しかしながら、車載ネットワークに接続されるＥＣＵは、データの処理能力及び記憶領域の容量がふんだんであるとは限らず、そのような実行環境でも時速数十ｋｍ以上で道路を走る自動車で要求される速さで検知が可能な手法でなければ実用的ではない。
【００２３】
そこで本発明者らは、ＬＯＦよりも要求される保持データが少なく、計算量の小さいＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔ又はｉＦｏｒｅｓｔ（非特許文献１参照）と呼ばれる異常検知アルゴリズムを車載ネットワークの異常検知の手法に利用することに想到した。また、さらに本発明者らは、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔを利用する上で、限られた計算機資源で実行される場合であっても、必要な速さで、かつ極力高い精度での異常検知の実行を可能にする技術を提案する。
【００２４】
本発明の一態様に係る情報処理装置は、プロセッサを備える情報処理装置であって、このプロセッサは、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けるデータ要素取得ステップと、訓練データをＭ次元の第一領域に渡って分布させるよう正規化する正規化ステップと、第一領域より大きく第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の超立方体である第三領域に分割する分割ステップと、第三領域のそれぞれが含むデータ要素の個数Ｓ（Ｓは０以上の整数）を取得し、第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数のデータ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加する第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成する生成ステップと、ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力する学習辞書データ出力ステップとを実行する。
【００２５】
これにより、より低い誤検知率でのＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの実行を可能にする学習辞書を得ることができる。
【００２６】
また例えば、プロセッサは、Ｎが所定の第二閾値以上であるか否かを判定する第一判定ステップを実行し、第一判定ステップにおいてＮが第二閾値以上ではないと判定した場合、分割ステップ及び第一ノイズ付加ステップを実行してから生成ステップ及び学習辞書データ出力ステップを実行してもよい。
【００２７】
これにより、例えば訓練データのデータ要素の個数が、プロセッサの負荷状況に対して過大である場合は、この訓練データを用いた学習辞書データの生成を延期することができる。
【００２８】
また例えば、プロセッサは、第一判定ステップにおいてＮが第二閾値以上であると判定した場合、Ｋ個（ＫはＮより小さい自然数）のＭ次元のベクトルであるノイズ要素を第二領域内に一様な密度で付加する第二ノイズ付加ステップを実行してから生成ステップ及び学習辞書データ出力ステップを実行してもよい。
【００２９】
これにより、訓練データの大きさで変わる処理負荷に応じてノイズの付加方法を切り替えることができ、学習辞書を実行環境に適した速さで生成することができる。
【００３０】
また例えば、プロセッサはさらに、第一判定ステップにおいてＮが第二閾値以上でないと判定した場合、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのテスト用データの入力を受けるテスト用データ取得ステップと、Ｎが所定の第三閾値以上であるか否かを判定する第二判定ステップとを実行し、第二判定ステップにおいてＮが第三閾値以上でないと判定した場合、分割ステップ、第一ノイズ付加ステップ、生成ステップ、及び学習辞書データ出力ステップのセットを、分割ステップで値の異なるＬを用いて複数回実行して複数の学習辞書データを出力し、さらに、複数の学習辞書データのそれぞれを用いてテスト用データに対する異常検知を実行し、異常検知の結果に基づいて複数の学習辞書データのそれぞれを評価する評価ステップと、評価ステップの結果に基づいて複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、第二判定ステップにおいてＮが第三閾値以上であると判定した場合、分割ステップで所定の値であるＬを用いてセットを１回実行してもよい。
【００３１】
これにより、訓練データの大きさで変わる処理負荷に応じて、複数の学習辞書データを生成して最適なものを出力するか、ひとつの学習辞書データを生成して出力するかを切り替えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
【００３２】
また例えば、プロセッサは、第二判定ステップにおいてＮが第三閾値以上でないと判定した場合、Ｎの値と負の相関を有するようＬの異なる値の個数を決定してもよい。
【００３３】
これにより、訓練データが大きければ、第三領域への分割数を減らすことで処理負荷が減る。したがって、学習辞書を実行環境に適した速さで生成することができる。
【００３４】
また例えば、プロセッサは、第一ノイズ付加ステップにおいて、第一領域内にある第三領域のそれぞれに含まれるデータ要素の個数の中央値より小さい個数のいずれかを第一閾値Ｔの値として決定してもよい。
【００３５】
これにより、訓練データが大きければ、ノイズ要素が付加される第三領域の個数を減らすことで処理負荷の増大を抑えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
【００３６】
また例えば、プロセッサは、第一判定ステップにおいてＮが第二閾値以上であると判定した場合、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのテスト用データの入力を受けるテスト用データ取得ステップと、Ｎが所定の第四閾値以上であるか否かを判定する第三判定ステップとを実行し、第三判定ステップにおいてＮが第四閾値以上でないと判定した場合、第二ノイズ付加ステップ、生成ステップ、及び学習辞書データ出力ステップのセットを、第二ノイズ付加ステップで値の異なるＫを用いて複数回実行して複数の学習辞書データを出力し、さらに、複数の学習辞書データのそれぞれを用いてテスト用データに対する異常検知を実行して複数の学習辞書データのそれぞれを評価する評価ステップと、評価ステップの結果に基づいて複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、第三判定ステップにおいてＮが第四閾値以上であると判定した場合、第二ノイズ付加ステップで所定の値であるＫを用いてセットを１回実行してもよい。
【００３７】
これにより、訓練データの大きさで変わる処理負荷に応じて、複数の学習辞書データを生成して最適なものを出力するか、ひとつの学習辞書データを生成して出力するかを切り替えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
【００３８】
また例えば、プロセッサは、第三判定ステップにおいてＮが第四閾値以上でないと判定した場合、Ｎの値と負の相関を有するようＫの異なる値の個数を決定してもよい。
【００３９】
これにより、生成する学習辞書の個数を減らすことで処理負荷の増大を抑えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
。
【００４０】
また例えば、第一領域をＭ次元の空間における［０，１］Ｍの超立方体で画定される領域とすると、第二領域は、このＭ次元の空間において［−０．５，１．５］Ｍの超立方体で画定される領域であってもよい。
【００４１】
これにより、学習辞書の生成に利用可能な訓練データに外れ値が少ない場合であっても、より低い誤検知率での異常検知を可能にする学習辞書を得ることができる。
【００４２】
また、本発明の一態様に係る異常検知システムは、上記に記載の情報処理装置のいずれかと、情報処理装置から出力された学習辞書データを記憶するメモリ及びプロセッサを備え、ネットワークに接続される異常判定装置であって、プロセッサは、ネットワークを流れるデータを取得し、取得されたデータの異常判定をメモリに記憶されている学習辞書データに基づいて実行する異常判定装置とを備える。
【００４３】
これにより、精度を考慮した上で迅速に更新される学習辞書を利用して異常検知が実行される。
【００４４】
また、本発明の一態様に係る情報処理方法は、プロセッサを備える情報処理装置を用いて実行される情報処理方法であって、このプロセッサに、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けさせるデータ要素取得ステップと、訓練データをＭ次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、第一領域より大きく第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の第三領域に分割させる分割ステップと、第三領域のそれぞれが含むデータ要素の個数Ｓ（Ｓは０以上の整数）を取得させ、第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数のデータ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む。
【００４５】
また、本発明の一態様に係るプログラムは、コンピュータが備えるプロセッサに、上記の情報処理方法を実行させるプログラムである。
【００４６】
このような方法又はプログラムによっても、より低い誤検知率でのＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの実行を可能にする学習辞書を得ることができる。
【００４７】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム、又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体のいずれで実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
【００４８】
以下、実施の形態に係る情報処理装置、情報処理方法等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。したがって、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本発明を限定するものではない。
【００４９】
また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。各図は模式図であり、必ずしも厳密に図示されたものではない。
【００５０】
また、以下に含まれるＣＡＮ及びＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔに関する説明は、本発明の理解の一助を主な趣旨とするものであり、この説明のうち請求項に含まれない事項については、本発明を限定する趣旨で記載されるものではない。
【００５１】
（実施の形態１）
［構成］
［概要］
図１Ａから図１Ｃは、実施の形態１における情報処理装置を含む異常検知システムの一構成例をそれぞれ示すブロック図である。
【００５２】
図１Ａから図１Ｃには、構成の異なる異常検知システム１００Ａ、１００Ｂ、及び１００Ｃがそれぞれ示される。
【００５３】
異常検知システム１００Ａ〜１００Ｃは、監視対象であるネットワークを流れるデータの異常を、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔと呼ばれるアルゴリズムを用いて検知するシステムであり、いずれも異常判定部１１０及び学習部１２０を備える。
【００５４】
異常判定部１１０は、車両２０が備える車載ネットワーク２１０を流れるデータが正常か異常かを判定する。車両２０は例えば自動車である。
【００５５】
車載ネットワーク２１０は、例えばＣＡＮの規格に対応するネットワークであり、図１Ａから図１Ｃの各構成例では、バスと、このバスに接続される複数のＥＣＵ及び診断用ポートとを含む。複数のＥＣＵには、各種のセンサから測定データを収集して分析するＥＣＵ、エンジンを制御するＥＣＵ、ブレーキを制御するＥＣＵ、ネットワークを監視するＥＣＵ等の、機能の異なるＥＣＵが含まれる。車載ネットワーク２１０を流れるデータとは、バスを流れるメッセージのデータである。
【００５６】
学習部１２０は、異常判定部１１０が上記の判定を行うための事前の学習を行う。より具体的には、学習部１２０は、訓練データを用いて学習し異常判定部１１０が上記の判定に用いる学習辞書を生成する。生成された学習辞書のデータ（以下、学習辞書データともいう）は、例えば記憶装置（図示なし）に格納される。
【００５７】
異常判定部１１０は、記憶装置から学習辞書を読み込み、正常か異常かの判定の対象である未知のデータ、つまり車載ネットワーク２１０から取得したメッセージのデータがこの学習辞書に照らして逸脱しているか否かに基づいて異常であるか否かを判定する。より詳細には、学習部１２０が生成する学習辞書は複数の二分木からなり、異常判定部１１０は、これらの複数の二分木から算出したスコアの平均値を用いてデータが異常であるか否かを判定する。なお、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔで用いられるこの二分木は、Ｉｓｏｌａｔｉｏｎ  Ｔｒｅｅ又はｉＴｒｅｅと呼ばれる。
【００５８】
異常判定部１１０及び学習部１２０は、所定のプログラムを読み込んで実行するプロセッサによって提供される機能的な構成要素である。そして図１Ａから図１Ｃの各構成例では、これらのプロセッサの機能的な構成要素を提供するプロセッサの場所が異なる。
【００５９】
図１Ａに示される構成例では、学習部１２０が、車両２０の外部にある、いわゆるサーバコンピュータである外部サーバ１０が備えるプロセッサ及びメモリによって提供される。外部サーバ１０は、本実施の形態における情報処理装置の例のひとつである。
【００６０】
この場合、学習部１２０は例えば車載ネットワーク２１０を流れるメッセージを訓練データとして通信網を経由して車両２０から取得する。また学習部１２０は、この訓練データを用いて生成したＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを出力し、通信網を経由して車両２０の異常判定部１１０に提供する。
【００６１】
また、車両２０では、学習辞書データは例えば車載ネットワーク２１０に接続されるネットワーク監視用の監視ＥＣＵが備えるマイクロコントローラのフラッシュメモリ等の記憶装置に格納され、このマイクロコントローラのプロセッサによって異常判定部１１０が提供される。異常判定部１１０は、バスから取得したメッセージに対して、この記憶装置から学習辞書データを取得した学習辞書データを用いてメッセージの異常判定を実行する。
【００６２】
なお、このような構成では、車両２０の出荷後に更新された学習辞書データを異常判定部１１０に提供することができる。
【００６３】
図１Ｂに示される構成例では、異常判定部１１０及び学習部１２０の両方が、車両２０の外部にある外部サーバ１０が備えるプロセッサ及びメモリによって提供される。このような外部サーバ１０も、本実施の形態における情報処理装置の例のひとつである。
【００６４】
この場合も、学習部１２０は例えば車載ネットワーク２１０を流れるメッセージを訓練データとして通信網を経由して車両２０から取得する。また学習部１２０は、この訓練データを用いて生成したＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを出力するが、出力先は外部サーバ１０の外ではなく、例えば外部サーバ１０が備えるハードディスクドライブ等の記憶装置（図示なし）に格納される。
【００６５】
この構成では、異常判定は車両２０上ではなく、外部サーバ１０で行われる。つまり、車載ネットワーク２１０を流れるメッセージは、通信網を介して外部サーバ１０に送信される。外部サーバ１０が受信したこのメッセージは、異常判定部１１０に入力される。異常判定部１１０は、記憶装置から学習辞書データを取得し、この学習辞書データを用いてメッセージの異常判定を実行し、その結果を通信網を介して車両２０に送信する。
【００６６】
なお、このような構成では、外部サーバ１０において異常判定部１１０が利用する学習辞書データは随時更新される。
【００６７】
図１Ｃに示される構成例では、異常判定部１１０及び学習部１２０の両方が、車両２０の車載ネットワーク２１０に接続されて車載ネットワーク２１０を監視するＥＣＵである監視ＥＣＵが備えるマイクロコントローラによって提供される。監視ＥＣＵ１０は、本実施の形態における情報処理装置の例のひとつである。
【００６８】
この場合、学習部１２０は例えば車載ネットワーク２１０を流れるメッセージを訓練データとして直接取得して利用する。また学習部１２０は、この訓練データを用いて生成したＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを出力するが、出力先は車両２０の外ではなく、車両２０上にある記憶装置、例えば監視ＥＣＵ内のフラッシュメモリ等の記憶装置に格納される。
【００６９】
この構成では、学習辞書の生成も異常判定も車両２０上で行われる。例えば、監視ＥＣＵにおいて、学習部１２０はこの監視ＥＣＵが接続されている車載ネットワーク２１０を流れるメッセージのデータを取得し、訓練データとして用いて学習辞書を生成する。生成した学習辞書のデータは、監視ＥＣＵの記憶装置に格納される。また、監視ＥＣＵにおいては、さらに異常判定部１１０が記憶装置から学習辞書データを取得し、この学習辞書データを用いてメッセージの異常判定を実行する。
【００７０】
なお、このような構成でも、車両２０上の異常判定部１１０が利用する学習辞書データの更新は可能である。
【００７１】
また、図１Ａから図１Ｃに示される各構成は出荷後の車両２０で固定的な構成ではなく、車両２０上で動的に変更可能な構成であってもよい。例えば車両２０と外部サーバ１０との間の通信速度、監視ＥＣＵの計算機資源の使用率、車両２０が電気自動車である場合の残電力量、又は運転者の操作に応じて、これらの構成間での切替が可能であってもよい。
【００７２】
［異常判定部及び学習部の構成］
構成の概要で記載した異常検知システム１００Ａ、１００Ｂ、及び１００Ｃそれぞれの構成要素である異常判定部１１０及び学習部１２０の構成について説明する。なお、以下では、異常検知システム１００Ａ、１００Ｂ、及び１００Ｃの一部のいずれかを特定せずに、又は全部を集合的に指して異常検知システム１００とも呼ぶ。
【００７３】
図２は、異常検知システム１００を構成する異常判定部１１０及び学習部１２０の構成例を示すブロック図である。
【００７４】
図２に示されるように、学習部１２０は、訓練データ受信部１２２及び学習辞書生成部１２４を有する。
【００７５】
訓練データ受信部１２２は、訓練データの入力を受ける。ここでいう訓練データとは、２個以上のＭ次元のベクトルであり、Ｍは２以上の整数である。各次元の値は、例えば最大８バイトであるＣＡＮメッセージのペイロードの先頭からの各バイトの値である。
【００７６】
学習部１２０は、訓練データ受信部１２２が入力を受けた訓練データを用いて学習辞書データを生成し、この学習辞書データを後述の異常判定部１１０の蓄積部１１２に向けて出力する。
【００７７】
図３は、Ｍ＝２の場合における訓練データのデータ要素、及びこの訓練データを用いて生成された学習辞書を説明するための模式図である。図３では、データ要素は、Ｍ次元空間内に分布する点群であって各点は白抜きの丸で示され、学習辞書は、Ｍ次元空間における境界であって太い実線で示される。この境界のことを以下では判定境界ともいう。なお、Ｍ＝２の場合、判定境界は境界線である。
【００７８】
さらに図２に示されるように、異常判定部１１０は、蓄積部１１２、判定対象データ受信部１１４、判定対象データ変換部１１６、及び判定実行部１１８を備える。
【００７９】
蓄積部１１２は、上述のとおり学習部１２０から出力された学習辞書データを保存する。また、後述する判定対象データの変換に用いられるデータも蓄積部１１２に保存される。
【００８０】
判定対象データ受信部１１４は、異常判定の対象であるデータ、つまりＣＡＮメッセージを車載ネットワーク２１０から取得する。
【００８１】
判定対象データ変換部１１６は、判定対象データ受信部１１４が受信したＣＡＮメッセージを、判定実行部１１８で処理するための形式に変換する。この変換では、例えばＣＡＮメッセージからの判定対象の部分の抽出、上記の判定対象データの変換用のデータを用いた正規化等が行われる。正規化については後述する。
【００８２】
判定実行部１１８は、蓄積部１１２に学習辞書データとして保存されている学習辞書に基づいて、判定対象データが正常であるか異常であるかの判定、つまり異常判定を実行する。
【００８３】
図４は、この異常判定を説明するための模式図である。図４では、判定対象データＡと判定対象データＢの２件のデータがその値に基づいてＭ次元空間内に示されている。
【００８４】
判定実行部１１８は、各データが学習辞書の判定境界の内側に位置するか外側に位置するかに基づいて正常か異常かを判定し、その結果を出力する。この例では、判定境界の内側に位置する判定対象データＡは正常であると判定され、判定境界の外側に位置する判定対象データＢは異常であると判定される。異常であるとの判定がなされた場合、異常判定部１１０及び学習部を含む監視ＥＣＵでは、例えばこの判定結果を入力として受ける他のプログラムが実行されてエラーメッセージをバスに出力したり、他のＥＣＵの機能の一部又は全部を制限又は他のＥＣＵを異常時対応の特別な動作モードに移行させるための命令を送信したりする。また、車両２０の運転者に向けた異常発生の通知が、計器盤での表示又は音声によって発せられてもよい。その他、異常発生に関する情報がログに記録されてもよい。このログは、例えば車両２０の整備士等が車載ネットワーク２１０に含まれる診断用ポートを通じて取得し利用する。
【００８５】
異常判定部１１０及び学習部１２０の各構成要素はＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのアルゴリズムの一部を実行し、上記のように連携してＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのアルゴリズムの全体を実行する。
【００８６】
［異常検知システムにおける処理の概要］
上記の構成要素を備える異常判定部１１０及び学習部１２０でのデータの流れを図５及び図６に表す。図５は、学習辞書を生成する学習部１２０でのデータの流れを示す図である。図６は、異常判定を行う異常判定部１１０でのデータの流れを示す図である。なお、これらの図はデータの流れを示すシーケンス図を基本として、各部における処理順序を示すフロー図も兼ねた体裁で表されている。
【００８７】
図５に示されるように、学習辞書を生成する学習部１２０では、まず訓練データ受信部１２２が入力を受けて訓練データが取得される（ステップＳ５１）。訓練データの入力元は、学習辞書の生成の実行が車両２０の出荷前であれば、例えばこの段階で人為的に指定又はあらかじめ設定された記憶装置内の場所である。また、学習辞書の生成の実行が車両２０の出荷後であれば、例えば学習部１２０を含む監視ＥＣＵが接続されている車載ネットワーク２１０である。
【００８８】
次に学習部１２０では、入力された訓練データを、学習辞書生成部１２４が正規化し（ステップＳ５２）、正規化済みの訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの手法で学習辞書を生成する（ステップＳ５３）。なお、正規化とは、入力された訓練データのＭ次元空間での元の分布範囲を、各訓練データの相対的な位置関係を保持してその分布範囲が同空間内の所定の領域内に渡るよう変換する計算処理である。
【００８９】
生成された学習辞書のデータは異常判定部１１０に渡され（ステップＳ５４）、異常判定部１１０ではこの学習辞書データが蓄積部１１２に保存される（ステップＳ５５）。また、学習辞書データと合わせて、上記の正規化の計算処理に用いられたデータも学習部１２０から異常判定部１１０に渡される。このデータには、変換に必要な特徴ベクトルの各成分の最大値及び最小値等が含まれる。異常判定部１１０では、このデータを用いて判定対象である未知データの正規化が実行される。
【００９０】
また、図６に示されるように、異常判定を行う異常判定部１１０では、まず判定対象データ受信部１１４が、車載ネットワーク２１０から異常判定の対象であるＣＡＮメッセージのデータが取得される（ステップＳ６１）。
【００９１】
次に異常判定部１１０では、判定実行部１１８が、蓄積部１１２に保存された学習辞書データを読み込む（ステップＳ６２）。また、判定対象データ変換部１１６は、訓練データの正規化に用いられた係数等のデータを蓄積部１１２から読み込み、このデータを用いて判定対象データ、つまり取得されたＣＡＮメッセージのデータを正規化する（ステップＳ６３）。判定実行部１１８は、学習辞書データに基づいて、この正規化されたデータが正常か異常か判定する（ステップＳ６４）。
【００９２】
以上が異常検知システム１００において実行される、訓練データを用いての学習辞書の生成から、この学習辞書を用いての異常判定までの工程を含む異常検知の処理の概要である。この異常検知にＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの手法を採用することで計算機資源への負荷が従来と比べて軽減され、より高速に処理を実行することができる。
【００９３】
しかしながら、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのアルゴリズムにおいて、学習の結果として得られた学習辞書の判定境界が正常な訓練データのＭ次元空間の分布に適切にフィットしない場合がある。図７は、このような不適切な判定境界の例である。このように、判定境界が正常なデータ要素の分布の外縁よりも内側にある場合、異常判定では実際は正常であるのに異常であると判定される誤判定がなされる。図７の例では、黒く塗りつぶされた丸で示されるデータ要素は異常データと判定されるデータ要素であり、この中には、実際には正常であるデータ要素が多く含まれる。以下では、このように正常であるデータを異常であるとする誤判定による誤検知のことを、過検知ともいう。
【００９４】
誤判定の原因となるこのような学習辞書は、例えば訓練データに含まれる異常データの量が不十分である場合に起こりえる。以下では、このような場合にも適切な学習辞書を得るために異常検知システム１００で行われる処理について説明する。
【００９５】
［適切な学習辞書を得るための処理］
以下では、本実施の形態における適切な学習辞書を得るための処理方法の例を２つ説明する。
【００９６】
［第一処理方法］
図８は、上記で述べた適切な学習辞書を得るための訓練データの処理方法の一例である第一処理方法を示すフロー図である。
【００９７】
第一処理方法は、２個以上のＭ次元のベクトルからなるＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データの入力を受けた後の学習部１２０において、学習辞書生成部１２４によって実行される。ただし以下では、学習辞書生成部１２４による処理であっても学習部１２０の処理として説明することがある。図９Ａは、Ｍ＝２の場合における、Ｍ次元空間、つまり２次元平面に分布する入力された訓練データの初期状態の例である。
【００９８】
まず学習部１２０は、本処理に用いるパラメータを読み込む（ステップＳ８０）。パラメータの詳細については以降のステップで説明する。
【００９９】
次に学習部１２０は、入力された訓練データのデータ要素の個数を取得する（ステップＳ８１）。
【０１００】
次に学習部１２０は、訓練データに付加するノイズ要素の個数をデータ要素の個数に基づいて決定する（ステップＳ８２）。ノイズ要素もまた、Ｍ次元のベクトルである。ステップＳ８０で取得されたパラメータは、ステップＳ８２でのノイズ要素の個数の決定に用いられ、例えば０より大きく１より小さい実数である。そして訓練データに付加されるノイズ要素の個数は、ステップＳ８１で取得されたデータ要素の個数にこのパラメータを乗じた値を整数に丸めた値が用いられる。つまり、ノイズ要素の個数は、訓練データのデータ要素の個数よりも小さくなるよう決定される。
【０１０１】
次に学習部１２０は、訓練データを正規化する（ステップＳ８３）。図９Ｂは、２次元平面に分布する正規化後の訓練データの例を示す。この例では、正規化前は図９Ａに示されるように分布していた訓練データの分布範囲が、２次元平面における［０，１］２の領域に渡るよう変換されている。このような領域は、本実施の形態における第一領域の例である。
【０１０２】
次に学習部１２０は、ステップＳ８２で決定された個数のノイズ要素を、第一領域より大きく、且つ第一領域を包含するＭ次元空間、つまりこの例では２次元平面の領域内に渡って付加する（ステップＳ８４）。図９Ｃは、Ｍ次元空間に分布するノイズ要素の付加後の訓練データの例であり、ノイズ要素は２次元平面内に分布する破線の輪郭の丸で示される。この例では、ノイズ要素が［−０．５，１．５］２の領域に渡って分布するよう付加されている。なお、このような領域は、本実施の形態における第二領域の例である。
【０１０３】
図９Ｃに示されるように、ステップＳ８４の工程の結果、元の訓練データのデータ要素よりも少ない個数のノイズ要素が、元の訓練データの分布範囲よりも広い領域に分布するよう付加される。したがって、ノイズ要素の分布密度は元の訓練データのデータ要素の分布密度に比べて低い。また、ノイズ要素は上記の領域において、全体としては一様分布となるよう付加される。
【０１０４】
次に学習部１２０は、第二領域内にあるＭ次元のベクトルである要素、つまり、いずれも２次元のベクトルである訓練データのデータ要素及びノイズ要素をともに含むノイズ付加訓練データを生成する（ステップＳ８５）。
【０１０５】
最後に学習部１２０は、ステップＳ８５で生成されたノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成し、この学習辞書データを出力する（ステップＳ８６）。
【０１０６】
なお、上記の各ステップのうち、ステップＳ８２及びステップＳ８４は第二ノイズ付加ステップ、ステップＳ８５は生成ステップ、ステップＳ８６は学習辞書データ出力ステップの本実施の形態における例である。
【０１０７】
つまり学習部１２０は、従来のように正規化した訓練データをそのままは用いない。これに代えて学習部１２０は、Ｍ次元空間において、正規化された訓練データの分布範囲の周辺を含む領域にノイズを加えたものを用いて学習辞書を生成する。
【０１０８】
このようなノイズ付加訓練データを用いて学習辞書を生成することで、訓練データに含まれる異常データが少ない場合にも、図７に示されるような多数の正常データが判定境界の外側に位置するような学習辞書を得ることが回避される。その結果、異常検知システム１００では、過検知率を抑えた異常検知をすることができる。
【０１０９】
なお、第一処理方法についての上記の説明では、元の訓練データのデータ要素よりも少ないノイズ要素の個数の決定を０より大きく１より小さい実数値を取るパラメータを用いることで行っていたが、ノイズ要素の個数の決定の方法はこれに限定されない。例えばノイズ要素の個数は、訓練データのデータ要素の個数から一定の数を引いたものであってもよい。また、訓練データの個数を複数の範囲に区切り、各範囲に対して予め定めた個数のノイズ要素が用いられてもよい。このような訓練データの個数とノイズ要素の個数との対応は、例えばデータテーブルに含めて情報処理装置のメモリに記憶される。
【０１１０】
また、第一処理方法は、訓練データのデータ要素が２次元のベクトルである場合を例に説明したが、第一処理方法が基づく考え方はより高次元の空間に一般化して適用することができ、第一処理方法は３次元以上のベクトルである訓練データにも適用することができる。訓練データがＭ次元のベクトルであれば、上記の第一領域の範囲は［０，１］Ｍ、第二領域の範囲は［−０．５，１．５］Ｍと読み替えて適用される。つまり、第一領域はＭ次元の空間における超立方体である第一超立方体で画定されるＭ次元空間の領域、第二領域はＭ次元の空間において第一超立方体より大きくこれを包含する超立方体である第二超立方体で画定されるＭ次元空間の領域である。
【０１１１】
［第二処理方法］
図１０は、上記で述べた適切な学習辞書を得るための訓練データの処理方法の他の一例である第二処理方法を示すフロー図である。
【０１１２】
第二処理方法も、２個以上のＭ次元のベクトルからなるＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データの入力を受けた後の学習部１２０において、学習辞書生成部１２４によって実行される。ただし以下では、学習辞書生成部１２４による処理であっても学習部１２０の処理として説明することがある。第二処理方法も、図９Ａに示される訓練データの初期状態から始める場合を例に説明する。また、第一処理方法と共通の工程については説明を簡略化することがある。
【０１１３】
まず学習部１２０は、本処理に用いるパラメータを読み込む（ステップＳ１００）。パラメータの詳細については以降のステップで説明する。
【０１１４】
次に学習部１２０は、入力された訓練データを正規化する（ステップＳ１０１）。この工程の内容は第一処理方法と共通であり、図９Ｂは、２次元平面に分布する正規化後の訓練データの例を示す。また、正規化前は図９Ａに示されるように分布していた訓練データの分布範囲が、２次元平面における［０，１］２の領域に渡るよう変換されている。このような領域は、本実施の形態における第一領域の例である。
【０１１５】
次に学習部１２０は、第一領域より大きく、且つ第一領域を包含するＭ次元空間、つまりこの例では２次元平面の領域である第二領域を設定し、第二領域を、大きさの等しいＭ次元の超立方体である第三領域に分割する（ステップＳ１０２）。図１１Ａは、２次元平面における第二領域及び第三領域を説明するための図である。図１１Ａに示される例では、は［−０．５，１．５］２の領域であり、第三領域は、第二領域を６４個に分割して得られるサブ領域である。
【０１１６】
ここで、ステップＳ１００で取得されたパラメータは、ステップＳ１０２で第二領域を分割して得られる第三領域の個数の決定に用いられ、図１１Ａの例ではこのパラメータの値は８であり、分割数は８のＭ乗、つまりこの例では２乗で６４個である。
【０１１７】
次に学習部１２０は、第三領域のそれぞれが含む訓練データのデータ要素の個数Ｓ（Ｓは０以上の整数）を取得する（ステップＳ１０３）。なお、この時点では第一領域の外にある第三領域内には訓練データのデータ要素はないため、いずれの第三領域についてもＳ＝０である。
【０１１８】
次に学習部１２０は、各第三領域内にある訓練データのデータ要素についての閾値である第一閾値Ｔ（Ｔは自然数）を決定する（ステップＳ１０４）。第一閾値Ｔの決定には、例えばステップＳ１００で取得されたパラメータが用いられる。ステップＳ１０２で用いられるパラメータと同じでもよいし、異なっていてもよい。異なる場合には、ステップＳ１０２で用いられるパラメータから算出されてもよい。
【０１１９】
ステップＳ１０４で用いられるこのパラメータのより具体的な例を挙げると、例えば第一領域内にあるいずれかの第三領域に含まれる訓練データのデータ要素の個数を特定するものであってもよい。具体例としては、第三領域に含まれる訓練データのデータ要素の個数を大きさ順で並べた順位で特定の順位を示すものであってもよい。この場合、第一閾値には、この特定の順位の第三領域に含まれる訓練データのデータ要素の個数が用いられる。順位の示し方としては、最小値若しくは最大値から何番目であるか、又は平均値若しくは中央値を始点として大小いずれかの何番目であるかで示されてもよい。
【０１２０】
ここから学習部１２０は、上記のＳ及びＴを用いて各第三領域へのノイズ要素の付加の要否の判断、及び各第三領域に付加するノイズ要素の個数を決定してノイズ要素を付加する手順を実行する。
【０１２１】
まず学習部１２０は、ノイズ要素の付加の要否に関する判断がなされていない第三領域があるか確認し（ステップＳ１０５）、ある場合（ステップＳ１０５でＹＥＳ）には、その第三領域からひとつを選択し（ステップＳ１０６）、第三領域の訓練データのデータ要素の個数Ｓが第一閾値Ｔより小さいか否か判断する（ステップＳ１０７）。
【０１２２】
その第三領域の訓練データのデータ要素の個数Ｓが第一閾値Ｔより小さい場合（ステップＳ１０７でＹＥＳ）、その第三領域のデータ要素とノイズ要素との合計数がＴになるよう、（Ｔ−Ｓ）個のノイズ要素を追加する（ステップＳ１０８）。
【０１２３】
その第三領域の訓練データのデータ要素の個数Ｓが第一閾値Ｔ以上である場合（ステップＳ１０７でＮＯ）、未処理の第三領域がさらにあるかを確認する（ステップＳ１０５）。
【０１２４】
全ての第三領域について、ステップＳ１０５からステップＳ１０７又はＳ１０８までの処理がなされると（ステップＳ１０５でＮＯ）、学習部１２０は第二領域内にあるデータ要素及びノイズ要素を含むノイズ付加訓練データを生成する（ステップＳ１０９）。図１１Ｂは、ステップＳ１０５でＮＯの場合の２次元空間に分布する訓練データ及びノイズ要素の例を説明するための図である。図１１Ｂにおいてもノイズ要素は破線の輪郭の丸で示されている。
【０１２５】
図１１Ｂの例は、第一閾値Ｔ＝９である場合の例である。第一領域の左下隅にある第三領域は、訓練データのデータ要素の個数Ｓ＝６であったため、Ｔ−Ｓ＝３個のノイズ要素が付加されている。第一領域の左下隅にある第三領域は、訓練データのデータ要素の個数Ｓ＝８であったため、Ｔ−Ｓ＝１個のノイズ要素が付加されている。第一領域内の他の第三領域は、全てＳが９以上であったため、ノイズ要素は付加されていない。ハッチングが施された他の第三領域は第一領域の外にあって訓練データのデータ要素を含まないため、それぞれ９個のノイズ要素が付加されている。なお、ノイズ要素は各第三領域において、その領域内で一様分布に従う乱数とする。
【０１２６】
最後に学習部１２０は、ステップＳ１０９で生成されたノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成し、この学習辞書データを出力する（ステップＳ１１０）。
【０１２７】
なお、上記の各ステップのうち、ステップＳ１０１は正規化ステップ、ステップＳ１０２は分割ステップ、ステップＳ１０３からＳ１０８までは第一ノイズ付加ステップ、ステップＳ１０９は生成ステップ、ステップＳ１１０は学習辞書データ出力ステップの本実施の形態における例である。
【０１２８】
第二処理方法においても、学習部１２０は、従来のように正規化した訓練データをそのままは用いない。これに代えて学習部１２０は、Ｍ次元空間において、正規化された訓練データの分布範囲の周辺を含む領域にノイズを加えたものを用いて学習辞書を生成する。
【０１２９】
このようなノイズ付加訓練データを用いて学習辞書を生成することで、訓練データに含まれる異常データが少ない場合にも、図７に示されるような多数の正常データが判定境界の外側に位置するような学習辞書を得ることが回避される。その結果、異常検知システム１００では、過検知率を抑えた異常検知をすることができる。
【０１３０】
また、第二処理方法では第一処理方法と異なり、訓練データが分布する第一領域内に付加するノイズ要素の個数が、より細分化した領域ごとの疎密に応じて決定される。したがって第二処理方法では、第一処理方法では第一領域内で生じ得るデータ要素とノイズ要素との過密な場所の発生が抑えられる。Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔでは、訓練データにおいてベクトルのデータが過密な場所は、判定境界の内側になりやすい。したがって、データ要素とノイズ要素の過密が生じやすいと、異常なデータであっても正常と判定される誤判定の可能性が高まる。異常であるデータを正常であるとする誤判定による誤検知については、以下では上記の過検知に対して検知漏れともいう。第二処理方法を実行して生成された学習辞書に基づいて未知データの異常判定が行われる異常検知システム１００では、過検知の発生を抑えるとともに検知漏れの可能性も抑えた異常検知をすることができる。
【０１３１】
なお、第二処理方法も第一処理方法と同じく、本処理方法が基づく考え方はより高次元の空間に一般化して適用することができ、第二処理方法は３次元以上のベクトルである訓練データにも適用することができる。訓練データがＭ次元のベクトルであれば、上記の第一領域の範囲は［０，１］Ｍ、第二領域の範囲は［−０．５，１．５］Ｍと読み替えて適用される。つまり、第一領域はＭ次元の空間における超立方体である第一超立方体で画定されるＭ次元空間の領域、第二領域はＭ次元の空間において第一超立方体より大きくこれを包含する超立方体である第二超立方体で画定されるＭ次元空間の領域である。
【０１３２】
［効果］
ここで、上記の第二処理方法によって訓練データにノイズを付加することによる効果の実例を示す。
【０１３３】
図１２Ａ及び図１２Ｂは、訓練データにノイズを付加せずに用いて生成した学習辞書の判定境界と、同じ訓練データに上記の処理方法でノイズを付加したものを用いて生成した学習辞書の判定境界とを示す図である。なお、図１２Ａの訓練データ１と図１２Ｂの訓練データ２とは、同一の実車の車載ネットワークから取得された種類の異なるデータである。訓練データ１と訓練データ２とを比較すると、訓練データ１はデータ要素が分布の中心から周縁までほぼ一様に分布し、訓練データ２は周縁でデータ要素の分布が疎になる。訓練データ２は、訓練データ１よりも外れ値を含む可能性が高いともいえる。
【０１３４】
図１２Ａ及び図１２Ｂのいずれにおいても、丸は訓練データのデータ要素を示す。また、実線の囲みはノイズを付加しない訓練データを用いて生成した学習辞書の判定境界、破線の囲みはノイズを付加した訓練データを用いて生成した学習辞書の判定境界である。なお、ノイズ要素は各図中で示していない。
【０１３５】
これらの図から分かるように、ノイズを付加した場合に得られた学習辞書の判定境界の内側には、ノイズを付加しない場合に得られた学習辞書の判定境界の内側の訓練データの全て、及びその外側の訓練データの多くが含まれている。
【０１３６】
さらに発明者らは、ノイズを付加した場合に得られた学習辞書の方が適切であるかを確認するためにテスト用のデータを用いて各学習辞書での異常検知試験を行った。図１２Ｃはこの異常検知試験での誤検知率を示す。各訓練データの左の柱は訓練データにノイズを付加しないで得た学習辞書での誤検知率、右の柱は訓練データにノイズを付加して得た学習辞書での誤検知率である。
【０１３７】
図１２Ｃからわかるように、ノイズを付加して得た学習辞書での誤検知率には、ノイズを付加しないで得た学習辞書に比べて大幅な改善が見られる。つまり、ノイズを付加した場合に得られた学習辞書の方がより適切であることがわかる。また、この改善は、外れ値を含む可能性が高く、ノイズを付加しないで得た学習辞書でも誤検知率がある程度低かった訓練データ２の場合でも見られる。時速数十ｋｍ以上で走る車両での異常検知では、過検知であるか検知漏れであるかを問わず誤検知が低く抑えられることの重要性は高い。
【０１３８】
一方で、ＣＡＮ等の規格に準拠するネットワークから得られる訓練データとして、例えばアプリケーション層での異常に由来する異常データも含めて十分なゆらぎを持つデータを収集するのは、必ずしも容易ではない。未知の攻撃パターンで発生する異常データに近い訓練データとなれば、なおのこと用意するのは困難である。つまり、このような訓練データをＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔでの学習辞書の生成に利用していた従来は、異常検知での誤検知率を抑えるのが困難であった。
【０１３９】
しかしながら、本実施の形態における処理方法を実行することで、正常データ要素を多く含む元の訓練データに、この訓練データからある程度外れたデータ要素が、元の訓練データより少量、低い密度でデータ空間内に付加される。この付加されるデータ要素を上記ではノイズ要素と呼んでいる。そしてこの訓練データを用いて生成した学習辞書を用いる異常検知システムでは、従来よりも抑えられた誤検知率での異常検知が可能である。
【０１４０】
（実施の形態２）
実施の形態１で説明した第一処理方法と第二処理方法とは、それぞれを実現するために情報処理装置において実行されるプログラムのアルゴリズムの差であり、例えばあるプロセッサで読み込むプログラムを切り替えることで選択的に実行が可能である。
【０１４１】
ただし第一処理方法と第二処理方法とでは、次のような差がある。
【０１４２】
まず、ノイズ要素の付加に要する時間が、第二処理方法は第一処理方法よりも訓練データの量数への依存度が大きく、訓練データが増えるほど時間がかかる。つまり、第二処理方法の方が、プロセッサへの処理負荷が大きい。
【０１４３】
その一方で、生成される学習辞書での検知の精度（誤検知率の低さ）は、上述のとおりいずれでも従来に比べて改善されるが、第二処理方法の方が優れる。
【０１４４】
精度の高さという観点では、異常検知システムでは常に第二処理方法が実行されるのが望ましい。そして上記のような処理負荷の差は、図１Ａの異常検知システム１００Ａ又は図１Ｂの異常検知システム１００Ｂでは十分な計算機資源を投入しやすいため問題になりにくい。しかしながら、図１Ｃの異常検知システム１００Ｃのような構成では、プロセッサの演算速度等計算機資源に制限がある場合が想定される。つまり、走行する車両においては、第二処理方法では必要な速度で学習辞書の生成又は更新ができない可能性がある。
【０１４５】
また、異常検知システムでの検知の時間コスト及び精度に影響するものとしては、処理方法の違いだけでなく、各処理方法におけるパラメータがある。
【０１４６】
第一処理方法では、ノイズ要素の個数の決定に用いられるパラメータは０より大きく１より小さい実数を値として取り得る。しかし、この範囲のどの値で異常検知により適した学習辞書が生成されるかをあらかじめ予想するのは困難であり、これを知るには、例えばパラメータの値を変えて生成した複数の学習辞書でテスト用のデータに対して行う異常検知の精度を比較する。ただし当然のことながら、このような最適なパラメータの探索のために比較をすれば、異常検知に用いる学習辞書が決定されるまでにより多くの時間がかかる。学習辞書の決定が遅ければ、異常検知は学習辞書の決定まで実行できないか、古い学習辞書を用いて実行されるために精度が落ちる。
【０１４７】
第二処理方法では、第二領域を分割して得られる第三領域の個数の決定に用いられるパラメータ、及び第一閾値Ｔの決定に用いられるパラメータがある。これらの２つのパラメータのうち前者は、例えば、各次元で第一領域内で１回以上分割することで２個以上、また、第一領域の外では両側に第三領域が１個以上、計４個以上の第三領域が並ぶと想定して、Ｌは４以上の整数値を取り得る。後者は、例えば第二領域にある第三領域のいずれかの特定に用いられる値であれば、１以上で第二領域にある第三領域の個数以下の実数の値を取り得る。これらのパラメータについても、第一処理方法と同様のことがあてはまり、探索を行えばより精度のよい異常検知が可能な学習辞書が得られる可能性があるが、異常検知に用いる学習辞書が決定されるまでにより多くの時間がかかる。したがって、異常検知の実行が遅れるか、精度が犠牲となる。
【０１４８】
発明者らはこれらの点を考慮し、必要な速さで、かつ極力高い精度での異常検知を異常検知システムに実行させるには、訓練データの処理方法の選択又はパラメータの探索の実行の有無に関する迅速な決定を異常検知システムでさせる手法に想到した。
【０１４９】
以下、このような異常検知システムについて説明する。なお、本実施の形態の異常検知システムの構成は実施の形態１と共通でよいため異常検知システム１００として説明を省略し、その動作について説明する。
【０１５０】
［動作］
以下では、異常検知システム１００において訓練データの処理方法の選択又はパラメータの探索の実行の有無に関する迅速な決定のための処理全体について説明し、その説明の中でパラメータの探索のための処理について説明する。
【０１５１】
図１３は、異常検知システム１００において実行される、訓練データの処理方法の選択及び各処理方法でのパラメータの探索の実行の有無に関する決定のための処理方法の一例を示すフロー図である。
【０１５２】
この処理方法は、２個以上のＭ次元のベクトルからなるＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データの入力を受けた後の学習部１２０において、学習辞書生成部１２４によって実行される工程がある。ただし以下では、学習辞書生成部１２４による処理であっても学習部１２０の処理として説明する。また、異常判定部１１０の各構成要素によって実行される工程もあるが、以下では、異常判定部１１０による処理として説明することがある。
【０１５３】
また、以下では、初期状態で訓練データ受信部１２２が訓練データの入力を既に受けていることを想定して説明する。
【０１５４】
まず学習部１２０は、訓練データのデータ要素の個数Ｎを取得する（ステップＳ１３０）。
【０１５５】
次に学習部１２０は、Ｎが所定の第二閾値以上であるか否かを判定する（ステップＳ１３１）。第二閾値は、訓練データの処理方法として第一処理方法と第二処理方法とのいずれを用いるかの判断のために用いられる閾値であり、例えば学習部１２０を実現するプロセッサの演算能力等の利用可能な計算機資源によって決定されて情報処理装置のメモリに格納されている。このように所定の閾値を用いることで、迅速な判断が可能である。
【０１５６】
Ｎが第二閾値以上であると判定した場合、つまり訓練データのデータ要素の個数が多い場合、学習部１２０は、より短時間で完了できる第一処理方法を選択する（ステップＳ１３２）。
【０１５７】
Ｎが第二閾値以上でないと判定した場合、つまり訓練データのデータ要素の個数が少ない場合、学習部１２０は、より精度の高い異常検知が可能な学習辞書が得られる第二処理方法を選択する（ステップＳ１３３）。
【０１５８】
次に学習部１２０は、Ｎが所定の第三閾値以上であるか否かを判定する（ステップＳ１３４）。第三閾値は、訓練データの各処理方法の実行時にパラメータの探索を実行するか否かの判断のために用いられる閾値である。第三閾値も第二閾値と同様に、例えば学習部１２０を実現するプロセッサの演算能力等の利用可能な計算機資源によって決定され、情報処理装置のメモリに格納されている。第二閾値とは関連があってもよいし、相互に独立した値でもよい。このように所定の閾値を用いることで、迅速な判断が可能である。
【０１５９】
Ｎが第三閾値以上であると判定した場合、つまり訓練データのデータ要素の個数が多い場合、学習部１２０は、より短時間で完了できるようパラメータ探索は実行しないと決定する（ステップＳ１３５）。
【０１６０】
Ｎが第三閾値以上でないと判定した場合、つまり訓練データのデータ要素の個数が少ない場合、学習部１２０は、より精度の高い異常検知が可能な学習辞書を得るためのパラメータ探索を実行する（ステップＳ１３６）。
【０１６１】
ステップＳ１３２及びステップＳ１３５を経て学習辞書データの生成及び出力（ステップＳ１３７）をする場合、学習部１２０は、図８のフロー図に示される第一処理方法を実行する。
【０１６２】
ステップＳ１３３及びステップＳ１３５を経て学習辞書データの生成及び出力（ステップＳ１３７）をする場合、学習部１２０は、図１０のフロー図に示される第二処理方法を実行する。
【０１６３】
ステップＳ１３２及びステップＳ１３６を経て学習辞書データの生成及び出力（ステップＳ１３７）をする場合、学習部１２０は、図１４のフロー図に示される第一処理方法を実行する。図１４は、異常検知システム１００において実行される、パラメータ探索を含む第一処理方法のフロー図である。図１４のフロー図では、図８のフロー図に示される第一処理方法と共通の工程は共通の参照符号で示し、詳細な説明は省略する。
【０１６４】
図１４のフロー図に示される第一処理方法では、学習部１２０は、Ｓ８２、Ｓ８４〜Ｓ８６の工程のセットを、パラメータの値を入れ替えて複数回実行する。その結果として生成され出力される複数の学習辞書データは、異常判定部１１０の蓄積部１１２に保存される。また、学習部１２０からは、ステップＳ８３で正規化に用いられたデータも異常判定部１１０に提供されて蓄積部１１２に保存される。
【０１６５】
異常判定部１１０は、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔのテスト用データを取得している。このテスト用データは、例えば予め異常判定部１１０に入力され、蓄積部１１２に保存されており、ステップＳ１３１でＮが第二閾値以上でないと判定された場合に異常判定部１１０がこのテスト用データを蓄積部１１２から読み込んで取得する。そして、異常判定部１１０は、ステップＳ８３で正規化に用いられたデータを用いてテスト用データを正規化し、各学習辞書データを用いてテスト用データに対する異常判定を実行する（ステップＳ１４０）。
【０１６６】
最後に学習部１２０は、ステップＳ１４０でなされた各学習辞書データを用いた異常判定の評価をし、この評価結果に基づいて最良の学習辞書データを実際の異常検知に用いられる学習辞書データとして選択する（ステップＳ１４１）。この評価には、例えば再現率、Ｆ値等の既知の評価尺度を利用することができる。なお、ステップＳ１４１は異常判定部１１０によって実施されてもよい。
【０１６７】
なお、上記の各ステップのうち、ステップＳ８２及びステップＳ８４は第二ノイズ付加ステップ、ステップＳ８５は生成ステップ、ステップＳ８６は学習辞書データ出力ステップの本実施の形態における例である。また、ステップＳ１３１は第一判定ステップ、ステップＳ１３4は第二判定ステップの本実施の形態における例である。また、ステップＳ１４０及びＳ１４１はテスト用データ取得ステップ、評価ステップ、及び学習辞書データ選択ステップに対応する本実施の形態における例である。
【０１６８】
ステップＳ１３２及びステップＳ１３５を経て第一処理方法が実行される場合との違いのひとつは、ステップＳ８２、Ｓ８４〜Ｓ８６の工程のセットが異常検知に用いられる学習辞書データが出力されるまでに１回のみ実行されるのか複数回実行されるかという点にある。また、テスト用データを用いて複数の学習辞書データが評価され、この評価の結果に基づいて最良の学習辞書データが異常検知に用いられる学習辞書データとして選択される点も異なる。
【０１６９】
ステップＳ１３３及びステップＳ１３６を経て学習辞書データの生成及び出力（ステップＳ１３７）をする場合、学習部１２０は、図１５のフロー図に示される第二処理方法を実行する。図１５は、異常検知システム１００において実行される、パラメータ探索を含む第二処理方法のフロー図である。図１５のフロー図では、図１０のフロー図に示される第二処理方法と共通の工程は共通の参照符号で示し、詳細な説明は省略する。
【０１７０】
図１５のフロー図に示される第二処理方法では、学習部１２０は、ステップＳ１０２〜Ｓ１１０の工程のセットを、２種類のパラメータの値の組み合わせを入れ替えて複数回実行する。その結果として生成され出力される複数の学習辞書データは、異常判定部１１０の蓄積部１１２に保存される。また、学習部１２０からは、ステップＳ１０１で正規化に用いられたデータも異常判定部１１０に提供されて蓄積部１１２に保存される。
【０１７１】
ステップＳ１５０及びＳ１５１の内容は、それぞれステップＳ１４０及びＳ１４１と共通である。
【０１７２】
なお、上記の各ステップのうち、ステップＳ１０２は分割ステップ、ステップＳ１０３からＳ１０８まで第一ノイズ付加ステップ、ステップＳ１０９は生成ステップ、ステップＳ１１０は学習辞書データ出力ステップの本実施の形態における例である。また、ステップＳ１３１は第一判定ステップ、ステップＳ１３4は第二判定ステップの本実施の形態における例である。また、ステップＳ１５０及びＳ１５１はテスト用データ取得ステップ、評価ステップ、及び学習辞書データ選択ステップに対応する本実施の形態における例である。
【０１７３】
ステップＳ１３３及びステップＳ１３５を経て第二処理方法が実行される場合との違いのひとつは、ステップＳ１０２〜Ｓ１１０の工程のセットが異常検知に用いられる学習辞書データが出力されるまでに１回のみ実行されるのか複数回実行されるかという点にある。また、テスト用データを用いて複数の学習辞書データが評価され、この評価の結果に基づいて最良の学習辞書データが異常検知に用いられる学習辞書データとして選択される点も異なる。
【０１７４】
以上に説明したとおり、図１３に示されるフロー図ではノイズ付加の処理方法が２通り、各処理方法についてのパラメータ探索の実行の有無で２通りある。つまり、異常検知に用いられる学習辞書データが決定して異常検知の実行が可能になるまで４通りの処理パターンがある。これらの処理パターンのうち、時間コストがもっとも大きいのは、パラメータ探索を含めて第二処理方法が実行されるパターンである。次いで時間コストが大きいのは、パラメータ探索を含めて第一処理方法が実行される場合である。これらの２パターンに比べて残る２パターンの時間コストは大幅に小さい。上記では第二閾値と第三閾値とは独立の値でもよいとしているが、この時間コストの大小関係を考慮して決定されてもよい。
【０１７５】
また、ステップＳ１３１での判断の結果に応じて、つまりノイズの付加に用いられるのが第一処理方法であるか第二処理方法であるかに応じて、ステップＳ１３４で用いられる閾値が切り替えられてもよい。例えば第二処理方法が用いられる場合には、第三閾値が用いられ、第一処理方法が用いられる場合には、第三閾値に代えて別の所定の閾値である第四閾値が用いられてもよい。このように第四閾値が用いられる場合のステップＳ１３４は、本実施の形態における第三判定ステップの例である。
【０１７６】
また、図１３のフロー図では、ノイズ付加の処理方法の判断と、各処理方法についてのパラメータ探索の実行の有無の判断との２つの判断がなされているが、時間コストの調整にはこれらの両方が必須ではない。これらの判断のうち一方のみで時間コストの調整が図られてもよい。
【０１７７】
また、図１３のフロー図では、パラメータ探索の実行について用意されている選択肢は実行するかしないかの２つであるが、例えば訓練データのデータ要素の個数に応じて、探索のために入れ替えるパラメータの個数が段階的に変更されてもよい。つまり、訓練データのデータ要素の個数が多いほど、入れ替えられるパラメータの個数が減らされてもよい。この場合、パラメータの個数はデータ要素の個数から算出される値であってもよいし、データ要素の所定範囲ごとにあらかじめ決められた値でもよい。つまり、訓練データのデータ要素の個数とパラメータの個数との間に負の相関があればよい。これにより、訓練データのデータ要素が多い場合には、学習辞書データの決定までに要する時間が長くなり過ぎないように演算処理の負荷の増加が抑えられる。
【０１７８】
また、図１３のフロー図では、訓練データのデータ要素の個数Ｎの第二閾値との比較の結果に応じて、訓練データの処理のために第一処理方法を実行するか第二処理方法を実行するかが選択されるが、これに限定されない。例えば、訓練データの処理を実行しないという選択肢がさらにあってもよい。例えば、情報処理装置において他の処理によるプロセッサへの負荷が大きいため、異常検知には現行の学習辞書を継続して利用し、更新のための新たな学習辞書の生成を延期するという場合にこのような判断がされてもよい。また、選択肢は、第一処理方法の実行又は第二処理方法の実行の一方と、訓練データの処理を実行しないという２つの選択肢であってもよい。
【０１７９】
（他の実施の形態）
以上のように、本発明に係る技術の例示として実施の形態１、２を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【０１８０】
上記実施の形態における各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。このＲＡＭには、コンピュータプログラムが記録されている。また、このマイクロプロセッサが、ＲＡＭに記録されているコンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていてもよいし、一部又は全部を含むように１チップ化されてもよい。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブルプロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
【０１８１】
上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。このＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。また、このＩＣカード又はモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカード又はモジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０１８２】
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵ又はプロセッサなどのプログラム実行器が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態の情報処理装置などを実現するソフトウェアは、次のようなプログラムである。
【０１８３】
すなわち、このプログラムは、コンピュータに、Ｉｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの訓練データとして用いられるＮ個（Ｎは２以上の整数）のＭ次元のベクトル（Ｍは２以上の整数）であるデータ要素の入力を受けさせるデータ要素取得ステップと、訓練データをＭ次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、第一領域より大きく第一領域を包含するＭ次元の第二領域を、大きさの等しいＬＭ個（Ｌは４以上の整数）のＭ次元の超立方体である第三領域に分割させる分割ステップと、第三領域のそれぞれが含むデータ要素の個数Ｓ（Ｓは０以上の整数）を取得させ、第三領域のうち、第一閾値Ｔ（Ｔは自然数）より少ない個数のデータ要素を含む第三領域のそれぞれに、（Ｔ−Ｓ）個のＭ次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、ノイズ付加訓練データを用いてＩｓｏｌａｔｉｏｎ  Ｆｏｒｅｓｔの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む情報処理方法を実行させる。
【０１８４】
また、本発明は上記の実施の形態に記載される、訓練データを用いて学習辞書データを生成し、この学習辞書データを異常判定を実行する異常判定装置に提供する情報処理装置として実現可能である。また、この情報処理装置及び異常判定装置を備える異常検知システムとしても実現可能である。この異常判定装置は、例えば図１Ａ又は図１Ｃに示される構成の異常検知システム内であれば、車載ネットワーク２１０に接続される異常判定部を実現する監視ＥＣＵである。また、図１ＢＣに示される構成の異常検知システム内であれば、異常判定部を実現する外部サーバ１０である。いずれの場合も、情報処理装置から出力された学習辞書データを記憶するメモリ及びプロセッサを備えネットワークに接続される。このネットワークは、典型的には上述のとおり車載のＣＡＮネットワークであるが、これに限定されない。
【０１８５】
例えば、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  ｒａｔｅ）、ＦｌｅｘＲａｙ、Ｅｔｈｅｒｎｅｔ、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）などのネットワークであってもよい。あるいはこれらのネットワークをサブネットワークとして、ＣＡＮネットワークと組み合わせた車載ネットワークであってもよい。
【０１８６】
また、上記実施の形態において、各構成要素は、回路でもよい。複数の構成要素が、全体として１つの回路を構成してもよいし、それぞれ別々の回路を構成してもよい。また、回路は、それぞれ、汎用的な回路でもよいし、専用の回路でもよい。
【０１８７】
以上、一つ又は複数の態様に係る情報処理装置などについて、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、及び異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。
【０１８８】
例えば、上記実施の形態において、特定の構成要素が実行する処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
【産業上の利用可能性】
【０１８９】
本発明は、車載ネットワークを含む車載ネットワークシステムに利用可能である。
【符号の説明】
【０１９０】
１０  外部サーバ
２０  車両
１００、１００Ａ、１００Ｂ、１００Ｃ  異常検知システム
１１０  異常判定部
１１２  蓄積部
１１４  判定対象データ受信部
１１６  判定対象データ変換部
１１８  判定実行部
１２０  学習部
１２２  訓練データ受信部
１２４  学習辞書生成部
２１０  車載ネットワーク
【図１Ａ】
2018092613.tif 000003
【図１Ｂ】
2018092613.tif 000004
【図１Ｃ】
2018092613.tif 000005
【図２】
2018092613.tif 000006
【図３】
2018092613.tif 000007
【図４】
2018092613.tif 000008
【図５】
2018092613.tif 000009
【図６】
2018092613.tif 000010
【図７】
2018092613.tif 000011
【図８】
2018092613.tif 000012
【図９Ａ】
2018092613.tif 000013
【図９Ｂ】
2018092613.tif 000014
【図９Ｃ】
2018092613.tif 000015
【図１０】
2018092613.tif 000016
【図１１Ａ】
2018092613.tif 000017
【図１１Ｂ】
2018092613.tif 000018
【図１２Ａ】
2018092613.tif 000019
【図１２Ｂ】
2018092613.tif 000020
【図１２Ｃ】
2018092613.tif 000021
【図１３】
2018092613.tif 000022
【図１４】
2018092613.tif 000023
【図１５】
2018092613.tif 000024