JP6782679B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP6782679B2
JP6782679B2 JP2017207085A JP2017207085A JP6782679B2 JP 6782679 B2 JP6782679 B2 JP 6782679B2 JP 2017207085 A JP2017207085 A JP 2017207085A JP 2017207085 A JP2017207085 A JP 2017207085A JP 6782679 B2 JP6782679 B2 JP 6782679B2
Authority
JP
Japan
Prior art keywords
data
learning dictionary
region
training data
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017207085A
Other languages
English (en)
Other versions
JP2018092613A (ja
Inventor
良太 高橋
良太 高橋
崇光 佐々木
崇光 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to PCT/JP2017/040727 priority Critical patent/WO2018105320A1/ja
Priority to EP17877549.0A priority patent/EP3553712B1/en
Priority to CN201780022736.0A priority patent/CN109074519B/zh
Publication of JP2018092613A publication Critical patent/JP2018092613A/ja
Priority to US16/255,877 priority patent/US10601852B2/en
Application granted granted Critical
Publication of JP6782679B2 publication Critical patent/JP6782679B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/10Pre-processing; Data cleansing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00309Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with bidirectional data transmission between data carrier and locks
    • G07C2009/00555Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with bidirectional data transmission between data carrier and locks comprising means to detect or avoid relay attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Linguistics (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Complex Calculations (AREA)

Description

本発明は、車載ネットワーク等で用いられる異常検知技術に関する。
電子化が進んだ自動車において、車載ネットワークの重要性は以前にまして高い。
自動車には各種のシステムを制御する多数の電子制御ユニット(Electronic Control Unit、以下ECUと表記する)が搭載されている。ECU間では車載ネットワークに接続され、自動車の諸機能を実現するためにこの車載ネットワークを介して通信が行われている。CAN(Controller Area Network)は、このような車載ネットワークの規格のひとつで、標準的な技術として多くの国及び地域で採用されている。
CANのプロトコルに準拠するネットワークは1台の車上で閉じた通信経路として構築可能である。しかしながら、各自動車には外部からのアクセスが可能なネットワークとして構築され搭載されるのが珍しくない。例えば車載ネットワークには、ネットワークを流れる情報を車載の各システムの診断に利用する目的で取り出すためのポートが設置されたり、無線LANを提供する機能を備えるカーナビゲーションシステムが接続されたりしている。車載ネットワークへの外部からのアクセスが可能になることで自動車のユーザにとっての利便性は向上し得るが、その一方で脅威も増大する。
例えば2013年には、車載ネットワークの外部からの駐車支援機能等の悪用による不正な車両制御が可能であることが実証された。また、2015年には特定の車種の遠隔からの不正制御が可能であることが実証され、この実証が発端となって当該車種のリコールに発展した。
このような外部からのアクセスによる車両の不正制御は、自動車業界にとっては看過できない問題であり、車載ネットワークのセキュリティ対策は急務な状況にある。
車載ネットワークへの攻撃の一手法としては、ネットワークに接続されるECUに外部からアクセスしてこのECUを乗っ取り、このECUから攻撃のためのフレーム(以下では攻撃フレームともいう)を送信させて自動車を不正に制御するものがある。攻撃フレームは、攻撃されていない車載ネットワークを流れる正常なフレームとは何らかの点で異なる異常なフレームである。
このような車載ネットワークでの異常検知のための技術として、CANのバス上を流れるフレーム(以下、CANメッセージ又は単にメッセージともいう)に対する異常データ検知処理を、学習データを用いた学習の結果として得る評価モデルを用いて実行する技術が開示されている(特許文献1、特許文献2参照)。
特開2015−026252号公報 特開2015−170121号公報
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
車載ネットワークへの攻撃及び攻撃に対抗するためのセキュリティ技術は研究途上であって特許文献1、2の技術で十分とは限らず、更なる研究開発が望まれている。
本発明は、自動車等の車両の車載ネットワークにおける攻撃による異常検知のために有用な情報処理装置等を提供する。
上記課題を解決するために、本発明の一態様に係る情報処理装置は、プロセッサを備える情報処理装置であって、前記プロセッサは、Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けるデータ要素取得ステップと、前記訓練データをM次元の第一領域に渡って分布させるよう正規化する正規化ステップと、前記第一領域より大きく前記第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の超立方体である第三領域に分割する分割ステップと、前記第三領域のそれぞれが含む前記データ要素の個数S(Sは0以上の整数)を取得し、前記第三領域のうち、第一閾値T(Tは自然数)より少ない個数の前記データ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加する第一ノイズ付加ステップと、前記データ要素及び前記ノイズ要素を含むノイズ付加訓練データを生成する生成ステップと、前記ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力する学習辞書データ出力ステップとを実行する。
また、本発明の一態様に係る情報処理方法は、プロセッサを備える情報処理装置を用いて実行される情報処理方法であって、このプロセッサに、Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けさせるデータ要素取得ステップと、訓練データをM次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、第一領域より大きく第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の超立方体である第三領域に分割させる分割ステップと、第三領域のそれぞれが含むデータ要素の個数S(Sは0以上の整数)を取得させ、第三領域のうち、第一閾値T(Tは自然数)より少ない個数のデータ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む。
なお、これらの包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又はコンピュータ読み取り可能なCD−ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本発明によれば、自動車等の車両の車載ネットワークにおける攻撃による異常検知に用いられて誤検知率が抑えられた学習辞書を迅速に提供な情報処理装置等が提供される。
図1Aは、実施の形態1における情報処理装置を含む異常検知システムの構成例を示すブロック図である。 図1Bは、実施の形態1における情報処理装置を含む異常検知システムの構成例を示すブロック図である。 図1Cは、実施の形態1における情報処理装置を含む異常検知システムの構成例を示すブロック図である。 図2は、上記の異常検知システムを構成する異常判定部及び学習部の構成例を示すブロック図である。 図3は、上記の学習部が訓練データを用いて生成した学習辞書を説明するための模式図である。 図4は、上記の異常判定部による異常判定を説明するための模式図である。 図5は、学習辞書を生成する上記の学習部でのデータの流れを示す図である。 図6は、異常判定を行う上記の異常判定部でのデータの流れを示す図である。 図7は、訓練データの分布にフィットしていない不適切な判定境界の例である。 図8は、上記の異常検知システムにおいて実行される、適切な学習辞書を得るための訓練データの処理方法の一例を示すフロー図である。 図9Aは、M次元空間に分布する正規化前の訓練データの例である。 図9Bは、M次元空間に分布する正規化後の訓練データの例である。 図9Cは、M次元空間に分布するノイズ要素の付加後の訓練データの例である。 図10は、上記の異常検知システムにおいて実行される、適切な学習辞書を得るための訓練データの処理方法の他の一例を示すフロー図である。 図11Aは、M次元空間におけるM次元領域の分割の例を説明するための図である。 図11Bは、M次元空間に分布するノイズ要素の付加後の訓練データの例を説明するための図である。 図12Aは、ノイズを付加しない訓練データを用いて生成した学習辞書の判定境界と、同じ訓練データにノイズを付加したものを用いて生成した学習辞書の判定境界とを示す図である。 図12Bは、ノイズを付加しない訓練データを用いて生成した学習辞書の判定境界と、同じ訓練データにノイズを付加したものを用いて生成した学習辞書の判定境界とを示す図である。 図12Cは、図12A及び図12Bに判定境界を示す各学習辞書を用いてなされた異常検知試験での誤検知率を示す棒グラフである。 図13は、実施の形態2における異常検知システムにおいて実行される、訓練データの処理方法の選択及び各処理方法でのパラメータの探索の実行の有無に関する決定のための処理方法の一例を示すフロー図である。 図14は、実施の形態2における異常検知システムにおいて実行される、より適切な学習辞書を得るための処理方法の一例を示すフロー図である。 図15は、実施の形態2における異常検知システムにおいて実行される、より適切な学習辞書を得るための処理方法の他の例を示すフロー図である。
(本開示の基礎になった知見等)
車載ネットワークのセキュリティ対策として提案されている手法は、大きくに二つに分けられる。
ひとつはメッセージの暗号化又は送信元の認証を利用するものである。ただし、この技術には、理論上は有効であるがECUの実装の変更が必要なものもあり、また、自動車1台当たりに搭載されるECUは数百を超える場合があることから、早期の普及は難しい。
もうひとつは、車載ネットワークを流れるCANメッセージを監視するものである。この手法は、監視用のECU(ノード)を各自動車に追加することで実現可能であり、導入は比較的容易である。提案されているこのような手法をさらに分類すると、ルールベースの手法、データの送信周期を利用する手法、LOF(Local Outlier Factor)を用いてメッセージの内容の外れ値を検知する手法の三種類に大きく分けることができる。
これらの三種類の手法のうち、ルールベースの手法及びデータの送信周期を利用する手法では既知の攻撃パターンに対応することができるが、未知の攻撃パターンを検知するには、LOFを利用する手法のようにメッセージの内容に基づく検知が必要である。
ただし、LOFを利用する手法では、CANメッセージの評価のために大量の正常データを保持しておく必要があり、要求される計算量が大きい。しかしながら、車載ネットワークに接続されるECUは、データの処理能力及び記憶領域の容量がふんだんであるとは限らず、そのような実行環境でも時速数十km以上で道路を走る自動車で要求される速さで検知が可能な手法でなければ実用的ではない。
そこで本発明者らは、LOFよりも要求される保持データが少なく、計算量の小さいIsolation Forest又はiForest(非特許文献1参照)と呼ばれる異常検知アルゴリズムを車載ネットワークの異常検知の手法に利用することに想到した。また、さらに本発明者らは、Isolation Forestを利用する上で、限られた計算機資源で実行される場合であっても、必要な速さで、かつ極力高い精度での異常検知の実行を可能にする技術を提案する。
本発明の一態様に係る情報処理装置は、プロセッサを備える情報処理装置であって、このプロセッサは、Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けるデータ要素取得ステップと、訓練データをM次元の第一領域に渡って分布させるよう正規化する正規化ステップと、第一領域より大きく第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の超立方体である第三領域に分割する分割ステップと、第三領域のそれぞれが含むデータ要素の個数S(Sは0以上の整数)を取得し、第三領域のうち、第一閾値T(Tは自然数)より少ない個数のデータ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加する第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成する生成ステップと、ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力する学習辞書データ出力ステップとを実行する。
これにより、より低い誤検知率でのIsolation Forestの実行を可能にする学習辞書を得ることができる。
また例えば、プロセッサは、Nが所定の第二閾値以上であるか否かを判定する第一判定ステップを実行し、第一判定ステップにおいてNが第二閾値以上ではないと判定した場合、分割ステップ及び第一ノイズ付加ステップを実行してから生成ステップ及び学習辞書データ出力ステップを実行してもよい。
これにより、例えば訓練データのデータ要素の個数が、プロセッサの負荷状況に対して過大である場合は、この訓練データを用いた学習辞書データの生成を延期することができる。
また例えば、プロセッサは、第一判定ステップにおいてNが第二閾値以上であると判定した場合、K個(KはNより小さい自然数)のM次元のベクトルであるノイズ要素を第二領域内に一様な密度で付加する第二ノイズ付加ステップを実行してから生成ステップ及び学習辞書データ出力ステップを実行してもよい。
これにより、訓練データの大きさで変わる処理負荷に応じてノイズの付加方法を切り替えることができ、学習辞書を実行環境に適した速さで生成することができる。
また例えば、プロセッサはさらに、第一判定ステップにおいてNが第二閾値以上でないと判定した場合、Isolation Forestのテスト用データの入力を受けるテスト用データ取得ステップと、Nが所定の第三閾値以上であるか否かを判定する第二判定ステップとを実行し、第二判定ステップにおいてNが第三閾値以上でないと判定した場合、分割ステップ、第一ノイズ付加ステップ、生成ステップ、及び学習辞書データ出力ステップのセットを、分割ステップで値の異なるLを用いて複数回実行して複数の学習辞書データを出力し、さらに、複数の学習辞書データのそれぞれを用いてテスト用データに対する異常検知を実行し、異常検知の結果に基づいて複数の学習辞書データのそれぞれを評価する評価ステップと、評価ステップの結果に基づいて複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、第二判定ステップにおいてNが第三閾値以上であると判定した場合、分割ステップで所定の値であるLを用いてセットを1回実行してもよい。
これにより、訓練データの大きさで変わる処理負荷に応じて、複数の学習辞書データを生成して最適なものを出力するか、ひとつの学習辞書データを生成して出力するかを切り替えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
また例えば、プロセッサは、第二判定ステップにおいてNが第三閾値以上でないと判定した場合、Nの値と負の相関を有するようLの異なる値の個数を決定してもよい。
これにより、訓練データが大きければ、第三領域への分割数を減らすことで処理負荷が減る。したがって、学習辞書を実行環境に適した速さで生成することができる。
また例えば、プロセッサは、第一ノイズ付加ステップにおいて、第一領域内にある第三領域のそれぞれに含まれるデータ要素の個数の中央値より小さい個数のいずれかを第一閾値Tの値として決定してもよい。
これにより、訓練データが大きければ、ノイズ要素が付加される第三領域の個数を減らすことで処理負荷の増大を抑えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
また例えば、プロセッサは、第一判定ステップにおいてNが第二閾値以上であると判定した場合、Isolation Forestのテスト用データの入力を受けるテスト用データ取得ステップと、Nが所定の第四閾値以上であるか否かを判定する第三判定ステップとを実行し、第三判定ステップにおいてNが第四閾値以上でないと判定した場合、第二ノイズ付加ステップ、生成ステップ、及び学習辞書データ出力ステップのセットを、第二ノイズ付加ステップで値の異なるKを用いて複数回実行して複数の学習辞書データを出力し、さらに、複数の学習辞書データのそれぞれを用いてテスト用データに対する異常検知を実行して複数の学習辞書データのそれぞれを評価する評価ステップと、評価ステップの結果に基づいて複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、第三判定ステップにおいてNが第四閾値以上であると判定した場合、第二ノイズ付加ステップで所定の値であるKを用いてセットを1回実行してもよい。
これにより、訓練データの大きさで変わる処理負荷に応じて、複数の学習辞書データを生成して最適なものを出力するか、ひとつの学習辞書データを生成して出力するかを切り替えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
また例えば、プロセッサは、第三判定ステップにおいてNが第四閾値以上でないと判定した場合、Nの値と負の相関を有するようKの異なる値の個数を決定してもよい。
これにより、生成する学習辞書の個数を減らすことで処理負荷の増大を抑えることができる。したがって、学習辞書を実行環境に適した速さで生成することができる。
また例えば、第一領域をM次元の空間における[0,1]の超立方体で画定される領域とすると、第二領域は、このM次元の空間において[−0.5,1.5]の超立方体で画定される領域であってもよい。
これにより、学習辞書の生成に利用可能な訓練データに外れ値が少ない場合であっても、より低い誤検知率での異常検知を可能にする学習辞書を得ることができる。
また、本発明の一態様に係る異常検知システムは、上記に記載の情報処理装置のいずれかと、情報処理装置から出力された学習辞書データを記憶するメモリ及びプロセッサを備え、ネットワークに接続される異常判定装置であって、プロセッサは、ネットワークを流れるデータを取得し、取得されたデータの異常判定をメモリに記憶されている学習辞書データに基づいて実行する異常判定装置とを備える。
これにより、精度を考慮した上で迅速に更新される学習辞書を利用して異常検知が実行される。
また、本発明の一態様に係る情報処理方法は、プロセッサを備える情報処理装置を用いて実行される情報処理方法であって、このプロセッサに、Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けさせるデータ要素取得ステップと、訓練データをM次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、第一領域より大きく第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の第三領域に分割させる分割ステップと、第三領域のそれぞれが含むデータ要素の個数S(Sは0以上の整数)を取得させ、第三領域のうち、第一閾値T(Tは自然数)より少ない個数のデータ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む。
また、本発明の一態様に係るプログラムは、コンピュータが備えるプロセッサに、上記の情報処理方法を実行させるプログラムである。
このような方法又はプログラムによっても、より低い誤検知率でのIsolation Forestの実行を可能にする学習辞書を得ることができる。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム、又はコンピュータで読み取り可能なCD−ROM等の記録媒体のいずれで実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態に係る情報処理装置、情報処理方法等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。したがって、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。
また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。各図は模式図であり、必ずしも厳密に図示されたものではない。
また、以下に含まれるCAN及びIsolation Forestに関する説明は、本発明の理解の一助を主な趣旨とするものであり、この説明のうち請求項に含まれない事項については、本発明を限定する趣旨で記載されるものではない。
(実施の形態1)
[構成]
[概要]
図1Aから図1Cは、実施の形態1における情報処理装置を含む異常検知システムの一構成例をそれぞれ示すブロック図である。
図1Aから図1Cには、構成の異なる異常検知システム100A、100B、及び100Cがそれぞれ示される。
異常検知システム100A〜100Cは、監視対象であるネットワークを流れるデータの異常を、Isolation Forestと呼ばれるアルゴリズムを用いて検知するシステムであり、いずれも異常判定部110及び学習部120を備える。
異常判定部110は、車両20が備える車載ネットワーク210を流れるデータが正常か異常かを判定する。車両20は例えば自動車である。
車載ネットワーク210は、例えばCANの規格に対応するネットワークであり、図1Aから図1Cの各構成例では、バスと、このバスに接続される複数のECU及び診断用ポートとを含む。複数のECUには、各種のセンサから測定データを収集して分析するECU、エンジンを制御するECU、ブレーキを制御するECU、ネットワークを監視するECU等の、機能の異なるECUが含まれる。車載ネットワーク210を流れるデータとは、バスを流れるメッセージのデータである。
学習部120は、異常判定部110が上記の判定を行うための事前の学習を行う。より具体的には、学習部120は、訓練データを用いて学習し異常判定部110が上記の判定に用いる学習辞書を生成する。生成された学習辞書のデータ(以下、学習辞書データともいう)は、例えば記憶装置(図示なし)に格納される。
異常判定部110は、記憶装置から学習辞書を読み込み、正常か異常かの判定の対象である未知のデータ、つまり車載ネットワーク210から取得したメッセージのデータがこの学習辞書に照らして逸脱しているか否かに基づいて異常であるか否かを判定する。より詳細には、学習部120が生成する学習辞書は複数の二分木からなり、異常判定部110は、これらの複数の二分木から算出したスコアの平均値を用いてデータが異常であるか否かを判定する。なお、Isolation Forestで用いられるこの二分木は、Isolation Tree又はiTreeと呼ばれる。
異常判定部110及び学習部120は、所定のプログラムを読み込んで実行するプロセッサによって提供される機能的な構成要素である。そして図1Aから図1Cの各構成例では、これらのプロセッサの機能的な構成要素を提供するプロセッサの場所が異なる。
図1Aに示される構成例では、学習部120が、車両20の外部にある、いわゆるサーバコンピュータである外部サーバ10が備えるプロセッサ及びメモリによって提供される。外部サーバ10は、本実施の形態における情報処理装置の例のひとつである。
この場合、学習部120は例えば車載ネットワーク210を流れるメッセージを訓練データとして通信網を経由して車両20から取得する。また学習部120は、この訓練データを用いて生成したIsolation Forestの学習辞書データを出力し、通信網を経由して車両20の異常判定部110に提供する。
また、車両20では、学習辞書データは例えば車載ネットワーク210に接続されるネットワーク監視用の監視ECUが備えるマイクロコントローラのフラッシュメモリ等の記憶装置に格納され、このマイクロコントローラのプロセッサによって異常判定部110が提供される。異常判定部110は、バスから取得したメッセージに対して、この記憶装置から学習辞書データを取得した学習辞書データを用いてメッセージの異常判定を実行する。
なお、このような構成では、車両20の出荷後に更新された学習辞書データを異常判定部110に提供することができる。
図1Bに示される構成例では、異常判定部110及び学習部120の両方が、車両20の外部にある外部サーバ10が備えるプロセッサ及びメモリによって提供される。このような外部サーバ10も、本実施の形態における情報処理装置の例のひとつである。
この場合も、学習部120は例えば車載ネットワーク210を流れるメッセージを訓練データとして通信網を経由して車両20から取得する。また学習部120は、この訓練データを用いて生成したIsolation Forestの学習辞書データを出力するが、出力先は外部サーバ10の外ではなく、例えば外部サーバ10が備えるハードディスクドライブ等の記憶装置(図示なし)に格納される。
この構成では、異常判定は車両20上ではなく、外部サーバ10で行われる。つまり、車載ネットワーク210を流れるメッセージは、通信網を介して外部サーバ10に送信される。外部サーバ10が受信したこのメッセージは、異常判定部110に入力される。異常判定部110は、記憶装置から学習辞書データを取得し、この学習辞書データを用いてメッセージの異常判定を実行し、その結果を通信網を介して車両20に送信する。
なお、このような構成では、外部サーバ10において異常判定部110が利用する学習辞書データは随時更新される。
図1Cに示される構成例では、異常判定部110及び学習部120の両方が、車両20の車載ネットワーク210に接続されて車載ネットワーク210を監視するECUである監視ECUが備えるマイクロコントローラによって提供される。監視ECU10は、本実施の形態における情報処理装置の例のひとつである。
この場合、学習部120は例えば車載ネットワーク210を流れるメッセージを訓練データとして直接取得して利用する。また学習部120は、この訓練データを用いて生成したIsolation Forestの学習辞書データを出力するが、出力先は車両20の外ではなく、車両20上にある記憶装置、例えば監視ECU内のフラッシュメモリ等の記憶装置に格納される。
この構成では、学習辞書の生成も異常判定も車両20上で行われる。例えば、監視ECUにおいて、学習部120はこの監視ECUが接続されている車載ネットワーク210を流れるメッセージのデータを取得し、訓練データとして用いて学習辞書を生成する。生成した学習辞書のデータは、監視ECUの記憶装置に格納される。また、監視ECUにおいては、さらに異常判定部110が記憶装置から学習辞書データを取得し、この学習辞書データを用いてメッセージの異常判定を実行する。
なお、このような構成でも、車両20上の異常判定部110が利用する学習辞書データの更新は可能である。
また、図1Aから図1Cに示される各構成は出荷後の車両20で固定的な構成ではなく、車両20上で動的に変更可能な構成であってもよい。例えば車両20と外部サーバ10との間の通信速度、監視ECUの計算機資源の使用率、車両20が電気自動車である場合の残電力量、又は運転者の操作に応じて、これらの構成間での切替が可能であってもよい。
[異常判定部及び学習部の構成]
構成の概要で記載した異常検知システム100A、100B、及び100Cそれぞれの構成要素である異常判定部110及び学習部120の構成について説明する。なお、以下では、異常検知システム100A、100B、及び100Cの一部のいずれかを特定せずに、又は全部を集合的に指して異常検知システム100とも呼ぶ。
図2は、異常検知システム100を構成する異常判定部110及び学習部120の構成例を示すブロック図である。
図2に示されるように、学習部120は、訓練データ受信部122及び学習辞書生成部124を有する。
訓練データ受信部122は、訓練データの入力を受ける。ここでいう訓練データとは、2個以上のM次元のベクトルであり、Mは2以上の整数である。各次元の値は、例えば最大8バイトであるCANメッセージのペイロードの先頭からの各バイトの値である。
学習部120は、訓練データ受信部122が入力を受けた訓練データを用いて学習辞書データを生成し、この学習辞書データを後述の異常判定部110の蓄積部112に向けて出力する。
図3は、M=2の場合における訓練データのデータ要素、及びこの訓練データを用いて生成された学習辞書を説明するための模式図である。図3では、データ要素は、M次元空間内に分布する点群であって各点は白抜きの丸で示され、学習辞書は、M次元空間における境界であって太い実線で示される。この境界のことを以下では判定境界ともいう。なお、M=2の場合、判定境界は境界線である。
さらに図2に示されるように、異常判定部110は、蓄積部112、判定対象データ受信部114、判定対象データ変換部116、及び判定実行部118を備える。
蓄積部112は、上述のとおり学習部120から出力された学習辞書データを保存する。また、後述する判定対象データの変換に用いられるデータも蓄積部112に保存される。
判定対象データ受信部114は、異常判定の対象であるデータ、つまりCANメッセージを車載ネットワーク210から取得する。
判定対象データ変換部116は、判定対象データ受信部114が受信したCANメッセージを、判定実行部118で処理するための形式に変換する。この変換では、例えばCANメッセージからの判定対象の部分の抽出、上記の判定対象データの変換用のデータを用いた正規化等が行われる。正規化については後述する。
判定実行部118は、蓄積部112に学習辞書データとして保存されている学習辞書に基づいて、判定対象データが正常であるか異常であるかの判定、つまり異常判定を実行する。
図4は、この異常判定を説明するための模式図である。図4では、判定対象データAと判定対象データBの2件のデータがその値に基づいてM次元空間内に示されている。
判定実行部118は、各データが学習辞書の判定境界の内側に位置するか外側に位置するかに基づいて正常か異常かを判定し、その結果を出力する。この例では、判定境界の内側に位置する判定対象データAは正常であると判定され、判定境界の外側に位置する判定対象データBは異常であると判定される。異常であるとの判定がなされた場合、異常判定部110及び学習部を含む監視ECUでは、例えばこの判定結果を入力として受ける他のプログラムが実行されてエラーメッセージをバスに出力したり、他のECUの機能の一部又は全部を制限又は他のECUを異常時対応の特別な動作モードに移行させるための命令を送信したりする。また、車両20の運転者に向けた異常発生の通知が、計器盤での表示又は音声によって発せられてもよい。その他、異常発生に関する情報がログに記録されてもよい。このログは、例えば車両20の整備士等が車載ネットワーク210に含まれる診断用ポートを通じて取得し利用する。
異常判定部110及び学習部120の各構成要素はIsolation Forestのアルゴリズムの一部を実行し、上記のように連携してIsolation Forestのアルゴリズムの全体を実行する。
[異常検知システムにおける処理の概要]
上記の構成要素を備える異常判定部110及び学習部120でのデータの流れを図5及び図6に表す。図5は、学習辞書を生成する学習部120でのデータの流れを示す図である。図6は、異常判定を行う異常判定部110でのデータの流れを示す図である。なお、これらの図はデータの流れを示すシーケンス図を基本として、各部における処理順序を示すフロー図も兼ねた体裁で表されている。
図5に示されるように、学習辞書を生成する学習部120では、まず訓練データ受信部122が入力を受けて訓練データが取得される(ステップS51)。訓練データの入力元は、学習辞書の生成の実行が車両20の出荷前であれば、例えばこの段階で人為的に指定又はあらかじめ設定された記憶装置内の場所である。また、学習辞書の生成の実行が車両20の出荷後であれば、例えば学習部120を含む監視ECUが接続されている車載ネットワーク210である。
次に学習部120では、入力された訓練データを、学習辞書生成部124が正規化し(ステップS52)、正規化済みの訓練データを用いてIsolation Forestの手法で学習辞書を生成する(ステップS53)。なお、正規化とは、入力された訓練データのM次元空間での元の分布範囲を、各訓練データの相対的な位置関係を保持してその分布範囲が同空間内の所定の領域内に渡るよう変換する計算処理である。
生成された学習辞書のデータは異常判定部110に渡され(ステップS54)、異常判定部110ではこの学習辞書データが蓄積部112に保存される(ステップS55)。また、学習辞書データと合わせて、上記の正規化の計算処理に用いられたデータも学習部120から異常判定部110に渡される。このデータには、変換に必要な特徴ベクトルの各成分の最大値及び最小値等が含まれる。異常判定部110では、このデータを用いて判定対象である未知データの正規化が実行される。
また、図6に示されるように、異常判定を行う異常判定部110では、まず判定対象データ受信部114が、車載ネットワーク210から異常判定の対象であるCANメッセージのデータが取得される(ステップS61)。
次に異常判定部110では、判定実行部118が、蓄積部112に保存された学習辞書データを読み込む(ステップS62)。また、判定対象データ変換部116は、訓練データの正規化に用いられた係数等のデータを蓄積部112から読み込み、このデータを用いて判定対象データ、つまり取得されたCANメッセージのデータを正規化する(ステップS63)。判定実行部118は、学習辞書データに基づいて、この正規化されたデータが正常か異常か判定する(ステップS64)。
以上が異常検知システム100において実行される、訓練データを用いての学習辞書の生成から、この学習辞書を用いての異常判定までの工程を含む異常検知の処理の概要である。この異常検知にIsolation Forestの手法を採用することで計算機資源への負荷が従来と比べて軽減され、より高速に処理を実行することができる。
しかしながら、Isolation Forestのアルゴリズムにおいて、学習の結果として得られた学習辞書の判定境界が正常な訓練データのM次元空間の分布に適切にフィットしない場合がある。図7は、このような不適切な判定境界の例である。このように、判定境界が正常なデータ要素の分布の外縁よりも内側にある場合、異常判定では実際は正常であるのに異常であると判定される誤判定がなされる。図7の例では、黒く塗りつぶされた丸で示されるデータ要素は異常データと判定されるデータ要素であり、この中には、実際には正常であるデータ要素が多く含まれる。以下では、このように正常であるデータを異常であるとする誤判定による誤検知のことを、過検知ともいう。
誤判定の原因となるこのような学習辞書は、例えば訓練データに含まれる異常データの量が不十分である場合に起こりえる。以下では、このような場合にも適切な学習辞書を得るために異常検知システム100で行われる処理について説明する。
[適切な学習辞書を得るための処理]
以下では、本実施の形態における適切な学習辞書を得るための処理方法の例を2つ説明する。
[第一処理方法]
図8は、上記で述べた適切な学習辞書を得るための訓練データの処理方法の一例である第一処理方法を示すフロー図である。
第一処理方法は、2個以上のM次元のベクトルからなるIsolation Forestの訓練データの入力を受けた後の学習部120において、学習辞書生成部124によって実行される。ただし以下では、学習辞書生成部124による処理であっても学習部120の処理として説明することがある。図9Aは、M=2の場合における、M次元空間、つまり2次元平面に分布する入力された訓練データの初期状態の例である。
まず学習部120は、本処理に用いるパラメータを読み込む(ステップS80)。パラメータの詳細については以降のステップで説明する。
次に学習部120は、入力された訓練データのデータ要素の個数を取得する(ステップS81)。
次に学習部120は、訓練データに付加するノイズ要素の個数をデータ要素の個数に基づいて決定する(ステップS82)。ノイズ要素もまた、M次元のベクトルである。ステップS80で取得されたパラメータは、ステップS82でのノイズ要素の個数の決定に用いられ、例えば0より大きく1より小さい実数である。そして訓練データに付加されるノイズ要素の個数は、ステップS81で取得されたデータ要素の個数にこのパラメータを乗じた値を整数に丸めた値が用いられる。つまり、ノイズ要素の個数は、訓練データのデータ要素の個数よりも小さくなるよう決定される。
次に学習部120は、訓練データを正規化する(ステップS83)。図9Bは、2次元平面に分布する正規化後の訓練データの例を示す。この例では、正規化前は図9Aに示されるように分布していた訓練データの分布範囲が、2次元平面における[0,1]の領域に渡るよう変換されている。このような領域は、本実施の形態における第一領域の例である。
次に学習部120は、ステップS82で決定された個数のノイズ要素を、第一領域より大きく、且つ第一領域を包含するM次元空間、つまりこの例では2次元平面の領域内に渡って付加する(ステップS84)。図9Cは、M次元空間に分布するノイズ要素の付加後の訓練データの例であり、ノイズ要素は2次元平面内に分布する破線の輪郭の丸で示される。この例では、ノイズ要素が[−0.5,1.5]の領域に渡って分布するよう付加されている。なお、このような領域は、本実施の形態における第二領域の例である。
図9Cに示されるように、ステップS84の工程の結果、元の訓練データのデータ要素よりも少ない個数のノイズ要素が、元の訓練データの分布範囲よりも広い領域に分布するよう付加される。したがって、ノイズ要素の分布密度は元の訓練データのデータ要素の分布密度に比べて低い。また、ノイズ要素は上記の領域において、全体としては一様分布となるよう付加される。
次に学習部120は、第二領域内にあるM次元のベクトルである要素、つまり、いずれも2次元のベクトルである訓練データのデータ要素及びノイズ要素をともに含むノイズ付加訓練データを生成する(ステップS85)。
最後に学習部120は、ステップS85で生成されたノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成し、この学習辞書データを出力する(ステップS86)。
なお、上記の各ステップのうち、ステップS82及びステップS84は第二ノイズ付加ステップ、ステップS85は生成ステップ、ステップS86は学習辞書データ出力ステップの本実施の形態における例である。
つまり学習部120は、従来のように正規化した訓練データをそのままは用いない。これに代えて学習部120は、M次元空間において、正規化された訓練データの分布範囲の周辺を含む領域にノイズを加えたものを用いて学習辞書を生成する。
このようなノイズ付加訓練データを用いて学習辞書を生成することで、訓練データに含まれる異常データが少ない場合にも、図7に示されるような多数の正常データが判定境界の外側に位置するような学習辞書を得ることが回避される。その結果、異常検知システム100では、過検知率を抑えた異常検知をすることができる。
なお、第一処理方法についての上記の説明では、元の訓練データのデータ要素よりも少ないノイズ要素の個数の決定を0より大きく1より小さい実数値を取るパラメータを用いることで行っていたが、ノイズ要素の個数の決定の方法はこれに限定されない。例えばノイズ要素の個数は、訓練データのデータ要素の個数から一定の数を引いたものであってもよい。また、訓練データの個数を複数の範囲に区切り、各範囲に対して予め定めた個数のノイズ要素が用いられてもよい。このような訓練データの個数とノイズ要素の個数との対応は、例えばデータテーブルに含めて情報処理装置のメモリに記憶される。
また、第一処理方法は、訓練データのデータ要素が2次元のベクトルである場合を例に説明したが、第一処理方法が基づく考え方はより高次元の空間に一般化して適用することができ、第一処理方法は3次元以上のベクトルである訓練データにも適用することができる。訓練データがM次元のベクトルであれば、上記の第一領域の範囲は[0,1]、第二領域の範囲は[−0.5,1.5]と読み替えて適用される。つまり、第一領域はM次元の空間における超立方体である第一超立方体で画定されるM次元空間の領域、第二領域はM次元の空間において第一超立方体より大きくこれを包含する超立方体である第二超立方体で画定されるM次元空間の領域である。
[第二処理方法]
図10は、上記で述べた適切な学習辞書を得るための訓練データの処理方法の他の一例である第二処理方法を示すフロー図である。
第二処理方法も、2個以上のM次元のベクトルからなるIsolation Forestの訓練データの入力を受けた後の学習部120において、学習辞書生成部124によって実行される。ただし以下では、学習辞書生成部124による処理であっても学習部120の処理として説明することがある。第二処理方法も、図9Aに示される訓練データの初期状態から始める場合を例に説明する。また、第一処理方法と共通の工程については説明を簡略化することがある。
まず学習部120は、本処理に用いるパラメータを読み込む(ステップS100)。パラメータの詳細については以降のステップで説明する。
次に学習部120は、入力された訓練データを正規化する(ステップS101)。この工程の内容は第一処理方法と共通であり、図9Bは、2次元平面に分布する正規化後の訓練データの例を示す。また、正規化前は図9Aに示されるように分布していた訓練データの分布範囲が、2次元平面における[0,1]の領域に渡るよう変換されている。このような領域は、本実施の形態における第一領域の例である。
次に学習部120は、第一領域より大きく、且つ第一領域を包含するM次元空間、つまりこの例では2次元平面の領域である第二領域を設定し、第二領域を、大きさの等しいM次元の超立方体である第三領域に分割する(ステップS102)。図11Aは、2次元平面における第二領域及び第三領域を説明するための図である。図11Aに示される例では、は[−0.5,1.5]の領域であり、第三領域は、第二領域を64個に分割して得られるサブ領域である。
ここで、ステップS100で取得されたパラメータは、ステップS102で第二領域を分割して得られる第三領域の個数の決定に用いられ、図11Aの例ではこのパラメータの値は8であり、分割数は8のM乗、つまりこの例では2乗で64個である。
次に学習部120は、第三領域のそれぞれが含む訓練データのデータ要素の個数S(Sは0以上の整数)を取得する(ステップS103)。なお、この時点では第一領域の外にある第三領域内には訓練データのデータ要素はないため、いずれの第三領域についてもS=0である。
次に学習部120は、各第三領域内にある訓練データのデータ要素についての閾値である第一閾値T(Tは自然数)を決定する(ステップS104)。第一閾値Tの決定には、例えばステップS100で取得されたパラメータが用いられる。ステップS102で用いられるパラメータと同じでもよいし、異なっていてもよい。異なる場合には、ステップS102で用いられるパラメータから算出されてもよい。
ステップS104で用いられるこのパラメータのより具体的な例を挙げると、例えば第一領域内にあるいずれかの第三領域に含まれる訓練データのデータ要素の個数を特定するものであってもよい。具体例としては、第三領域に含まれる訓練データのデータ要素の個数を大きさ順で並べた順位で特定の順位を示すものであってもよい。この場合、第一閾値には、この特定の順位の第三領域に含まれる訓練データのデータ要素の個数が用いられる。順位の示し方としては、最小値若しくは最大値から何番目であるか、又は平均値若しくは中央値を始点として大小いずれかの何番目であるかで示されてもよい。
ここから学習部120は、上記のS及びTを用いて各第三領域へのノイズ要素の付加の要否の判断、及び各第三領域に付加するノイズ要素の個数を決定してノイズ要素を付加する手順を実行する。
まず学習部120は、ノイズ要素の付加の要否に関する判断がなされていない第三領域があるか確認し(ステップS105)、ある場合(ステップS105でYES)には、その第三領域からひとつを選択し(ステップS106)、第三領域の訓練データのデータ要素の個数Sが第一閾値Tより小さいか否か判断する(ステップS107)。
その第三領域の訓練データのデータ要素の個数Sが第一閾値Tより小さい場合(ステップS107でYES)、その第三領域のデータ要素とノイズ要素との合計数がTになるよう、(T−S)個のノイズ要素を追加する(ステップS108)。
その第三領域の訓練データのデータ要素の個数Sが第一閾値T以上である場合(ステップS107でNO)、未処理の第三領域がさらにあるかを確認する(ステップS105)。
全ての第三領域について、ステップS105からステップS107又はS108までの処理がなされると(ステップS105でNO)、学習部120は第二領域内にあるデータ要素及びノイズ要素を含むノイズ付加訓練データを生成する(ステップS109)。図11Bは、ステップS105でNOの場合の2次元空間に分布する訓練データ及びノイズ要素の例を説明するための図である。図11Bにおいてもノイズ要素は破線の輪郭の丸で示されている。
図11Bの例は、第一閾値T=9である場合の例である。第一領域の左下隅にある第三領域は、訓練データのデータ要素の個数S=6であったため、T−S=3個のノイズ要素が付加されている。第一領域の左下隅にある第三領域は、訓練データのデータ要素の個数S=8であったため、T−S=1個のノイズ要素が付加されている。第一領域内の他の第三領域は、全てSが9以上であったため、ノイズ要素は付加されていない。ハッチングが施された他の第三領域は第一領域の外にあって訓練データのデータ要素を含まないため、それぞれ9個のノイズ要素が付加されている。なお、ノイズ要素は各第三領域において、その領域内で一様分布に従う乱数とする。
最後に学習部120は、ステップS109で生成されたノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成し、この学習辞書データを出力する(ステップS110)。
なお、上記の各ステップのうち、ステップS101は正規化ステップ、ステップS102は分割ステップ、ステップS103からS108までは第一ノイズ付加ステップ、ステップS109は生成ステップ、ステップS110は学習辞書データ出力ステップの本実施の形態における例である。
第二処理方法においても、学習部120は、従来のように正規化した訓練データをそのままは用いない。これに代えて学習部120は、M次元空間において、正規化された訓練データの分布範囲の周辺を含む領域にノイズを加えたものを用いて学習辞書を生成する。
このようなノイズ付加訓練データを用いて学習辞書を生成することで、訓練データに含まれる異常データが少ない場合にも、図7に示されるような多数の正常データが判定境界の外側に位置するような学習辞書を得ることが回避される。その結果、異常検知システム100では、過検知率を抑えた異常検知をすることができる。
また、第二処理方法では第一処理方法と異なり、訓練データが分布する第一領域内に付加するノイズ要素の個数が、より細分化した領域ごとの疎密に応じて決定される。したがって第二処理方法では、第一処理方法では第一領域内で生じ得るデータ要素とノイズ要素との過密な場所の発生が抑えられる。Isolation Forestでは、訓練データにおいてベクトルのデータが過密な場所は、判定境界の内側になりやすい。したがって、データ要素とノイズ要素の過密が生じやすいと、異常なデータであっても正常と判定される誤判定の可能性が高まる。異常であるデータを正常であるとする誤判定による誤検知については、以下では上記の過検知に対して検知漏れともいう。第二処理方法を実行して生成された学習辞書に基づいて未知データの異常判定が行われる異常検知システム100では、過検知の発生を抑えるとともに検知漏れの可能性も抑えた異常検知をすることができる。
なお、第二処理方法も第一処理方法と同じく、本処理方法が基づく考え方はより高次元の空間に一般化して適用することができ、第二処理方法は3次元以上のベクトルである訓練データにも適用することができる。訓練データがM次元のベクトルであれば、上記の第一領域の範囲は[0,1]、第二領域の範囲は[−0.5,1.5]と読み替えて適用される。つまり、第一領域はM次元の空間における超立方体である第一超立方体で画定されるM次元空間の領域、第二領域はM次元の空間において第一超立方体より大きくこれを包含する超立方体である第二超立方体で画定されるM次元空間の領域である。
[効果]
ここで、上記の第二処理方法によって訓練データにノイズを付加することによる効果の実例を示す。
図12A及び図12Bは、訓練データにノイズを付加せずに用いて生成した学習辞書の判定境界と、同じ訓練データに上記の処理方法でノイズを付加したものを用いて生成した学習辞書の判定境界とを示す図である。なお、図12Aの訓練データ1と図12Bの訓練データ2とは、同一の実車の車載ネットワークから取得された種類の異なるデータである。訓練データ1と訓練データ2とを比較すると、訓練データ1はデータ要素が分布の中心から周縁までほぼ一様に分布し、訓練データ2は周縁でデータ要素の分布が疎になる。訓練データ2は、訓練データ1よりも外れ値を含む可能性が高いともいえる。
図12A及び図12Bのいずれにおいても、丸は訓練データのデータ要素を示す。また、実線の囲みはノイズを付加しない訓練データを用いて生成した学習辞書の判定境界、破線の囲みはノイズを付加した訓練データを用いて生成した学習辞書の判定境界である。なお、ノイズ要素は各図中で示していない。
これらの図から分かるように、ノイズを付加した場合に得られた学習辞書の判定境界の内側には、ノイズを付加しない場合に得られた学習辞書の判定境界の内側の訓練データの全て、及びその外側の訓練データの多くが含まれている。
さらに発明者らは、ノイズを付加した場合に得られた学習辞書の方が適切であるかを確認するためにテスト用のデータを用いて各学習辞書での異常検知試験を行った。図12Cはこの異常検知試験での誤検知率を示す。各訓練データの左の柱は訓練データにノイズを付加しないで得た学習辞書での誤検知率、右の柱は訓練データにノイズを付加して得た学習辞書での誤検知率である。
図12Cからわかるように、ノイズを付加して得た学習辞書での誤検知率には、ノイズを付加しないで得た学習辞書に比べて大幅な改善が見られる。つまり、ノイズを付加した場合に得られた学習辞書の方がより適切であることがわかる。また、この改善は、外れ値を含む可能性が高く、ノイズを付加しないで得た学習辞書でも誤検知率がある程度低かった訓練データ2の場合でも見られる。時速数十km以上で走る車両での異常検知では、過検知であるか検知漏れであるかを問わず誤検知が低く抑えられることの重要性は高い。
一方で、CAN等の規格に準拠するネットワークから得られる訓練データとして、例えばアプリケーション層での異常に由来する異常データも含めて十分なゆらぎを持つデータを収集するのは、必ずしも容易ではない。未知の攻撃パターンで発生する異常データに近い訓練データとなれば、なおのこと用意するのは困難である。つまり、このような訓練データをIsolation Forestでの学習辞書の生成に利用していた従来は、異常検知での誤検知率を抑えるのが困難であった。
しかしながら、本実施の形態における処理方法を実行することで、正常データ要素を多く含む元の訓練データに、この訓練データからある程度外れたデータ要素が、元の訓練データより少量、低い密度でデータ空間内に付加される。この付加されるデータ要素を上記ではノイズ要素と呼んでいる。そしてこの訓練データを用いて生成した学習辞書を用いる異常検知システムでは、従来よりも抑えられた誤検知率での異常検知が可能である。
(実施の形態2)
実施の形態1で説明した第一処理方法と第二処理方法とは、それぞれを実現するために情報処理装置において実行されるプログラムのアルゴリズムの差であり、例えばあるプロセッサで読み込むプログラムを切り替えることで選択的に実行が可能である。
ただし第一処理方法と第二処理方法とでは、次のような差がある。
まず、ノイズ要素の付加に要する時間が、第二処理方法は第一処理方法よりも訓練データの量数への依存度が大きく、訓練データが増えるほど時間がかかる。つまり、第二処理方法の方が、プロセッサへの処理負荷が大きい。
その一方で、生成される学習辞書での検知の精度(誤検知率の低さ)は、上述のとおりいずれでも従来に比べて改善されるが、第二処理方法の方が優れる。
精度の高さという観点では、異常検知システムでは常に第二処理方法が実行されるのが望ましい。そして上記のような処理負荷の差は、図1Aの異常検知システム100A又は図1Bの異常検知システム100Bでは十分な計算機資源を投入しやすいため問題になりにくい。しかしながら、図1Cの異常検知システム100Cのような構成では、プロセッサの演算速度等計算機資源に制限がある場合が想定される。つまり、走行する車両においては、第二処理方法では必要な速度で学習辞書の生成又は更新ができない可能性がある。
また、異常検知システムでの検知の時間コスト及び精度に影響するものとしては、処理方法の違いだけでなく、各処理方法におけるパラメータがある。
第一処理方法では、ノイズ要素の個数の決定に用いられるパラメータは0より大きく1より小さい実数を値として取り得る。しかし、この範囲のどの値で異常検知により適した学習辞書が生成されるかをあらかじめ予想するのは困難であり、これを知るには、例えばパラメータの値を変えて生成した複数の学習辞書でテスト用のデータに対して行う異常検知の精度を比較する。ただし当然のことながら、このような最適なパラメータの探索のために比較をすれば、異常検知に用いる学習辞書が決定されるまでにより多くの時間がかかる。学習辞書の決定が遅ければ、異常検知は学習辞書の決定まで実行できないか、古い学習辞書を用いて実行されるために精度が落ちる。
第二処理方法では、第二領域を分割して得られる第三領域の個数の決定に用いられるパラメータ、及び第一閾値Tの決定に用いられるパラメータがある。これらの2つのパラメータのうち前者は、例えば、各次元で第一領域内で1回以上分割することで2個以上、また、第一領域の外では両側に第三領域が1個以上、計4個以上の第三領域が並ぶと想定して、Lは4以上の整数値を取り得る。後者は、例えば第二領域にある第三領域のいずれかの特定に用いられる値であれば、1以上で第二領域にある第三領域の個数以下の実数の値を取り得る。これらのパラメータについても、第一処理方法と同様のことがあてはまり、探索を行えばより精度のよい異常検知が可能な学習辞書が得られる可能性があるが、異常検知に用いる学習辞書が決定されるまでにより多くの時間がかかる。したがって、異常検知の実行が遅れるか、精度が犠牲となる。
発明者らはこれらの点を考慮し、必要な速さで、かつ極力高い精度での異常検知を異常検知システムに実行させるには、訓練データの処理方法の選択又はパラメータの探索の実行の有無に関する迅速な決定を異常検知システムでさせる手法に想到した。
以下、このような異常検知システムについて説明する。なお、本実施の形態の異常検知システムの構成は実施の形態1と共通でよいため異常検知システム100として説明を省略し、その動作について説明する。
[動作]
以下では、異常検知システム100において訓練データの処理方法の選択又はパラメータの探索の実行の有無に関する迅速な決定のための処理全体について説明し、その説明の中でパラメータの探索のための処理について説明する。
図13は、異常検知システム100において実行される、訓練データの処理方法の選択及び各処理方法でのパラメータの探索の実行の有無に関する決定のための処理方法の一例を示すフロー図である。
この処理方法は、2個以上のM次元のベクトルからなるIsolation Forestの訓練データの入力を受けた後の学習部120において、学習辞書生成部124によって実行される工程がある。ただし以下では、学習辞書生成部124による処理であっても学習部120の処理として説明する。また、異常判定部110の各構成要素によって実行される工程もあるが、以下では、異常判定部110による処理として説明することがある。
また、以下では、初期状態で訓練データ受信部122が訓練データの入力を既に受けていることを想定して説明する。
まず学習部120は、訓練データのデータ要素の個数Nを取得する(ステップS130)。
次に学習部120は、Nが所定の第二閾値以上であるか否かを判定する(ステップS131)。第二閾値は、訓練データの処理方法として第一処理方法と第二処理方法とのいずれを用いるかの判断のために用いられる閾値であり、例えば学習部120を実現するプロセッサの演算能力等の利用可能な計算機資源によって決定されて情報処理装置のメモリに格納されている。このように所定の閾値を用いることで、迅速な判断が可能である。
Nが第二閾値以上であると判定した場合、つまり訓練データのデータ要素の個数が多い場合、学習部120は、より短時間で完了できる第一処理方法を選択する(ステップS132)。
Nが第二閾値以上でないと判定した場合、つまり訓練データのデータ要素の個数が少ない場合、学習部120は、より精度の高い異常検知が可能な学習辞書が得られる第二処理方法を選択する(ステップS133)。
次に学習部120は、Nが所定の第三閾値以上であるか否かを判定する(ステップS134)。第三閾値は、訓練データの各処理方法の実行時にパラメータの探索を実行するか否かの判断のために用いられる閾値である。第三閾値も第二閾値と同様に、例えば学習部120を実現するプロセッサの演算能力等の利用可能な計算機資源によって決定され、情報処理装置のメモリに格納されている。第二閾値とは関連があってもよいし、相互に独立した値でもよい。このように所定の閾値を用いることで、迅速な判断が可能である。
Nが第三閾値以上であると判定した場合、つまり訓練データのデータ要素の個数が多い場合、学習部120は、より短時間で完了できるようパラメータ探索は実行しないと決定する(ステップS135)。
Nが第三閾値以上でないと判定した場合、つまり訓練データのデータ要素の個数が少ない場合、学習部120は、より精度の高い異常検知が可能な学習辞書を得るためのパラメータ探索を実行する(ステップS136)。
ステップS132及びステップS135を経て学習辞書データの生成及び出力(ステップS137)をする場合、学習部120は、図8のフロー図に示される第一処理方法を実行する。
ステップS133及びステップS135を経て学習辞書データの生成及び出力(ステップS137)をする場合、学習部120は、図10のフロー図に示される第二処理方法を実行する。
ステップS132及びステップS136を経て学習辞書データの生成及び出力(ステップS137)をする場合、学習部120は、図14のフロー図に示される第一処理方法を実行する。図14は、異常検知システム100において実行される、パラメータ探索を含む第一処理方法のフロー図である。図14のフロー図では、図8のフロー図に示される第一処理方法と共通の工程は共通の参照符号で示し、詳細な説明は省略する。
図14のフロー図に示される第一処理方法では、学習部120は、S82、S84〜S86の工程のセットを、パラメータの値を入れ替えて複数回実行する。その結果として生成され出力される複数の学習辞書データは、異常判定部110の蓄積部112に保存される。また、学習部120からは、ステップS83で正規化に用いられたデータも異常判定部110に提供されて蓄積部112に保存される。
異常判定部110は、Isolation Forestのテスト用データを取得している。このテスト用データは、例えば予め異常判定部110に入力され、蓄積部112に保存されており、ステップS131でNが第二閾値以上でないと判定された場合に異常判定部110がこのテスト用データを蓄積部112から読み込んで取得する。そして、異常判定部110は、ステップS83で正規化に用いられたデータを用いてテスト用データを正規化し、各学習辞書データを用いてテスト用データに対する異常判定を実行する(ステップS140)。
最後に学習部120は、ステップS140でなされた各学習辞書データを用いた異常判定の評価をし、この評価結果に基づいて最良の学習辞書データを実際の異常検知に用いられる学習辞書データとして選択する(ステップS141)。この評価には、例えば再現率、F値等の既知の評価尺度を利用することができる。なお、ステップS141は異常判定部110によって実施されてもよい。
なお、上記の各ステップのうち、ステップS82及びステップS84は第二ノイズ付加ステップ、ステップS85は生成ステップ、ステップS86は学習辞書データ出力ステップの本実施の形態における例である。また、ステップS131は第一判定ステップ、ステップS134は第二判定ステップの本実施の形態における例である。また、ステップS140及びS141はテスト用データ取得ステップ、評価ステップ、及び学習辞書データ選択ステップに対応する本実施の形態における例である。
ステップS132及びステップS135を経て第一処理方法が実行される場合との違いのひとつは、ステップS82、S84〜S86の工程のセットが異常検知に用いられる学習辞書データが出力されるまでに1回のみ実行されるのか複数回実行されるかという点にある。また、テスト用データを用いて複数の学習辞書データが評価され、この評価の結果に基づいて最良の学習辞書データが異常検知に用いられる学習辞書データとして選択される点も異なる。
ステップS133及びステップS136を経て学習辞書データの生成及び出力(ステップS137)をする場合、学習部120は、図15のフロー図に示される第二処理方法を実行する。図15は、異常検知システム100において実行される、パラメータ探索を含む第二処理方法のフロー図である。図15のフロー図では、図10のフロー図に示される第二処理方法と共通の工程は共通の参照符号で示し、詳細な説明は省略する。
図15のフロー図に示される第二処理方法では、学習部120は、ステップS102〜S110の工程のセットを、2種類のパラメータの値の組み合わせを入れ替えて複数回実行する。その結果として生成され出力される複数の学習辞書データは、異常判定部110の蓄積部112に保存される。また、学習部120からは、ステップS101で正規化に用いられたデータも異常判定部110に提供されて蓄積部112に保存される。
ステップS150及びS151の内容は、それぞれステップS140及びS141と共通である。
なお、上記の各ステップのうち、ステップS102は分割ステップ、ステップS103からS108まで第一ノイズ付加ステップ、ステップS109は生成ステップ、ステップS110は学習辞書データ出力ステップの本実施の形態における例である。また、ステップS131は第一判定ステップ、ステップS134は第二判定ステップの本実施の形態における例である。また、ステップS150及びS151はテスト用データ取得ステップ、評価ステップ、及び学習辞書データ選択ステップに対応する本実施の形態における例である。
ステップS133及びステップS135を経て第二処理方法が実行される場合との違いのひとつは、ステップS102〜S110の工程のセットが異常検知に用いられる学習辞書データが出力されるまでに1回のみ実行されるのか複数回実行されるかという点にある。また、テスト用データを用いて複数の学習辞書データが評価され、この評価の結果に基づいて最良の学習辞書データが異常検知に用いられる学習辞書データとして選択される点も異なる。
以上に説明したとおり、図13に示されるフロー図ではノイズ付加の処理方法が2通り、各処理方法についてのパラメータ探索の実行の有無で2通りある。つまり、異常検知に用いられる学習辞書データが決定して異常検知の実行が可能になるまで4通りの処理パターンがある。これらの処理パターンのうち、時間コストがもっとも大きいのは、パラメータ探索を含めて第二処理方法が実行されるパターンである。次いで時間コストが大きいのは、パラメータ探索を含めて第一処理方法が実行される場合である。これらの2パターンに比べて残る2パターンの時間コストは大幅に小さい。上記では第二閾値と第三閾値とは独立の値でもよいとしているが、この時間コストの大小関係を考慮して決定されてもよい。
また、ステップS131での判断の結果に応じて、つまりノイズの付加に用いられるのが第一処理方法であるか第二処理方法であるかに応じて、ステップS134で用いられる閾値が切り替えられてもよい。例えば第二処理方法が用いられる場合には、第三閾値が用いられ、第一処理方法が用いられる場合には、第三閾値に代えて別の所定の閾値である第四閾値が用いられてもよい。このように第四閾値が用いられる場合のステップS134は、本実施の形態における第三判定ステップの例である。
また、図13のフロー図では、ノイズ付加の処理方法の判断と、各処理方法についてのパラメータ探索の実行の有無の判断との2つの判断がなされているが、時間コストの調整にはこれらの両方が必須ではない。これらの判断のうち一方のみで時間コストの調整が図られてもよい。
また、図13のフロー図では、パラメータ探索の実行について用意されている選択肢は実行するかしないかの2つであるが、例えば訓練データのデータ要素の個数に応じて、探索のために入れ替えるパラメータの個数が段階的に変更されてもよい。つまり、訓練データのデータ要素の個数が多いほど、入れ替えられるパラメータの個数が減らされてもよい。この場合、パラメータの個数はデータ要素の個数から算出される値であってもよいし、データ要素の所定範囲ごとにあらかじめ決められた値でもよい。つまり、訓練データのデータ要素の個数とパラメータの個数との間に負の相関があればよい。これにより、訓練データのデータ要素が多い場合には、学習辞書データの決定までに要する時間が長くなり過ぎないように演算処理の負荷の増加が抑えられる。
また、図13のフロー図では、訓練データのデータ要素の個数Nの第二閾値との比較の結果に応じて、訓練データの処理のために第一処理方法を実行するか第二処理方法を実行するかが選択されるが、これに限定されない。例えば、訓練データの処理を実行しないという選択肢がさらにあってもよい。例えば、情報処理装置において他の処理によるプロセッサへの負荷が大きいため、異常検知には現行の学習辞書を継続して利用し、更新のための新たな学習辞書の生成を延期するという場合にこのような判断がされてもよい。また、選択肢は、第一処理方法の実行又は第二処理方法の実行の一方と、訓練データの処理を実行しないという2つの選択肢であってもよい。
(他の実施の形態)
以上のように、本発明に係る技術の例示として実施の形態1、2を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
上記実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。このRAMには、コンピュータプログラムが記録されている。また、このマイクロプロセッサが、RAMに記録されているコンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又は全部を含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブルプロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。このICカード又はモジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。また、このICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行器が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態の情報処理装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けさせるデータ要素取得ステップと、訓練データをM次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、第一領域より大きく第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の超立方体である第三領域に分割させる分割ステップと、第三領域のそれぞれが含むデータ要素の個数S(Sは0以上の整数)を取得させ、第三領域のうち、第一閾値T(Tは自然数)より少ない個数のデータ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、データ要素及びノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む情報処理方法を実行させる。
また、本発明は上記の実施の形態に記載される、訓練データを用いて学習辞書データを生成し、この学習辞書データを異常判定を実行する異常判定装置に提供する情報処理装置として実現可能である。また、この情報処理装置及び異常判定装置を備える異常検知システムとしても実現可能である。この異常判定装置は、例えば図1A又は図1Cに示される構成の異常検知システム内であれば、車載ネットワーク210に接続される異常判定部を実現する監視ECUである。また、図1BCに示される構成の異常検知システム内であれば、異常判定部を実現する外部サーバ10である。いずれの場合も、情報処理装置から出力された学習辞書データを記憶するメモリ及びプロセッサを備えネットワークに接続される。このネットワークは、典型的には上述のとおり車載のCANネットワークであるが、これに限定されない。
例えば、CAN−FD(CAN with Flexible Data rate)、FlexRay、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などのネットワークであってもよい。あるいはこれらのネットワークをサブネットワークとして、CANネットワークと組み合わせた車載ネットワークであってもよい。
また、上記実施の形態において、各構成要素は、回路でもよい。複数の構成要素が、全体として1つの回路を構成してもよいし、それぞれ別々の回路を構成してもよい。また、回路は、それぞれ、汎用的な回路でもよいし、専用の回路でもよい。
以上、一つ又は複数の態様に係る情報処理装置などについて、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、及び異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。
例えば、上記実施の形態において、特定の構成要素が実行する処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
本発明は、車載ネットワークを含む車載ネットワークシステムに利用可能である。
10 外部サーバ
20 車両
100、100A、100B、100C 異常検知システム
110 異常判定部
112 蓄積部
114 判定対象データ受信部
116 判定対象データ変換部
118 判定実行部
120 学習部
122 訓練データ受信部
124 学習辞書生成部
210 車載ネットワーク

Claims (13)

  1. プロセッサを備える情報処理装置であって、
    前記プロセッサは、
    Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けるデータ要素取得ステップと、
    前記訓練データをM次元の第一領域に渡って分布させるよう正規化する正規化ステップと、
    前記第一領域より大きく前記第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の超立方体である第三領域に分割する分割ステップと、
    前記第三領域のそれぞれが含む前記データ要素の個数S(Sは0以上の整数)を取得し、前記第三領域のうち、第一閾値T(Tは自然数)より少ない個数の前記データ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加する第一ノイズ付加ステップと、
    前記データ要素及び前記ノイズ要素を含むノイズ付加訓練データを生成する生成ステップと、
    前記ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力する学習辞書データ出力ステップとを実行する
    情報処理装置。
  2. 前記プロセッサは、
    Nが所定の第二閾値以上であるか否かを判定する第一判定ステップを実行し、
    前記第一判定ステップにおいてNが前記第二閾値以上ではないと判定した場合、前記分割ステップ及び前記第一ノイズ付加ステップを実行してから前記生成ステップ及び前記学習辞書データ出力ステップを実行する
    請求項1に記載の情報処理装置。
  3. 前記プロセッサは、
    前記第一判定ステップにおいてNが前記第二閾値以上であると判定した場合、K個(KはNより小さい自然数)のM次元のベクトルであるノイズ要素を前記第二領域内に一様分布で付加する第二ノイズ付加ステップを実行してから前記生成ステップ及び前記学習辞書データ出力ステップを実行する
    請求項2に記載の情報処理装置。
  4. 前記プロセッサはさらに、
    前記第一判定ステップにおいてNが前記第二閾値以上でないと判定した場合、Isolation Forestのテスト用データの入力を受けるテスト用データ取得ステップと、Nが所定の第三閾値以上であるか否かを判定する第二判定ステップとを実行し、
    前記第二判定ステップにおいてNが前記第三閾値以上でないと判定した場合、前記分割ステップ、前記第一ノイズ付加ステップ、前記生成ステップ、及び前記学習辞書データ出力ステップのセットを、前記分割ステップで値の異なるLを用いて複数回実行して複数の前記学習辞書データを出力し、さらに、前記複数の学習辞書データのそれぞれを用いて前記テスト用データに対する異常検知を実行し、前記異常検知の結果に基づいて前記複数の学習辞書データのそれぞれを評価する評価ステップと、前記評価ステップの結果に基づいて前記複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、
    前記第二判定ステップにおいてNが前記第三閾値以上であると判定した場合、前記分割ステップで所定の値であるLを用いて前記セットを1回実行する
    請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記プロセッサは、前記第二判定ステップにおいてNが前記第三閾値以上でないと判定した場合、Nの値と負の相関を有するようLの前記異なる値の個数を決定する
    請求項4に記載の情報処理装置。
  6. 前記プロセッサは、前記第一ノイズ付加ステップにおいて、前記第一領域内にある前記第三領域のそれぞれに含まれる前記データ要素の個数の中央値より小さい個数のいずれかを前記第一閾値Tの値として決定する
    請求項1から5のいずれか1項に記載の情報処理装置。
  7. 前記プロセッサは、
    前記第一判定ステップにおいてNが前記第二閾値以上であると判定した場合、Isolation Forestのテスト用データの入力を受けるテスト用データ取得ステップと、Nが所定の第四閾値以上であるか否かを判定する第三判定ステップとを実行し、
    前記第三判定ステップにおいてNが前記第四閾値以上でないと判定した場合、前記第二ノイズ付加ステップ、前記生成ステップ、及び前記学習辞書データ出力ステップのセットを、前記第二ノイズ付加ステップで値の異なるKを用いて複数回実行して複数の前記学習辞書データを出力し、さらに、前記複数の学習辞書データのそれぞれを用いて前記テスト用データに対する異常検知を実行して前記複数の学習辞書データのそれぞれを評価する評価ステップと、前記評価ステップの結果に基づいて前記複数の学習辞書データから最良の学習辞書データを選択する学習辞書データ選択ステップとを実行し、
    前記第三判定ステップにおいてNが前記第四閾値以上であると判定した場合、前記第二ノイズ付加ステップで所定の値であるKを用いて前記セットを1回実行する
    請求項1から3のいずれか1項に記載の情報処理装置。
  8. 前記プロセッサは、前記第三判定ステップにおいてNが前記第四閾値以上でないと判定した場合、Nの値と負の相関を有するようKの前記異なる値の個数を決定する
    請求項7に記載の情報処理装置。
  9. 前記第一領域をM次元の空間における[0,1]の超立方体で画定される領域とすると、
    前記第二領域は、前記空間において[−0.5,1.5]の超立方体で画定される領域である
    請求項1から8のいずれか1項に記載の情報処理装置。
  10. 請求項1から9のいずれか1項に記載の情報処理装置と、
    前記情報処理装置から出力された学習辞書データを記憶するメモリ及びプロセッサを備え、ネットワークに接続される異常判定装置であって、前記プロセッサは、前記ネットワークを流れるデータを取得し、取得された前記データの異常判定を前記メモリに記憶されている学習辞書データに基づいて実行する異常判定装置とを備える
    異常検知システム。
  11. 前記ネットワークは車載のControlled Area Networkネットワークである
    請求項10に記載の異常検知システム。
  12. プロセッサを備える情報処理装置を用いて実行される情報処理方法であって、
    前記プロセッサに、
    Isolation Forestの訓練データとして用いられるN個(Nは2以上の整数)のM次元のベクトル(Mは2以上の整数)であるデータ要素の入力を受けさせるデータ要素取得ステップと、
    前記訓練データをM次元の第一領域に渡って分布させるよう正規化させる正規化ステップと、
    前記第一領域より大きく前記第一領域を包含するM次元の第二領域を、大きさの等しいL個(Lは4以上の整数)のM次元の超立方体である第三領域に分割させる分割ステップと、
    前記第三領域のそれぞれが含む前記データ要素の個数S(Sは0以上の整数)を取得させ、前記第三領域のうち、第一閾値T(Tは自然数)より少ない個数の前記データ要素を含む第三領域のそれぞれに、(T−S)個のM次元のベクトルであるノイズ要素を一様分布で付加させる第一ノイズ付加ステップと、
    前記データ要素及び前記ノイズ要素を含むノイズ付加訓練データを生成させる生成ステップと、
    前記ノイズ付加訓練データを用いてIsolation Forestの学習辞書データを生成して出力させる学習辞書データ出力ステップとを含む
    情報処理方法。
  13. コンピュータが備えるプロセッサに、請求項12に記載の情報処理方法を実行させるプログラム。
JP2017207085A 2016-12-06 2017-10-26 情報処理装置、情報処理方法及びプログラム Active JP6782679B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2017/040727 WO2018105320A1 (ja) 2016-12-06 2017-11-13 情報処理装置、情報処理方法及びプログラム
EP17877549.0A EP3553712B1 (en) 2016-12-06 2017-11-13 Information processing device, information processing method, and program
CN201780022736.0A CN109074519B (zh) 2016-12-06 2017-11-13 信息处理装置、信息处理方法以及程序
US16/255,877 US10601852B2 (en) 2016-12-06 2019-01-24 Information processing device, information processing method, and recording medium storing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662430570P 2016-12-06 2016-12-06
US62/430,570 2016-12-06

Publications (2)

Publication Number Publication Date
JP2018092613A JP2018092613A (ja) 2018-06-14
JP6782679B2 true JP6782679B2 (ja) 2020-11-11

Family

ID=62566256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017207085A Active JP6782679B2 (ja) 2016-12-06 2017-10-26 情報処理装置、情報処理方法及びプログラム

Country Status (4)

Country Link
US (1) US10601852B2 (ja)
EP (1) EP3553712B1 (ja)
JP (1) JP6782679B2 (ja)
CN (1) CN109074519B (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6782679B2 (ja) * 2016-12-06 2020-11-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理装置、情報処理方法及びプログラム
JP6956624B2 (ja) 2017-03-13 2021-11-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理方法、情報処理システム、及びプログラム
JP6823523B2 (ja) * 2017-03-31 2021-02-03 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム
US11610441B1 (en) * 2017-05-23 2023-03-21 State Farm Mutual Automobile Insurance Company Detecting and mitigating local individual driver anomalous behavior
JP6984230B2 (ja) * 2017-08-23 2021-12-17 富士フイルムビジネスイノベーション株式会社 情報処理装置、画像形成装置および情報提供システム
CN108229156A (zh) * 2017-12-28 2018-06-29 阿里巴巴集团控股有限公司 Url攻击检测方法、装置以及电子设备
US11934520B2 (en) * 2018-03-28 2024-03-19 Nvidia Corporation Detecting data anomalies on a data interface using machine learning
CN109765332A (zh) * 2018-12-05 2019-05-17 国网辽宁省电力有限公司信息通信分公司 基于隔离森林的变压器异常值实时检测和故障诊断方法
JP7119978B2 (ja) * 2018-12-20 2022-08-17 オムロン株式会社 制御装置およびプログラム
US11700270B2 (en) * 2019-02-19 2023-07-11 The Aerospace Corporation Systems and methods for detecting a communication anomaly
WO2020170425A1 (ja) 2019-02-22 2020-08-27 日本電気株式会社 異常検知装置、異常検知方法、及びコンピュータ可読媒体
US11928006B2 (en) * 2019-03-04 2024-03-12 Saferide Technologies Ltd. System and method for labeling bits of controller area network (CAN) messages
CN110275508B (zh) * 2019-05-08 2021-09-28 西安电子科技大学 车载can总线网络异常检测方法及***
WO2020250319A1 (ja) * 2019-06-11 2020-12-17 日本電信電話株式会社 制御装置、制御方法及び制御プログラム
US11790251B1 (en) * 2019-10-23 2023-10-17 Architecture Technology Corporation Systems and methods for semantically detecting synthetic driven conversations in electronic media messages
US10872479B1 (en) * 2019-11-04 2020-12-22 Ford Global Technologies, Llc Secure log capture
CN110991552B (zh) * 2019-12-12 2021-03-12 支付宝(杭州)信息技术有限公司 基于联邦学习的孤立森林模型构建和预测方法和装置
CN111049839B (zh) * 2019-12-16 2021-12-31 北京天融信网络安全技术有限公司 一种异常检测方法、装置、存储介质及电子设备
CN112990246B (zh) * 2019-12-17 2022-09-09 杭州海康威视数字技术股份有限公司 孤立树模型建立的方法和装置
JP7247905B2 (ja) * 2020-01-22 2023-03-29 トヨタ自動車株式会社 第1中継装置、第2中継装置、第1中継方法、第2中継方法、第1中継プログラム、第2中継プログラム、及び中継システム
EP3866087A1 (en) * 2020-02-12 2021-08-18 KBC Groep NV Method, use thereoff, computer program product and system for fraud detection
JP7347251B2 (ja) * 2020-02-14 2023-09-20 トヨタ自動車株式会社 写像の学習方法
CN114019940A (zh) * 2020-03-02 2022-02-08 阿波罗智联(北京)科技有限公司 用于检测异常的方法和装置
CN111740856B (zh) * 2020-05-07 2023-04-28 北京直真科技股份有限公司 基于异常检测算法的网络通信设备告警采集异常预警方法
CN111726774B (zh) 2020-06-28 2023-09-05 阿波罗智联(北京)科技有限公司 防御攻击的方法、装置、设备及存储介质
FR3112634B1 (fr) * 2020-07-16 2023-04-28 Suez Groupe Procédé de détection d’anomalies
CN111931834B (zh) * 2020-07-31 2023-05-02 广东工业大学 基于孤立森林算法的铝型材挤压过程流数据异常检测方法、设备及存储介质
CN112505549B (zh) * 2020-11-26 2021-09-03 西安电子科技大学 基于孤立森林算法的新能源汽车电池异常检测方法
US11017322B1 (en) * 2021-01-28 2021-05-25 Alipay Labs (singapore) Pte. Ltd. Method and system for federated learning
DE102021112328A1 (de) * 2021-05-11 2022-11-17 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Erkennen einer Manipulation einer Nachricht eines Bussystems eines Fahrzeugs durch ein Steuergerät eines Fahrzeugs, computerlesbares Medium, System, und Fahrzeug
US11842367B1 (en) * 2021-07-01 2023-12-12 Alphonso Inc. Apparatus and method for identifying candidate brand names for an ad clip of a query video advertisement using OCR data
CN113672675B (zh) * 2021-08-09 2023-12-15 北京字跳网络技术有限公司 数据检测方法、装置和电子设备
CN115984992A (zh) * 2022-12-22 2023-04-18 云控智行(上海)汽车科技有限公司 一种车辆运行数据的检测方法、装置及设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1705468A2 (en) * 2005-03-15 2006-09-27 Omron Corporation Abnormality detection device and method having a judgment model
CN101980480B (zh) * 2010-11-04 2012-12-05 西安电子科技大学 半监督异常入侵检测方法
JP5874292B2 (ja) * 2011-10-12 2016-03-02 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
EP2951722B1 (en) * 2013-01-31 2018-05-16 Universite De Montpellier Process for identifying rare events
JP2015026252A (ja) 2013-07-26 2015-02-05 株式会社豊田中央研究所 異常検知装置及びプログラム
US9412024B2 (en) * 2013-09-13 2016-08-09 Interra Systems, Inc. Visual descriptors based video quality assessment using outlier model
JP6361175B2 (ja) 2014-03-06 2018-07-25 株式会社豊田中央研究所 異常診断装置及びプログラム
US9779361B2 (en) * 2014-06-05 2017-10-03 Mitsubishi Electric Research Laboratories, Inc. Method for learning exemplars for anomaly detection
CN104063710B (zh) * 2014-06-13 2017-08-11 武汉理工大学 基于支持向量机模型的实测光谱曲线中异常光谱剔除方法
JP6632193B2 (ja) * 2015-01-16 2020-01-22 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP6193287B2 (ja) * 2015-03-30 2017-09-06 有限責任監査法人トーマツ 異常検出装置、異常検出方法及びネットワーク異常検出システム
JP6782679B2 (ja) * 2016-12-06 2020-11-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理装置、情報処理方法及びプログラム
US10452841B1 (en) * 2017-05-01 2019-10-22 Symantec Corporation Modeling malicious behavior that occurs in the absence of users
US10089467B1 (en) * 2017-05-23 2018-10-02 Malwarebytes Inc. Static anomaly-based detection of malware files
US11067409B2 (en) * 2017-07-14 2021-07-20 Allstate Insurance Company Distributed data processing systems for processing remotely captured sensor data
US20190087737A1 (en) * 2017-09-18 2019-03-21 Callidus Software, Inc. Anomaly detection and automated analysis in systems based on fully masked weighted directed
JP2019179395A (ja) * 2018-03-30 2019-10-17 オムロン株式会社 異常検知システム、サポート装置および異常検知方法

Also Published As

Publication number Publication date
US10601852B2 (en) 2020-03-24
EP3553712A4 (en) 2019-11-27
JP2018092613A (ja) 2018-06-14
US20190173902A1 (en) 2019-06-06
CN109074519B (zh) 2023-03-14
EP3553712A1 (en) 2019-10-16
CN109074519A (zh) 2018-12-21
EP3553712B1 (en) 2021-03-03

Similar Documents

Publication Publication Date Title
JP6782679B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2018105320A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP7492622B2 (ja) 車両異常検知サーバ、車両異常検知システム及び車両異常検知方法
US10437992B2 (en) Anomaly detection for vehicular networks for intrusion and malfunction detection
CA2995864A1 (en) Multi-modal, multi-disciplinary feature discovery to detect cyber threats in electric power grid
US20220156367A1 (en) System and method for detection of anomalous controller area network (can) messages
EP4075726A1 (en) Unified multi-agent system for abnormality detection and isolation
CN109086291B (zh) 一种基于MapReduce的并行异常检测方法及***
Zhang et al. Dual generative adversarial networks based unknown encryption ransomware attack detection
CN113328985A (zh) 一种被动物联网设备识别方法、***、介质及设备
JP6939898B2 (ja) ビットアサイン推定装置、ビットアサイン推定方法、プログラム
JP2021179935A (ja) 車両用異常検出装置及び車両用異常検出方法
US11474889B2 (en) Log transmission controller
EP3896625A1 (en) An adaptive filter based learning model for time series sensor signal classification on edge devices
CN115865486B (zh) 基于多层感知卷积神经网络的网络入侵检测方法及***
US20140068339A1 (en) Systems and Methods for State Based Test Case Generation for Software Validation
Yu et al. AdaGUM: An Adaptive Graph Updating Model‐Based Anomaly Detection Method for Edge Computing Environment
CN114661499A (zh) 故障的预测方法及装置
US20150113645A1 (en) System and method for operating point and box enumeration for interval bayesian detection
JP2024086626A (ja) インクリメンタル重心クラスタリングのための方法およびシステム
EP4386637A1 (en) Method and system for incremental centroid clustering
Vaghela et al. Digital Evidence Collection and Preservation in Computer Network Forensics
CN116432016A (zh) 一种规则优化的方法及装置
CN117176554A (zh) 电力通信网络中问题节点定位方法及设备
CN118250048A (en) Building data information security access control method, device, equipment and medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201020

R150 Certificate of patent or registration of utility model

Ref document number: 6782679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150