(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022168520
(43)【公開日】2022-11-08
(54)【発明の名称】異常検知装置、異常検知方法、異常検知プログラム、学習装置、学習方法及び学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20221031BHJP
【FI】
G06N20/00 130
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021074041
(22)【出願日】2021-04-26
(71)【出願人】
【識別番号】306020818
【氏名又は名称】トヨタテクニカルディベロップメント株式会社
(71)【出願人】
【識別番号】304000836
【氏名又は名称】学校法人 名古屋電気学園
(74)【代理人】
【識別番号】110002516
【氏名又は名称】特許業務法人白坂
(72)【発明者】
【氏名】岡田 幸泰
(72)【発明者】
【氏名】畑 幸二
(72)【発明者】
【氏名】内藤 克浩
(57)【要約】
【課題】自動で教師データを生成して学習モデルを生成し、推定処理に役立てることができる学習装置、学習方法及び学習プログラムを提供する。
【解決手段】学習装置は、データライン上のデータパケットを取得する取得部と、取得部が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別部と、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換部と、計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習部と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データライン上のデータパケットを取得する取得部と、
前記取得部が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別部と、
複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換部と、
前記計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習部と、
を備える学習装置。
【請求項2】
前記分別部は、前記計測データ群を含むデータパケットに先だって、データパケットを送信する際の計測データ群の配列を定めた計測条件データに基づいて、前記分別ルールを生成する
ことを特徴とする請求項1に記載の学習装置。
【請求項3】
前記データラインは、検査対象に設けられたセンサ群と、前記検査対象の情報を収集する情報処理装置と、を接続するデータラインであり、
前記取得部は、前記検査対象が正常に動作していることが確定しているときに前記データライン上を流れるデータパケットを取得し、
前記学習部は、前記検査対象が正常に動作していることが確定しているときに前記取得部が取得した複数のデータパケットそれぞれから分別された計測データの計測データ値に基づいて生成された時系列データを学習して前記学習モデルを生成する
ことを特徴とする請求項1又は2に記載の学習装置。
【請求項4】
前記分別ルールは、前記データパケットの種別と、各種別に応じたペイロードにおける計測データ群の配列が定められた情報であり、
前記データパケットは、ヘッダに、当該データパケットの種別を示す情報を含み、
前記分別部は、前記データパケットに含まれるデータパケットの種別を示す情報に対応する分別ルールにしたがって、前記データパケットに含まれる計測データ群を分別する
ことを特徴とする請求項1~3のいずれか一項に記載の学習装置。
【請求項5】
前記学習装置は、前記学習部が生成した前記学習モデルを記憶する記憶部を備えることを特徴とする請求項1~4のいずれか一項に記載の学習装置。
【請求項6】
前記学習装置は、さらに、
前記取得部が取得した複数のデータパケット群に基づいて、前記分別部が分別を行い、前記変換部が変換した推定用の各時系列データと、前記学習モデルとを用いて、前記推定用の時系列データに異常がある可能性を推定する推定部を備える
ことを特徴とする請求項1~5のいずれか一項に記載の学習装置。
【請求項7】
前記推定部は、前記推定用の各時系列データそれぞれについて、前記学習モデルに含まれる各計測データの時系列データからの類似度に基づいて、計測データに異常がある可能性を推定する
ことを特徴とする請求項6に記載の学習装置。
【請求項8】
前記変換部は、所定数の計測データ値ごとに、時系列データに変換する
ことを特徴とする請求項1~7のいずれか一項に記載の学習装置。
【請求項9】
コンピュータが、
データライン上のデータパケットを取得する取得ステップと、
前記取得ステップが取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別ステップと、
複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換ステップと、
前記計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習ステップと、
を実行する学習方法。
【請求項10】
前記取得ステップにおいて取得した複数のデータパケット群に基づいて、前記分別ステップにおける分別を行い、前記変換ステップにおいて変換した推定用の各時系列データと、前記学習モデルとを用いて、前記推定用の時系列データに異常がある可能性を推定する推定ステップを含む
請求項9に記載の学習方法。
【請求項11】
コンピュータに、
データライン上のデータパケットを取得する取得機能と、
前記取得機能が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別機能と、
複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換機能と、
前記計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習機能と、
を実現させる学習プログラム。
【請求項12】
前記取得機能が取得した複数のデータパケット群に基づいて、前記分別機能が分別を行い、前記変換機能が変換した推定用の各時系列データと、前記学習モデルとを用いて、前記推定用の時系列データに異常がある可能性を推定する推定機能を実現させる請求項11に記載の学習プログラム。
【請求項13】
各種の計測データについて異常がない状態で計測された計測データ値を連ねた時系列データの変化を学習した学習モデルを記憶する記憶部と、
データライン上のデータパケットを取得する取得部と、
前記取得部が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別部と、
複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換し、当該計測データの正解ラベルを付与する変換部と、
前記計測データ群の各種別の時系列データを、前記学習モデルに入力して、前記データパケットに異常がある可能性を推定する推定部と、
前記推定部による推定結果を出力する出力部と、
を備える異常検知装置。
【請求項14】
コンピュータが、
各種の計測データについて異常がない状態で計測された計測データ値を連ねた時系列データの変化を学習した学習モデルを記憶する記憶ステップと、
データライン上のデータパケットを取得する取得ステップと、
前記取得ステップにおいて取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別ステップと、
複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換し、当該計測データの正解ラベルを付与する変換ステップと、
前記計測データ群の各種別の時系列データを、前記学習モデルに入力して、前記データパケットに異常がある可能性を推定する推定ステップと、
前記推定ステップによる推定結果を出力する出力ステップと、
を備える異常検知方法。
【請求項15】
コンピュータに、
各種の計測データについて異常がない状態で計測された計測データ値を連ねた時系列データの変化を学習した学習モデルを記憶する記憶機能と、
データライン上のデータパケットを取得する取得機能と、
前記取得機能が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別機能と、
複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換し、当該計測データの正解ラベルを付与する変換機能と、
前記計測データ群の各種別の時系列データを、前記学習モデルに入力して、前記データパケットに異常がある可能性を推定する推定機能と、
前記推定機能による推定結果を出力する出力機能と、
を実現させる異常検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常検知装置、異常検知方法、異常検知プログラム、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【0002】
従来から、データライン上を伝送されるデータを分別する手法が開発されている。例えば、特許文献1では、識別モデルによる分別を行う手法を開示しており、当該識別モデルを生成するにあたって必要となる教師データを生成するためのラベリング対象のデータを識別する手法を開示している。そして、特許文献1では、ラベリング対象のデータに対して、ユーザの手によりラベリングを行っている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1のように、人手によるラベリングはユーザにとって非常に煩雑なものがある。
【0005】
そこで、本発明は、取得したデータに自動でラベリングして、学習モデルを生成することができる学習装置、学習方法及び学習プログラム並びに生成された学習モデルを用いて推定処理を実行することができる異常検知装置、異常検知方法及び異常検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る学習装置は、データライン上のデータパケットを取得する取得部と、取得部が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別部と、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換部と、計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習部と、を備える。
【0007】
また、上記学習装置において、分別部は、計測データ群を含むデータパケットに先だって、データパケットを送信する際の計測データ群の配列を定めた計測条件データに基づいて、分別ルールを生成することとしてもよい。
【0008】
また、上記学習装置において、データラインは、検査対象に設けられたセンサ群と、検査対象の情報を収集する情報処理装置と、を接続するデータラインであり、取得部は、検査対象が正常に動作していることが確定しているときにデータライン上を流れるデータパケットを取得し、学習部は、検査対象が正常に動作していることが確定しているときに取得部が取得した複数のデータパケットそれぞれから分別された計測データの計測データ値に基づいて生成された時系列データを学習して学習モデルを生成することとしてもよい。
【0009】
また、上記学習装置において、分別ルールは、データパケットの種別と、各種別に応じたペイロードにおける計測データ群の配列が定められた情報であり、データパケットは、ヘッダに、当該データパケットの種別を示す情報を含み、分別部は、データパケットに含まれるデータパケットの種別を示す情報に対応する分別ルールにしたがって、データパケットに含まれる計測データ群を分別することとしてもよい。
【0010】
また、上記学習装置において、学習装置は、学習部が生成した学習モデルを記憶する記憶部を備えることとしてもよい。
【0011】
また、上記学習装置において、さらに、取得部が取得した複数のデータパケット群に基づいて、分別部が分別を行い、変換部が変換した推定用の各時系列データと、学習モデルとを用いて、推定用の時系列データに異常がある可能性を推定する推定部を備えることとしてもよい。
【0012】
また、上記学習装置において、推定部は、推定用の各時系列データそれぞれについて、学習モデルに含まれる各計測データの時系列データからの類似度に基づいて、計測データに異常がある可能性を推定することとしてもよい。
【0013】
また、上記学習装置において、変換部は、所定数の計測データ値ごとに、時系列データに変換することとしてもよい。
【0014】
また、本発明の一態様に係る学習方法は、コンピュータが、データライン上のデータパケットを取得する取得ステップと、取得ステップが取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別ステップと、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換ステップと、計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習ステップと、を実行する。
【0015】
また、上記学習方法において、取得ステップにおいて取得した複数のデータパケット群に基づいて、分別ステップにおける分別を行い、変換ステップにおいて変換した推定用の各時系列データと、学習モデルとを用いて、推定用の時系列データに異常がある可能性を推定する推定ステップを含むこととしてもよい。
【0016】
また、本発明の一態様に係る学習プログラムは、コンピュータに、データライン上のデータパケットを取得する取得機能と、取得機能が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別機能と、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換機能と、計測データ群に含まれる計測データそれぞれについての時系列データの変化を学習する学習モデルを生成する学習機能と、を実現させる。
【0017】
また、上記学習プログラムにおいて、取得機能が取得した複数のデータパケット群に基づいて、分別機能が分別を行い、変換機能が変換した推定用の各時系列データと、学習モデルとを用いて、推定用の時系列データに異常がある可能性を推定する推定機能を実現させることとしてもよい。
【0018】
また、本発明の一態様に係る異常検知装置は、各種の計測データについて異常がない状態で計測された計測データ値を連ねた時系列データの変化を学習した学習モデルを記憶する記憶部と、データライン上のデータパケットを取得する取得部と、取得部が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別部と、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換し、当該計測データの正解ラベルを付与する変換部と、計測データ群の各種別の時系列データを、学習モデルに入力して、データパケットに異常がある可能性を推定する推定部と、推定部による推定結果を出力する出力部と、を備える。
【0019】
また、本発明の一態様に係る異常検知方法は、コンピュータが、各種の計測データについて異常がない状態で計測された計測データ値を連ねた時系列データの変化を学習した学習モデルを記憶する記憶ステップと、データライン上のデータパケットを取得する取得ステップと、取得ステップにおいて取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別ステップと、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換し、当該計測データの正解ラベルを付与する変換ステップと、計測データ群の各種別の時系列データを、学習モデルに入力して、データパケットに異常がある可能性を推定する推定ステップと、推定ステップによる推定結果を出力する出力ステップと、を備える。
【0020】
また、本発明の一態様に係る異常検知プログラムは、コンピュータに、各種の計測データについて異常がない状態で計測された計測データ値を連ねた時系列データの変化を学習した学習モデルを記憶する記憶機能と、データライン上のデータパケットを取得する取得機能と、取得機能が取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別機能と、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換し、当該計測データの正解ラベルを付与する変換機能と、計測データ群の各種別の時系列データを、学習モデルに入力して、データパケットに異常がある可能性を推定する推定機能と、推定機能による推定結果を出力する出力機能と、を実現させる。
【発明の効果】
【0021】
本発明の一態様に係る学習装置は、取得したデータパケットに含まれる計測データ群を、予め定められた分別ルールに従って分別する分別部と、複数のデータパケットそれぞれから分別された同じ種別の計測データの計測データ値を時系列データに変換する変換部を備えることにより、得られた時系列データを教師データとして学習することができるので、自動的に学習モデルを生成することができる。したがって、学習モデルを生成する際にユーザの手間を軽減することができる。
【図面の簡単な説明】
【0022】
【
図1】学習システムの構成例を示すシステム図である。
【
図2】学習システムにおける計測対象と収集装置との間のやり取りの例を示すシーケンス図である。
【
図4】(a)分別ルールのイメージ図である。(b)データパケットの構成イメージ図である。
【
図6】学習装置における学習時の動作例を示すフローチャートである。
【
図7】学習装置における推定時の動作例を示すフローチャートである。
【発明を実施するための形態】
【0023】
本発明に係る学習装置について、図面を参照しながら、詳細に説明する。
【0024】
<実施形態>
<概要>
図1は、本実施例に係る学習システムの構成例を示すシステム図である。
【0025】
図1に示すように、学習システムは、車両10に搭載された計測器200により計測される各種の計測データが、ミラーリング装置30、ルータ20a、ネットワーク400、ルータ20bを含む通信経路を介して、アップロードされる態様において、そのアップロードされるデータに異常がないかを検出するための学習モデルを自動的に生成し、異常を検出するシステムである。
【0026】
学習装置100は、ミラーリング装置30により、計測器200からルータ20aに伝送されるデータライン上に設けられ、ミラーリング装置30によりコピーされたデータパケットを取得する。そして、学習装置100は、取得したデータパケットを利用して、学習モデルを生成し、生成した学習モデルを用いて、以降計測器200とルータ20aとの間を流れるデータパケットに含まれる計測データに異常がないかを検出する。より厳密には、学習装置100は、データパケットに含まれる計測データの計測データ値を時系列順に連ねた時系列データに異常がないかを検出する。なお、
図1では、ミラーリング装置30を、計測器200とルータ20aとの間のデータライン上に設ける例を示しているが、ミラーリング装置30は、無線接続の場合には、計測器200とルータ20aの間に設けられ、有線接続の場合には、計測器200とルータ20aの間、又は、ルータ20bと情報処理装置300との間に設けることとしてよい。
【0027】
ここで、
図1に示す、各装置について簡単に説明する。
【0028】
計測器200は、車両10に搭載され、車両10の各種の情報を取得するセンサ群によりセンシングされて得られる計測データを収集し、情報処理装置300にアップロードする機器である。計測器200は、一例としてCAN(Car Area Network)に接続されて、車両10の各種の情報を収集することとしてよく、車両10に搭載されずに、無線通信により情報を収集するものであってもよい。車両10の各種の情報とは、車両に関する情報であればどのような情報であってもよく、例えば、エンジンの回転数、車速、各車輪の回転速度、車輪の方向を示す基準位置からの角度、空調の作動状態、ワイパーの作動状態、ウィンカーの作動状態、燃料の残量、電池の蓄電量、車載カメラの撮像画像などの情報であってよいが、これらに限定するものではない。
【0029】
ルータ20a、20bは、各種のデジタル通信機器をネットワーク400に接続するための機器である。
【0030】
ミラーリング装置30は、計測器200からルータ20aに向かう通信経路上(データライン上)を流れるデータパケットをコピーして、学習装置100にコピーしたデータパケットを転送する装置である。
【0031】
情報処理装置300は、計測器200により計測される計測データを遠隔にて、確認するためのコンピュータシステムである。情報処理装置300は、計測器200あるいは、車両10の制御機構に対して、車両10を制御するための情報を送信できてもよい。情報処理装置300は、一般的なPC、ノートPC、サーバ装置、タブレット端末などにより実現されてよいが、これらに限定するものではない。
【0032】
ネットワーク400は、各種の機器との間を相互に接続させるためのネットワークであり、例えば、無線ネットワークや有線ネットワークである。具体的には、ネットワーク400は、ワイヤレスLAN(wireless LAN:WLAN)や広域ネットワーク(wide area network:WAN)、ISDNs(integrated service digital networks)、無線LANs、LTE(long term evolution)、LTE-Advanced、第4世代(4G)、第5世代(5G)、第6世代(6G)、CDMA(code division multiple access)、WCDMA(登録商標)、イーサネット(登録商標)などである。また、ネットワーク400は、これらの例に限られず、例えば、公衆交換電話網(Public Switched Telephone Network:PSTN)やブルートゥース(Bluetooth(登録商標))、ブルートゥースローエナジー(Bluetooth Low Energy)、光回線、ADSL(Asymmetric Digital Subscriber Line)回線、衛星通信網などであってもよく、どのようなネットワークであってもよい。ネットワーク400は、ユーザの住居に備えられる場合には、ホームネットワークと呼称されることもある。また、ネットワーク400は、例えば、NB-IoT(Narrow Band IoT)や、eMTC(enhanced Machine Type Communication)であってもよい。なお、NB-IoTやeMTCは、IoT向けの無線通信方式であり、低コスト、低消費電力で長距離通信が可能なネットワークである。また、ネットワーク400は、これらの組み合わせであってもよい。また、ネットワーク400は、これらの例を組み合わせた複数の異なるネットワークを含むものであってもよい。例えば、ネットワーク400は、LTEによる無線ネットワークと、閉域網であるイントラネットなどの有線ネットワークとを含むものであってもよい。
【0033】
図2は、計測器200と情報処理装置300間のやり取りの例を示すシーケンス図である。本実施形態に係る学習装置100は、この計測器200と情報処理装置300との間のやり取りにより、送受信される複数のデータパケットを利用して、複数のデータパケットに含まれる計測データの計測データ値を時系列順に接続してなる時系列データに異常があるか否かを検出する。
【0034】
図2に示すように、情報処理装置300は、計測器200に対して、計測条件データを送信する(ステップS201)。この計測条件データは、計測器200に対して、どういうセンシングデータを、どういうフォーマット(配列、データの並び順、データパケット中のアドレス、ビット値)で送信するかを指定する情報である。
【0035】
計測器200は、計測条件データを受信すると、受取応答を情報処理装置300に送信する(ステップS202)。
【0036】
情報処理装置300は、受取応答を受信すると、計測開始指示を計測器200に送信する(ステップS203)。
【0037】
計測器200は、計測開始指示にしたがって、車両10の各部に対して、計測を実行するように指示する。そして、計測器200は、指定した各部から上がってくる計測データ値を含むデータパケットを送信する。計測器200は、基本的に、一時に計測された計測データ値群をひとまとめにして、一つのデータパケットを生成し、順次情報処理装置300に送信する(ステップS204、S205、S206)。即ち、ステップS204において、送信されるデータパケットは、一時に測定されたステップS201で指定された計測データ値の集合であり、後続するステップS205において送信されるデータパケットは、その次の時点で測定された計測データ値の集合となる。
【0038】
学習装置100は、情報処理装置300から送信された計測条件データを取得することで、データラインを流れるデータパケットの構成を認識することができ、教師データとなる時系列データとその計測ラベルを生成することができる。以下、詳細に説明する。
【0039】
<構成>
図3は、学習装置100の構成例を示すブロック図である。学習装置100は、PC、ノートPC、サーバ装置、タブレット端末などにより実現されるコンピュータシステムであってよいが、その実現例は、ここに例示したものに限定するものではない。
【0040】
図3に示すように、学習装置100は、通信部110と、制御部130と、記憶部140と、出力部150と、を備える。また、学習装置100は、入力部120を備えることとしてもよい。通信部110と、入力部120と、制御部130と、記憶部140と、出力部150と、は通信線160を介して互いに通信可能であってよい。なお、通信線160は、無線であってもよい。
【0041】
通信部110は、外部の装置と通信するための通信インターフェースである。通信部110は、ミラーリング装置30と通信して、ミラーリング装置30から送信されたデータパケットを受信して、制御部130に伝達する。データパケットには、計測条件データが含まれる場合と、計測条件データに従って計測された1以上の計測データ値が含まれる場合とがある。また、通信部110は、情報処理装置300と通信できてもよく、制御部130からの指示に従って、データライン上を流れるデータパケットに基づいて生成される時系列データに異常が見られた場合に、情報処理装置300にその旨を報告することとしてよい。
【0042】
入力部120は、学習装置100のユーザからの入力を受け付ける機能を有する入力インターフェースである。入力部120は、例えば、キーボードやマウス、タッチパネル、ハードキー、ソフトキーなどにより実現されてよいがこれらに限定するものではない。入力部120は、例えば、マイクであって、音声による入力を受け付けるものであってもよい。入力部120は、入力された入力内容を制御部130に伝達する。
【0043】
制御部130は、学習装置100の各部を制御する機能を有するプロセッサである。制御部130は、記憶部140に記憶されているプログラムを読み出して実行することにより、学習装置100が果たすべき機能を実現する。
【0044】
制御部130は、果たすべき機能として、取得部131と、分別部132と、変換部133と、学習部134と、推定部135と、を備える。
【0045】
取得部131は、データライン上を流れるデータパケットを、通信部110を介して取得する。具体的には、取得部131は、ミラーリング装置30によりコピーされたデータライン上のデータパケットを、ミラーリング装置30から取得する。取得部131は、取得したデータパケットを分別部132に伝達する。
【0046】
分別部132は、伝達されたデータパケットが、計測条件データである場合には、当該計測条件データに含まれる情報に従って分別ルール141を生成する。計測条件データには、計測における環境を指定する情報と、その場合の計測の対象となる計測データが何であるかを指定する情報と、が含まれる。より具体的には、計測条件データは、どういう環境下での計測を行うものであり、データペイロードの先頭から、どういう情報が何ビット含まれているのかのデータフォーマットを示す情報である。したがって、分別部132により生成される分別ルール141は、データライン上を流れるデータがどのようなデータを識別するための識別情報(後述の計測条件種別401)と、その場合のデータパケットに含まれる計測データがどのような構成で含まれているのかを示すデータフォーマット(後述のデータフォーマット402)と、が対応付けられた情報である。分別ルール141があることにより、データライン上を流れるデータパケットに含まれる計測データを適切に分別することができる。
【0047】
また、分別部132は、伝達されたデータパケットに、計測データが含まれる場合には、分別ルール141(又は計測条件データ)にしたがって、各計測データの計測データ値に分別する。そして、分別部132は、分別した計測データ値を変換部133に伝達する。分別部132は、分別した各計測データが何のデータであるかを示す情報(計測ラベル)とともに変換部133に伝達する。
【0048】
変換部133は、分別部132により分別された計測データ値であって、同種の計測データの計測データ値を時系列に沿って並べて結合することで、一点のデータである計測データ値を時系列データに変換する。変換部133は、所定数以上または所定データ量以上の計測データが蓄積された場合に、蓄積した計測データを、測定された時刻の順に並べて結合することで、時系列データに変換することとしてよい。なお、変換部133は、所定数または所定量の計測データがない場合には、所定数または所定量に達しておらずとも計測データ値を時系列データに変換することとしてもよい。変換部133は、生成した時系列データを記憶部140に記憶させてもよい。また、変換部133は、学習時においては、時系列データと、時系列データが何の時系列データであるかを示す情報(計測ラベル)と、を学習部134に伝達する。また、変換部133は、推定時においては、時系列データと、時系列データが何の時系列データであるかを示す情報(計測ラベル)と、を推定部135に伝達する。
【0049】
学習部134は、変換部133が生成した時系列データとその計測ラベルとを用いて、学習モデル143を生成する。学習部134は、生成した学習モデル143を記憶部140に記憶させる。学習部134は、計測対象の車両10の各部が正常に稼働していることが分かっている状態で計測された計測データ値を含むデータパケット群によって生成された時系列データを学習する。即ち、学習部134は、車両10が正常に動作している状態の、何等かの事象の経時的変化(時系列データ)を、正常な状態の情報として学習する。例えば、学習部134は、変換部133により変換されて生成された時系列データが、エンジンの回転数の経時的変化を示すものであった場合には、エンジンの回転数の正常な状態における変化を学習する。生成された時系列データが、エンジンの回転数を示すデータであることは、分別部132による分別時に特定され、計測ラベルとして利用される。したがって、学習部134は、生成された時系列データと、当該時系列データがエンジンの回転数を示すデータであることを示す計測ラベルと、が対応付けられた情報を教師データとして学習を実行する。このとき、学習部134は、更に、車両10がどういう状態における時系列データを学習したのかも学習することとしてもよい。例えば、学習部134は、時系列データがエンジンの回転数の経時的変化を示すものであって、アイドリング時や時速xkmで加速している時などの車両10の環境も併せて学習することとしてもよい。なお、ここでいう事象は、エンジンの回転数に限定するものではない。計測対象が車両の場合であれば、その他の例として、アクセル開度、車輪速、操舵角、車両の加速度、角速度や温度などであってよいが、これらに限定するものではない。
【0050】
推定部135は、変換部133が生成した時系列データを、記憶部140に記憶されている学習モデル143に入力し、時系列データに異常があるか否かを判定する。推定部135は、時系列データに異常がある可能性(パーセンテージ)を推定するものであってもよい。推定部135は、伝達された時系列データが何のデータであるかを示す情報(計測ラベル)に基づいて、時系列データと、学習モデル143として学習された対応する計測ラベルの時系列データと、の間の類似度を算出することとしてよい。そして、推定部135は、算出した類似度が、所定の閾値以下である場合に、伝達された時系列データに異常があると推定することとしてよい。
【0051】
記憶部140は、学習装置100が動作上必要とする各種プログラムやデータを記憶する機能を有する記憶媒体である。記憶部140は、例えば、HDD、SSD、フラッシュメモリなどにより実現されてよいが、これらに限定するものではない。
【0052】
記憶部140は、分別ルール141と、時系列データ142と、学習モデル143とを記憶していてよい。
【0053】
分別ルール141は、データライン上を流れるデータパケットに含まれる計測データの計測データ値を分別するためのルールを示す情報である。分別ルール141の詳細については後述する。
【0054】
時系列データ142は、変換部133により生成された時系列データのことであり、同種の計測データ群を時系列順に結合して生成されたデータである。
【0055】
学習モデル143は、学習部134により生成された学習モデルであり、計測データ値に基づく時系列データと、その時系列データが何の情報であるかを示すラベルと、の対応関係を学習したモデルである。
【0056】
出力部150は、制御部130からの指示にしたがって、指定された情報を出力する機能を有する。出力部150は、学習装置100に接続された、又は、学習装置100に設けられたモニターに対する画像や文字列の表示によって出力を行うものであってよい。また、出力部150は、学習装置100に接続された、又は、学習装置100に設けられたスピーカから、音声によって出力を行うものであってもよい。
【0057】
なお、計測器200は、一例として、車両10の各種の情報を収集して、情報処理装置300に転送する装置であり、従来の計測器と同様であるため、詳細な構成の説明を省略する。また、情報処理装置300も、一般的なPC、ノートPC、タブレット端末などにより実現される情報処理装置であるため、詳細な構成の説明を省略する。
【0058】
<データ>
図4(a)は、分別ルール141のデータ構成例を示すデータ概念図である。
【0059】
図4(a)に示すように、分別ルール141は、計測条件種別401と、データフォーマット402とが対応付けられた情報である。
【0060】
計測条件種別401は、データライン上を流れるデータパケットの計測データ群が、どういう状況下で測定されたものかを識別するための識別情報である。計測条件種別401は、車両10のどういう状態を認識したいのかを指定、識別するための情報であってもよい。計測条件種別401は、分別部132により、学習装置100においてデータパケットが何のデータパケットであるかを一意に、他の種別のデータパケットと区別可能に付与される識別情報であり、計測条件データに相当する。計測条件種別401は、データパケットのヘッダに含まれる情報であってもよい。
【0061】
データフォーマット402は、対応する計測条件種別401のデータパケットのデータペイロードに含まれる計測データ群のデータフォーマット、即ち、何のデータが、データパケット中のどこのアドレスに、どの単位で含まれているかを定義した情報である。
【0062】
図4(a)の例では、計測条件種別401が、「D00001」であるデータパケットの場合、データペイロードには、「計測データA1」が、データパケット中のアドレス「Ada1」に「Ba1」ビット、「計測データA2」が、データパケット中のアドレス「Ada2」に「Ba2」ビット、「計測データA3」が、データパケット中のアドレス「Ada3」に「Ba3」ビット、含まれていることが理解される。
【0063】
ここで、「計測データA1」や「計測データA2」、「計測データA3」などは、各計測データが何を測定したデータであるのかを特定できる情報であってよく、計測ラベルに相当する。一例として、車両10の場合であれば、計測データは、エンジンの回転数、残存燃料、車速、など、計測の対象となった内容を示す情報であってよい。また、「Ada1」、「Adb1」などは、計測データの、データパケット中のアドレスを示し、「Ba1」ビット、「Ba2」ビットなどは、計測データの、データパケット中におけるビット数(対応する計測データの計測データ値がデータペイロード中に含まれる範囲(データ量))を示す。
【0064】
上述したように、分別ルール141は、計測条件データによって規定されるデータである。分別部132は、分別ルール141があることにより、データライン上を流れるデータパケットに含まれる計測データ群を適切に分別することができる。
【0065】
図4(b)は、計測データを含むデータパケットの構成例を示すイメージ図である。
図4(b)に示されるように、データパケットは、ヘッダと、データペイロードとからなる。
図4(b)に示すように、ヘッダには、データパケットに含まれる計測データが何かを特定するための計測条件種別が含まれる。また、そして、データペイロードには、当該計測条件種別に従って格納された計測データの計測データ値が、計測条件種別で定められるアドレス並びにビット数で格納される。
【0066】
<学習と推定のイメージ>
図5は、学習装置100による学習処理のイメージを示すものであるとともに、学習モデルを用いた推定のイメージを示す図でもある。
【0067】
図5に示すように、データライン上をデータパケット500a、500b、…、500nが伝送されるとする。データパケット500a、500b、…、500nには、ヘッダと、各計測データが含まれる。
【0068】
図5に示すように、データパケット500aのデータペイロードには、計測データP1と、計測データR1と、計測データQ1と、計測データS1とが、この順に含まれる。同様に、データパケット500bのデータペイロードには、計測データP2と、計測データR2と、計測データQ2と、計測データS2とが、この順に含まれ、データパケット500nのデータペイロードには、計測データPnと、計測データRnと、計測データQnと、計測データSnとが、この順に含まれる。ここで、データパケット500a~500nは、同じ条件での計測を行った場合のデータ例を示している。
【0069】
図5に示す各データパケット500a~500nは、分別部132により分別ルール141にしたがって、各計測データに分別される。
【0070】
図5において、点線で囲っているように、計測データP1と、計測データP2と、…、計測データPnとは、同種の計測データの計測データ値であり、同じセンサにより得られたデータである。同様に、計測データQ1と、計測データQ2と、…、計測データQnとは、同じセンサにより得られた計測データ値であり、計測データR1と、計測データR2と、…、計測データRnとは、同じセンサにより得られた計測データ値であり、計測データS1と、計測データS2と、…、計測データSnとは、同じセンサにより得られた計測データ値である。
【0071】
したがって、
図5の例で言えば、分別部132は、データパケット500aを、計測データP1と、計測データR1と、計測データQ1と、計測データS1とに分割する。また、分別部132は、データパケット500bを、計測データP2と、計測データR2と、計測データQ2と、計測データS2とに分割する。また、分別部132は、データパケット500nは、計測データPnと、計測データRnと、計測データQnと、計測データSnとに分割する。そして、分別部132は、計測データP1と、計測データP2と、…、計測データPnとを同じ種別の計測データとして分別する。同様に、分別部132は、計測データQ1と、計測データQ2と、…計測データQnとを同じ種別の計測データとして分別し、計測データR1と、計測データR2と、…計測データRnとを同じ種別の計測データとして分別し、計測データS1と、計測データS2と、…計測データSnとを同じ種別の計測データとして分別する。
【0072】
変換部133は、分別部132により分別されて集められた各計測データの計測データ値を時系列順に並べて結合し、時系列データに変換する。即ち、変換部133は、計測データP1と、計測データP2と、…、計測データPnとを結合させ、計測データPを計測ラベルとして時系列データを生成する。また、変換部133は、計測データQ1と、計測データQ2と、…、計測データQnとを結合させ、計測データQを計測ラベルとして時系列データを生成する。同様に、変換部133は、計測データR1と、計測データR2と、…、計測データRnとを結合させ、計測データRを計測ラベルとして時系列データを生成し、計測データS1と、計測データS2と、…、計測データSnとを結合させ、計測データSを計測ラベルとして時系列データを生成する。
【0073】
そして、学習の段階にあっては、学習部134は、変換部133により生成された、計測データPを計測ラベルとする時系列データと、計測データQを計測ラベルとする時系列データと、計測データRを計測ラベルとする時系列データと、計測データRを計測ラベルとする時系列データと、を用いて、学習モデル143を生成する。なお、この時生成される学習モデル143は、各時系列データを纏めて学習した学習モデルであってもよいし、計測ラベルごと、即ち、計測データP専用の学習モデル、計測データQ専用の学習モデル、計測データR専用の学習モデル、…というように各計測データに特化した学習モデルを生成するものであってもよい。
【0074】
また、推定の段階にあっては、推定部135は、変換部133により生成された計測データPの時系列データ、計測データQの時系列データ、計測データRの時系列データ、計測データSの時系列データ、それぞれを入力として、学習モデル143として学習されている計測データPの時系列データとして異常があるか否か、計測データQの時系列データとして異常があるか否か、計測データRの時系列データとして異常があるか否か、計測データSの時系列データとして異常があるか否かを、推定する。推定部135は、一例として、変換部133により生成された時系列データが、学習モデル143として学習されている対応する時系列データ群との類似度に基づいて、異常があるか否かを推定する。即ち、類似度が高ければ異常はないと推定し、類似度が低ければ異常があると推定する。そのため、推定部135は、類似度の高低を判断するための所定の閾値を記憶、保持していてもよい。この所定の閾値は、計測データごとに一律に同一の閾値であってもよいし、計測データごとに個別に設定されてもよい。
【0075】
このようにして、学習装置100においては、学習モデル143が生成されるとともに、学習モデル143を用いた推定処理が実行される。
【0076】
<動作>
図6は、学習装置100による学習処理における動作例を示すフローチャートである。
【0077】
図6に示すように、制御部130の取得部131は、通信部110を介して、データライン上を伝送されるデータパケットを取得する(ステップS601)。取得部131は、取得したデータパケットを分別部132に伝達する。
【0078】
分別部132は、伝達されたデータパケットが、計測条件データを示すものであるか否かを判定する(ステップS602)。当該判定は、例えば、データパケットのヘッダに含まれる情報によって判定することができる。
【0079】
データパケットが計測条件データを示すものであった場合に(ステップS602のYES)、分別部132は、計測条件データにしたがって、分別ルールと、分別により分別される各計測データの計測ラベルを生成する(ステップS603)。そして、分別部132は、分別ルール141として、記憶部140に生成した分別ルールと計測ラベルを記憶する(ステップS604)。
【0080】
一方、データパケットが計測条件データでなかった場合には(ステップS602のNO)、分別部132は、データパケットのヘッダに含まれるデータパケットが何の計測を行うものであるかを示す識別情報(計測条件種別)を抽出し、対応する分別ルール141を記憶部140から読み出す。そして、分別部132は、読み出した分別ルールに従って、データパケットのデータペイロードを計測データ値に分別する(ステップS605)。分別部132は、分別した計測データ値を、その計測データ値が何を計測したデータであるかを示す情報(計測ラベル)とともに記憶部140に記憶する。
【0081】
変換部133は、分別された計測データ値が所定数蓄積されているか否かを判定する(ステップS606)。変換部133は、分別された同種の計測データ値が所定数蓄積されていない場合には(ステップS606のNO)、ステップS601の処理に戻る。また、変換部133は、分別された同種の計測データ値が所定数蓄積されている場合には(ステップS606のYES)、計測データ値を時系列順に並べて結合し、時系列データに変換する(ステップS607)。上述の通り、計測データは、車両10に設けられたセンサ等によりセンシングされるデータ(センサに限らず何らかの出力値でもよい)であり、ある一時のデータである。したがって、計測データ値を時系列順に結合させることで、対応するセンサによりセンシングされた値の経時的変化を示すデータに変換することができる。変換部133は、計測データ値群を変換して生成した時系列データを、その時系列データが何の経時的変化を示す情報(計測ラベル)とともに記憶部140に記憶する。
【0082】
学習部134は、所定数の時系列データがあるか否かを判定する(ステップS608)。所定数の時系列データがない場合には(ステップS608のNO)、ステップS601の処理に戻る。所定数の時系列データがある場合には(ステップS608のYES)、時系列データと対応するラベルとを教師データとする学習を行って学習モデル143を生成する(ステップS609)。学習モデル143の生成にあたっては既存の深層学習に係るアルゴリズム(一例として、ディープニューラルネットワーク、サポートベクターマシンなどがあるがこれらに限定するものではない)を用いることとしてよい。
【0083】
そして、学習部134は、生成した学習モデル143を記憶部140に記憶し(ステップS610)、処理を終了する。
【0084】
以上が、学習装置100が、学習モデルを生成する際の動作の説明である。
【0085】
なお、計測データ値や時系列データの記憶は一時的なものであってもよく、計測データ値が時系列データに変換されて、学習モデル143が生成された後には、記憶部140から削除されてもよい。
【0086】
図7は、学習装置100による推定処理における動作例を示すフローチャートである。
【0087】
制御部130の取得部131は、通信部110を介して、データライン上を伝送されるデータパケットを取得する(ステップS701)。取得部131は、取得したデータパケットを分別部132に伝達する。
【0088】
分別部132は、伝達されたデータパケットに含まれる計測データが何であるかを、データパケットのヘッダに含まれる後続するデータペイロードの計測データが何のデータであるかを示す識別情報(計測条件種別)に基づいて、対応する分別ルールと、正解ラベルを特定する(ステップS702)。正解ラベルとは、計測データ群の各計測データに基づいて生成される時系列データに対して付与すべき計測ラベルのことである。
【0089】
分別部132は、特定された分別ルールと正解ラベルに従って、データパケットのデータペイロードを計測データ値に分別する(ステップS703)。分別部132は、分別した計測データ値を、その計測データ値が何を計測したデータであるかを示す情報(正解ラベル)とともに記憶部140に記憶する。
【0090】
変換部133は、所定数の同種の計測データ値が有るか否かを判定する(ステップS704)。所定数の計測データ値がない場合には(ステップS704のNO)、ステップS701の処理に戻る。所定数の計測データ値がある場合には(ステップS704のYES)、計測データを、時系列の順に並べて結合し、時系列データに変換する(ステップS705)。変換部13は、計測データ値群を変換して生成した時系列データとその正解ラベルを推定部135に伝達する。
【0091】
推定部135は、伝達された時系列データと正解ラベルに基づき、学習モデル143において学習されている正解ラベルに対応する計測ラベルの時系列データとの類似度を算出する(ステップS706)。そして、その類似度の高低に基づいて、異常があるか否かを示す推定結果を出力部150に出力させて(ステップS707)、処理を終了する。なお、出力部150による推定結果の出力は、学習装置100に接続若しくは設けられているモニターに対する画像や文字列による出力、スピーカに対する音声による出力、通信部110を介した外部の装置(例えば、情報処理装置300)への送信のいずれの態様により実現されてもよい。
【0092】
<まとめ>
上記実施形態に示したように、学習装置100は、計測条件データにしたがって、自動的に、データパケットを分別するための分別ルールを作成するとともに、その分別した各計測データが何であるかを示すラベルを生成することができる。そして、学習装置100は、作成した分別ルールにしたがってデータパケットの計測データ値を分別し、各計測データの計測データ値を時系列データに変換して、ラベルを対応付けることで、自動的に教師データを生成することができる。したがって、学習装置100は、自動生成された教師データを用いて、学習モデル143を作成することができる。また、その後に、学習装置100は、データラインを流れるデータパケットから計測データの計測データ値を結合した時系列データと、学習モデル143とを用いて、自動的に、データパケットを流れるデータに基づく時系列データに異常があるか否かを判定することができる。
【0093】
<補足>
上記実施形態に係る学習装置は、上記実施形態に限定されるものではなく、他の手法により実現されてもよいことは言うまでもない。以下、各種変形例について説明する。
【0094】
(1) 上記実施形態においては、車両に搭載された計測器200と、計測器200により測定された計測データをアップロードする情報処理装置300の間の通信経路上のデータに基づいて、自動的に学習モデルを作成し、学習モデルの作成後に、通信経路上を流れるデータに異常があるか否かを検出する例を示したが、学習装置100が学習し異常があるか否かを推定する対象は車両の計測器200のデータに限定するものではない。
【0095】
上記実施形態に示すように、計測対象から計測した何等かのデータがアップロードされるものであって、その計測対象に対して、計測内容と、その際のデータアップロードの際のフォーマット(計測条件データ)が伝達されるものであれば、学習の対象となる計測データは、車両20のものに限定するものではない。
【0096】
一例として、計測対象は、工場等に設けられる複数のロボットであってもよいし、建築物内の環境であってもよい。例えば、ロボットの場合であれば、ロボットの関節角度であったり、消費電力であったり、モータの回転速度であったりを、計測対象とすることができる。また、建築物内の環境であれば、例えば、空調の温度設定や風速、室内温度や湿度などを計測対象とすることとしてもよい。したがって、学習装置100は、どのような計測データであっても、その検出値に異常があるか否かを推定することができる。
【0097】
(2) 上記実施形態においては、車両10の計測データに異常があるか否かを推定することとしているが、この推定は、さらに、第3者による不正アクセスや、不正アクセスに伴うデータの改ざん等を検出にも役立てることができる。例えば、情報処理装置300が、車両10に対して、車両10の動作をコントロールできる場合であって、車両10からの計測データに基づくコントロールを実行しているときに、第3者が計測データの計測データ値を改ざんすると、情報処理装置300は車両10が正常に動作しているにも関わらず改ざんされた計測データ値(間違った計測データ値)により、本来すべきではない制御を実行することが有り得る。このような場合に、学習装置100が、データライン上のデータパケットから分別された計測データの計測データ値の時系列データに異常(改ざんに基づく以上)を発見することで、車両10が情報処理装置300により誤った制御が実行され事故につながる可能性を抑制することができる。一方で、情報処理装置300からの制御指示についても、通常時の制御内容を自動的に学習することで、車両10に対する指令自体を改ざんされた場合に、その異常を検知し、通知することができる。このような場合には、車両10に対して、異常があった場合に、学習装置100から停止指示を出力できるように構成してもよい。また、学習装置100は、ネットワーク400を介して、異常を検知した場合に、改ざんが行われた可能性があることを、情報処理装置300等に報知するようにしてもよい。
【0098】
(3) 上記実施形態においては示していないが、ネットワーク400には、情報処理装置300の他に、計測器200により計測された計測データを記憶保存するためのクラウドサーバが接続され、当該クラウドサーバに対しても計測データがアップロードされることとしてもよい。
【0099】
(4) 上記実施形態において、学習装置100は、予め学習装置100と同様の手法によって他の装置により生成された学習モデル143を記憶し、推定部135によるデータパケットに含まれる計測データに基づく時系列データに異常があるか否かを判定する異常検知装置としてのみ動作することとしてもよい。この場合、分別ルールも、学習モデル143を生成した他の装置から異常検知装置に伝達され、記憶されることによって、異常があるか否かを推定することができる。
【0100】
(5) 本開示の各実施形態のプログラムは、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。記憶媒体は、HDDやSSDなどの任意の適切な記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。記憶媒体は、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。なお、記憶媒体はこれらの例に限られず、プログラムを記憶可能であれば、どのようなデバイスまたは媒体であってもよい。
【0101】
なお、学習装置100は、例えば、記憶媒体に記憶されたプログラムを読み出し、読み出したプログラムを実行することによって、各実施形態に示す複数の機能部の機能を実現することができる。また、当該プログラムは、任意の伝送媒体(通信ネットワークや放送波等)を介して、学習装置100に提供されてもよい。学習装置100は、例えば、インターネット等を介してダウンロードしたプログラムを実行することにより、各実施形態に示す複数の機能部の機能を実現する。
【0102】
なお、当該プログラムは、例えば、ActionScript、JavaScript(登録商標)などのスクリプト言語、Objective―C、Java(登録商標)などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装できる。
【0103】
学習装置100における処理の少なくとも一部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。また、学習装置100の各機能部は、上記実施形態に示した機能を実現する1または複数の回路によって実現されてもよく、1の回路により複数の機能部の機能が実現されることとしてもよい。
【0104】
(6) 本開示の実施形態を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本開示の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。また、各実施形態に示す構成を適宜組み合わせることとしてもよい。
【符号の説明】
【0105】
1 情報処理システム
10 車両
20a、20b ルータ
30 ミラーリング装置
100 学習装置
110 通信部
120 入力部
130 制御部
131 取得部
132 分別部
133 変換部
134 学習部
135 推定部
140 記憶部
150 出力部
200 計測器
300 情報処理装置
400 ネットワーク