(57)【要約】【課題】複数のセンサの時系列データから、少数の異常動作を出力しているセンサを正確に識別する。【解決手段】複数のセンサからの出力の変化を検出する検出装置であって、複数のセンサが出力する第１データ列を取得する第１取得部と、第１データ列に基づいて、複数のセンサからのデータを推測するモデルを生成する生成部と、複数のセンサが出力する第２データ列を取得する第２取得部と、モデルに基づいて、第２データ列に対応する推測データ列を、第２データ列および推測データ列の間の誤差をスパースにする正則化を用いて推測する推測部と、第２データ列および推測データ列の間の誤差に基づいて、第１データ列および第２データ列の間で変化が生じたセンサを特定する特定部と、を備える検出装置、検出法法、およびプログラムを提供する。【選択図】図１
2015210750.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサからの出力の変化を検出する検出装置であって、
前記複数のセンサが出力する第１データ列を取得する第１取得部と、
前記第１データ列に基づいて、前記複数のセンサからのデータを推測するモデルを生成する生成部と、
前記複数のセンサが出力する第２データ列を取得する第２取得部と、
前記モデルに基づいて、前記第２データ列に対応する推測データ列を、前記第２データ列および前記推測データ列の間の誤差をスパースにする正則化を用いて推測する推測部と、
前記第２データ列および前記推測データ列の間の誤差に基づいて、前記第１データ列および前記第２データ列の間で変化が生じたセンサを特定する特定部と、
を備える検出装置。
【請求項２】
前記推測部は、前記第２データ列および前記推測データ列の間の誤差を一部のセンサからのデータ列に集中させる前記正則化を用いて前記推測データ列を算出する請求項１に記載の検出装置。
【請求項３】
前記推測部は、前記第２データ列および前記推測データ列の間の誤差を一部のセンサからのデータ列に集中させ、前記第２データ列および前記推測データ列の間の誤差を各センサについて時間方向において集中させる前記正則化を用いて前記推測データ列を算出する請求項２に記載の検出装置。
【請求項４】
前記生成部は、前記第１データ列から潜在変数のデータ列である第１潜在データ列を算出して、前記複数のセンサが出力する各データに対し、当該データに対応する潜在データおよび当該潜在データから推測される推測データの確率分布を表す前記モデルを生成し、
前記推測部は、前記第２データ列の潜在変数のデータ列である第２潜在データ列中の潜在データおよび前記推測データ列中の対応する推測データの値を取る確率を前記第２データ列について合計した項と前記正則化に応じた項とを含む目的関数を最適化する前記第２潜在データ列および前記推測データ列を推測する
請求項１から３のいずれか一項に記載の検出装置。
【請求項５】
前記生成部は、前記第２潜在データ列中の潜在データと前記第１潜在データ列の各潜在データとの差分が大きいほど前記確率が低くなり、前記推測データ列中の推測データと前記第１データ列の各データとの差分が大きいほど前記確率が低くなり、かつ、前記第２データ列中のデータと前記第１データ列の各データとの差分が大きいほど前記確率が低くなる確率分布を表す前記モデルを生成する請求項４に記載の検出装置。
【請求項６】
前記第２取得部は、前記第１データ列に対し、変化が生じたセンサが既知である前記第２データ列を取得し、
前記特定部が特定するセンサが、既知の変化が生じたセンサと一致するように前記推測部が用いる前記正則化の重みを調整する調整部を更に備える
請求項１から５のいずれか一項に記載の検出装置。
【請求項７】
前記第１取得部は、計測対象の正常な振る舞いを示す学習用の前記第１データ列を取得し、
前記第２取得部は、前記計測対象から検知された前記第２データ列を取得し、
前記特定部は、前記第２データ列および前記推測データ列の間の誤差に基づいて、異常を検出したセンサを特定する
請求項１から６のいずれか一項に記載の検出装置。
【請求項８】
複数のセンサからの出力の変化を検出する検出方法であって、
前記複数のセンサが出力する第１データ列を取得する第１取得段階と、
前記第１データ列に基づいて、前記複数のセンサからのデータを推測するモデルを生成する生成段階と、
前記複数のセンサが出力する第２データ列を取得する第２取得段階と、
前記モデルに基づいて、前記第２データ列に対応する推測データ列を、前記第２データ列および前記推測データ列の間の誤差をスパースにする正則化を用いて推測する推測段階と、
前記第２データ列および前記推測データ列の間の誤差に基づいて、前記第１データ列および前記第２データ列の間で変化が生じたセンサを特定する特定段階と、
を備える検出方法。
【請求項９】
コンピュータに、請求項１から７のいずれか一項に記載の検出装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出装置、検出方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、自動車および製造装置等の複雑なシステムに複数のセンサが搭載され、当該複数のセンサから取得される複数の時系列データを解析することが知られていた。特に、システムに搭載されるセンサの個数が数百以上に増大した場合でも、対応する時系列データを解析して異常の有無を監視する処理方法が知られていた（例えば、特許文献１〜３参照）。
［特許文献１］  特開２０１０−７８４６７号公報
［特許文献２］  特開２００８−１９８２１３号公報
［特許文献３］  特開２０１３−２５７２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このような処理方法は、複数の時系列データから、入力信号が正常な信号範囲内となる検出結果を示すセンサ群（正常センサ）と、異常な信号範囲となる検出結果を示すセンサ群（異常センサ）とを、センサ間の関係構造の変化の度合いに基づき、センサの異常度をスコア化して同定していた。しかしながら、物理システムにおいて互いに複雑な相関を有するセンサが、例えば百以上存在する場合、異常センサのみをピックアップすることは困難であり、異常センサと相関の強いセンサも異常度のスコアを高くなってしまうことがあった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、複数のセンサからの出力の変化を検出する検出装置であって、複数のセンサが出力する第１データ列を取得する第１取得部と、第１データ列に基づいて、複数のセンサからのデータを推測するモデルを生成する生成部と、複数のセンサが出力する第２データ列を取得する第２取得部と、モデルに基づいて、第２データ列に対応する推測データ列を、第２データ列および推測データ列の間の誤差をスパースにする正則化を用いて推測する推測部と、第２データ列および推測データ列の間の誤差に基づいて、第１データ列および第２データ列の間で変化が生じたセンサを特定する特定部と、を備える検出装置、検出法法、およびプログラムを提供する。
【０００５】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係る検出装置１００の構成例を複数のセンサ１０と共に示す。
【図２】本実施形態に係る検出装置１００の動作フローを示す。
【図３】本実施形態に係る検出装置１００が、複数のセンサ１０の異常度のスコアを算出するシミュレーションの結果の一例を示す。
【図４】既存の検出装置が、複数のセンサ１０の異常度のスコアを算出するシミュレーションの結果の一例を示す。
【図５】本実施形態に係る検出装置１００の変形例を複数のセンサ１０と共に示す。
【図６】本実施形態に係る検出装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係る検出装置１００の構成例を複数のセンサ１０と共に示す。ここで、センサ１０は、自動車、船舶、および航空機等の運輸機械、製造装置、または監視装置等の対象物に複数設けられ、検出結果を検出装置１００に送信する。センサ１０は、検出装置１００と有線で接続されてよく、これに代えて、無線で接続されてもよい。なお、本実施形態において、対象物が自動車である例を説明する。
【０００９】
センサ１０は、一例として、エンジンの冷却水の温度センサ、エンジンの吸入空気の温度センサ、オイル温度センサ、燃料噴射装置用の吸気管内圧力センサ、ターボチャージャ用の過給圧センサ、スロットルポジョンセンサ、ステアリング舵角センサ、車高センサ、液面センサ、回転速度センサ、ノックセンサ、加速度センサ、角速度センサ、地磁気センサ、流量センサ、酸素センサ、希薄空燃比センサ等である。センサ１０は、数百から千を超える数が設けられる場合がある。
【００１０】
この場合、数百から千を超える数の時系列データを処理しなければならないが、自動車等に設けられるセンサの時系列データは、データの値そのもの、および、センサ間の関係構造が動的に変化し、また、当該動的な変化は突発的に発生して事前に予知できうるものではない。一例として、「アクセルを踏む」という行為によって車が「加速する」する場合、スロットルポジョンセンサ、回転速度センサ、および加速度センサからの出力といったセンサ間の関係構造が強くなる。即ち、予め予測できないタイミング（例えば使用者の操作等、および自動車の状況等）により、センサ間の関係構造が動的に変化することになるので、互いに複雑な相関を有することになる。
【００１１】
また、この場合、搭乗者（荷物等の搭載量）、現在の速度、走行中の道路の勾配、直線道路を走行中か湾曲した道路を走行中か（湾曲している場合は湾曲の度合い）等の自動車の状況に応じて、各センサにおける検出出力そのもの、および検出出力を正常状態と判定すべき値の範囲が変化する。即ち、予め予測できないタイミング（例えば、使用者の操作、および自動車の状況等）により、各センサの出力、および正常か否かの判断基準が動的に変化することになる。
【００１２】
このように、同一のセンサからの時系列信号であっても、他のセンサとの関係構造が変化することに応じて、データの値および判断基準も大きく変化してしまうので、過去のデータと比較しても意味のある処理を実行することが困難になってしまう。このような場合、各センサを多変量系として扱って解析することも考えられるが、センサの数が増加するに伴い、計算量は指数関数的に増加してしまうので、数百から千を超える数のセンサを用いる場合は現実的ではない。
【００１３】
また、センサ間の関係構造の変化の度合いを推定し、推定結果に応じて、センサの異常度をスコア化することも考えられる。この場合、スコア化した異常度と、予め定められた閾値等とを比較することで、正常センサおよび異常センサを識別することができる。しかしながら、このような識別方法は、互いに複雑な相関を有するセンサの異常度をスコア化した場合、異常センサのスコアだけでなく、当該センサと強い相関を有する正常センサのスコアも異常を示す程度に大きな値として算出してしまうことがあった。
【００１４】
そこで、本実施形態に係る検出装置１００は、複数のセンサからの出力の変化を検出する検出装置であって、複数のセンサ１０の出力データを低い次元の潜在空間へとマッピングし、再び元の次元に再構成するモデルを、学習データを用いて生成する。そして、検出装置１００は、当該モデルを用いて試験データを潜在空間にマッピングし、再び元の次元に再構成する場合に、異常な振る舞いをするデータの変化が大きくなるように正則化することで、正常センサと比較して異常センサのスコアを大きくする。検出装置１００は、第１取得部１１０と、第２取得部１２０と、記憶部１３０と、生成部１４０と、推測部１５０と、特定部１６０とを備える。
【００１５】
第１取得部１１０は、複数のセンサ１０が出力する第１データ列を取得する。第１取得部１１０は、第１データ列を学習データとして取得する。また、第１取得部１１０は、検出装置１００内または外部の記憶装置に記憶された第１データ列を取得してもよい。また、第１取得部１１０は、複数のセンサ１０に接続された外部の装置が供給する第１データ列を取得してもよい。
【００１６】
第１取得部１１０は、計測対象である自動車の正常な振る舞いを示す状態における複数のセンサ１０の出力を、学習用の第１データ列として取得することが望ましい。これに代えて、第１取得部１１０は、複数のセンサ１０が出力すると想定されるデータ列を生成する予測モデルまたは測定対象装置のモデル等から、想定されたデータ列を第１データ列として取得してもよい。
【００１７】
本実施形態において、第１取得部１１０は、複数のセンサ１０が設けられた対象物である自動車が正常状態にある場合に、複数のセンサ１０が時系列に出力する第１出力に応じた第１データ列を取得する例を説明する。第１取得部１１０は、取得した第１データ列を記憶部１３０に供給する。
【００１８】
第２取得部１２０は、複数のセンサ１０が出力する第２データ列を取得する。第２取得部１２０は、第２データ列を試験データとして取得する。また、第２取得部１２０は、検出装置１００内または外部の記憶装置に記憶された第２データ列を取得してもよい。また、第２取得部１２０は、複数のセンサ１０に接続された外部の装置が供給する第２データ列を取得してもよい。
【００１９】
第２取得部１２０は、計測対象である自動車から検知された第２データ列を取得する。例えば、第２取得部１２０は、第１取得部１１０が第１データ列を取得する期間とは異なる期間における、予め定められた期間の出力を第２データ列として取得する。
【００２０】
この場合、第２取得部１２０は、自動車を動作させた場合において、複数のセンサ１０が時系列に出力するデータを、第２データ列として取得することが望ましい。本実施形態において、第２取得部１２０は、複数のセンサ１０が設けられた自動車が動作状態にある場合に、複数のセンサ１０が時系列に出力する第２出力に応じた第２データ列を取得する例を説明する。第２取得部１２０は、取得した第２データ列を記憶部１３０に供給してよい。
【００２１】
記憶部１３０は、第１取得部１１０および第２取得部１２０に接続され、受け取った第１データ列および第２データ列をそれぞれ記憶する。また、記憶部１３０は、検出装置１００が生成するデータ、および当該データ等を生成する過程において処理する中間データ等を記憶してよい。また、記憶部１３０は、検出装置１００内の各部の要求に応じて、記憶したデータを要求元に供給してよい。
【００２２】
生成部１４０は、記憶部１３０に接続され、第１データ列に基づいて、複数のセンサ１０からのデータを推測するモデルを生成する。生成部１４０は、複数のセンサ１０の動作を表現する確率モデルとして、潜在変数モデル（Ｌａｔｅｎｔ  Ｖａｒｉａｂｌｅ  Ｍｏｄｅｌ）として既知のモデルを生成する。生成部１４０は、潜在変数モデルに基づき、第１データ列から潜在変数のデータ列である第１潜在データ列を算出する。ここで、潜在変数は、直接観測される変数（物理量）ではないが、様々なデータの変動パターンを通して間接的に推測される変数であり、サンプリングされた物理量の背後にある状態等を表現する目的で用いられ、確率モデルにおいて既知の変数である。
【００２３】
生成部１４０は、複数のセンサ１０が出力する各データに対し、当該データに対応する潜在データおよび当該潜在データから推測される推測データの確率分布を表すモデルを生成する。生成部１４０は、潜在データから再構成して複数のセンサ１０の出力を推測する推測データを生成する確率モデルを生成する。生成部１４０は、生成した確率モデルを記憶部１３０に供給してよい。
【００２４】
推測部１５０は、生成部１４０が生成したモデルに基づいて、第２データ列に対応する推測データ列を、第２データ列および推測データ列の間の誤差をスパースにする正則化を用いて推測する。ここで、スパースとは、非零の成分がほとんど無い、即ち、成分のほとんどが零の行列を意味する。したがって、推測部１５０は、第２データ列および推測データ列の差の成分がほとんどが零となるように、正則化項を生成部１４０が生成したモデルに加える。
【００２５】
特定部１６０は、第２データ列および推測データ列の間の誤差に基づいて、第１データ列および第２データ列の間で変化が生じたセンサを特定する。特定部１６０は、例えば、第２データ列および推測データ列の差において、非零の成分に対応するセンサ１０を変化が生じたセンサとして特定する。
【００２６】
また、特定部１６０は、第２データ列および推測データ列の間の誤差に基づいて、異常を検出したセンサを特定してよい。特定部１６０は、第２データ列および推測データ列の差において、非零の成分に対応するセンサ１０を異常センサとして特定してよく、これに代えて、非零の成分のうち予め定められた値以上の成分に対応するセンサ１０を異常センサとして特定してもよい。
【００２７】
以上の本実施形態に係る検出装置１００は、複数のセンサ１０からの第１データ列に基づく確率モデルを生成し、当該モデルに第２データ列と第２データ列に基づく推測データがスパースとなる正則化項を加えて推測データを推測することで、異常センサを特定する。検出装置１００の動作について、図２を用いて説明する。
【００２８】
図２は、本実施形態に係る検出装置１００の動作フローを示す。検出装置１００は、当該動作フローを実行して、複数のセンサ１０のうち、少数の異常センサを正確に特定する。
【００２９】
まず、第１取得部１１０は、第１データ列を取得する（Ｓ２１０）。第１取得部１１０は、一例として、複数のセンサ１０の数がＤ個の場合、Ｎ個の１行Ｄ列のデータを第１データ列ｙｎ（ｎ＝１，２，...，Ｎ）として取得する。ここで、ｙｎは、それぞれＤ個の要素を持つベクトルであり、Ｄ次元で表現されるデータ列である。第１取得部１１０は、第１データ列のベクトルを配列の形式で受け取ってよく、また、記憶部１３０は、第１データ列のベクトルを配列の形式で記憶してよい。
【００３０】
次に、第２取得部１２０は、第２データ列を取得する（Ｓ２２０）。第２取得部１２０は、一例として、Ｍ個の１行Ｎ列のデータを第２データ列ηｍ（ｍ＝１，２，...，Ｍ）として取得する。ここで、ηｍは、それぞれＤ個の要素を持つベクトルであり、Ｄ次元で表現されるデータ列である。
【００３１】
次に、生成部１４０は、潜在変数モデルに基づき、第１データ列ｙｎから潜在空間にマッピングする潜在変数のデータ列である第１潜在データ列を算出する（Ｓ２３０）。ここで、生成部１４０は、潜在変数モデルとして、例えば、Ｇｒａｐｈｉｃａｌ  Ｇａｕｓｓｉａｎ  Ｍｏｄｅｌ（Ｇｒａｐｈｉｃａｌ  ＬＡＳＳＯ）、Ｐｒｏｂａｂｉｌｉｓｔｉｃ  ＰＣＡ（Ｐｒｉｎｃｉｐａｌ  Ｃｏｍｐｏｎｅｎｔ  Ａｎａｌｙｓｙｓ）、Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｋｅｒｎｅｌ  ＰＣＡ、Ｇａｕｓｓｉａｎ  Ｐｒｏｃｃｅｓｓ  Ｌａｔｅｎｔ  Ｖａｒｉａｂｌｅ  Ｍｏｄｅｌ等の既知のモデルを用いることができる。
【００３２】
本実施例の生成部１４０は、Ｌａｐｌａｃｉａｎ  Ｅｉｇｅｎｍａｐ  Ｌａｔｅｎｔ  Ｖａｒｉａｂｌｅ  Ｍｏｄｅｌとして既知のモデルを用いる例を説明する。生成部１４０は、当該モデルに基づき、次式を最小化することによって第１潜在データ列ｘｎを算出する。
【数１】
2015210750.tif 000003
【００３３】
ここで、「ａｒｇｍｉｎ  ｆ（ｘ）」は、ｆ（ｘ）が最小となる場合のｘを示し、「ｔｒ」は対角成分の和（トレース）を示し、「ｓｕｂｊｅｃｔ  ｔｏ  ｇ（ｚ）」は、「制約条件ｇ（ｚ）のもとで」という意味を示す。また、ベクトルＩは単位行列（ａｉｊ＝１（ｉ＝ｊ），ａｉｊ＝０（ｉ≠ｊ））、ベクトル１は、要素が全て１の行ベクトルを示す。
【００３４】
また、生成部１４０は、第１潜在データ列ｘｎを、Ｄ次元よりも低い次元の予め定められたＱ次元のデータ列として算出する。例えば、生成部１４０は、３次元または４次元等の低次元で第１潜在データ列ｘｎを算出し、複数のセンサ１０の振る舞いを当該３次元または４次元の潜在空間で表現する。数１式において、行列ＬおよびＤは次式で示される。
【数２】
2015210750.tif 000004
【００３５】
数２式において、ｗｎ，ｍはＷの要素であり、「ｄｉａｇ（ｘ）」は、対角行列を示す。また、σは予め定められるパラメータである。例えば、σをより大きくすると、ｙｎおよびｙｍの差分がσに応じて大きくならないと行列Ｗの要素であるｗｎ，ｍの値が零に近づく。また、σをより小さくすると、ｙｎおよびｙｍの差分がσに応じて小さくならないと行列Ｗの要素であるｗｎ，ｍの値がより大きな値となる。即ち、σは、ｙｎおよびｙｍの差分を行列Ｗにどの程度反映させるかを定めるパラメータとなる。
【００３６】
次に、生成部１４０は、第１データ列ｙｎ、第１潜在データ列ｘｎ、および第２データ列ηｍに基づき、第２潜在データ列χｍおよび当該第２潜在データから推測される推測データの確率分布を表すモデルを生成する（Ｓ２４０）。生成部１４０は、第２潜在データ列χｍから推測される推測データをνｍとした場合、χｍおよびνｍの同時確率密度関数ｐ（χｍ，νｍ｜ηｍ，ｙｎ）を次式のように生成する。
【００３７】
【数３】
2015210750.tif 000005
【００３８】
ここで、σｘ、σｙは、数２式のσと同様に、予め定められるパラメータである。数３式は、定数、パラメータσｘ、σｙを除くと、ｘｎとχｍのノルム、ｙｎとνｍのノルム、およびｙｎとηｍのノルムの項で示される。即ち、生成部１４０は、第２潜在データ列χｍ中の潜在データと第１潜在データ列ｘｎの各潜在データとの差分が大きいほど確率が低くなり、推測データ列νｍ中の推測データと第１データ列ｙｎの各データとの差分が大きいほど確率が低くなり、かつ、第２データ列ηｍ中のデータと第１データ列ｙｎの各データとの差分が大きいほど確率が低くなる確率分布を表すモデルを生成する。このように、生成部１４０は、ｘｎとχｍ、ｙｎとνｍ、およびｙｎとηｍの各データの値が互いに近づくと、χｍおよびνｍの同時確率密度関数ｐが大きくなるモデルを生成する。
【００３９】
推測部１５０は、このような既知の潜在変数モデルにおいて、観測値である試験データに基づき、スパース正則化を用いて再構成して推測データ列を推測する（Ｓ２５０）。例えば、推測部１５０は、第２データ列ηｍおよび推測データ列νｍの間の誤差を一部のセンサ１０からのデータ列に集中させる正則化を用いて推測データ列νｍを算出する。
【００４０】
即ち、推測部１５０は、第２データ列ηｍ中のデータと推測データ列νｍ中の推測データとの差分が大きいほど確率を低くさせる正則化項を用いて推測データ列νｍを算出する。推測部１５０は、このような正則化項を用いて同時確率密度関数ｐを最適化して第２潜在データ列χｍに対応する推測データ列νｍを算出すると、第２データ列ηｍとほぼ一致するデータ列を再構成することになる。
【００４１】
ここで、第２データ列ηｍは、ほとんどのセンサ１０が正常動作する場合に取得したデータ列であるから、推測部１５０が推測した推測データ列νｍは、正常センサのＮ次元超空間における振る舞いを示す出力データ列とほぼ一致することになる。したがって、推測部１５０は、第２データ列ηｍから推測されるデータのうち、異常センサに対応するデータが正常センサに対応するデータとは異なる振る舞いとなるように（即ち、誤差が大きくなるように）、推測データ列νｍを算出する。
【００４２】
また、推測部１５０は、第２データ列ηｍおよび推測データ列νｍの間の誤差を各センサについて時間方向において集中させる正則化を用いて推測データ列を算出してもよい。例えば、推測部１５０は、推測データ列νｍ中の推測データと、以前に推測した推測データ列νｍ−１中の推測データとの差分が大きいほど確率を低くさせる正則化項を用いて推測データ列を算出する。推測部１５０は、このような正則化項を用いて推測データ列νｍを算出すると、以前に推測した推測データ列νｍ−１とほぼ一致するデータ列を再構成することになる。
【００４３】
ここで、第２データ列ηｍは、ほとんどのセンサ１０が正常動作する場合に取得したデータ列であるから、推測部１５０が推測した推測データ列νｍは、以前に推測した推測データ列νｍ−１のデータのうち、時間的に安定に正常動作するセンサ１０の振る舞いを示す出力データとほぼ一致することになる。したがって、推測部１５０は、以前に推測した推測データ列νｍ−１と比較して、異常センサに対応するデータが正常センサに対応するデータとは異なる振る舞いとなるように（即ち、誤差が大きくなるように）、推測データ列νｍを算出する。
【００４４】
また、推測部１５０は、第２データ列ηｍおよび推測データ列νｍの間の誤差を一部のセンサ１０からのデータ列に集中させ、更に、第２データ列ηｍおよび推測データ列νｍの間の誤差を各センサについて時間方向において集中させる正則化を用いて推測データ列を算出してもよい。即ち、推測部１５０は、第２データ列ηｍ中のデータと推測データ列νｍ中の推測データとの差分が大きいほど確率を低くさせ、かつ、推測データ列νｍ中の推測データと、以前に推測した推測データ列νｍ−１中の推測データとの差分が大きいほど確率を低くさせる正則化項を用いて推測データ列νｍを算出する。
【００４５】
以上のように、推測部１５０は、正則化に応じた項を用いて、推測データ列νｍを算出する。より具体的には、次式のように、推測部１５０は、第２データ列ηｍの潜在変数のデータ列である第２潜在データ列χｍ中の潜在データおよび推測データ列νｍ中の対応する推測データの値を取る確率を第２データ列ηｍについて合計した項と、正則化に応じた項とを含む目的関数を最適化する第２潜在データ列および推測データ列を推測する。
【数４】
2015210750.tif 000006
【００４６】
数４式の右辺の第１項は、数３式に示したχｍおよびνｍの同時確率密度関数ｐ（χｍ，νｍ｜ηｍ，ｙｎ）を、テストデータである第２データ列ηｍについて合計した項である。また、第２項は、正則化に応じた項である。推測部１５０は、一例として、正則化に応じた項として、次式に示す正則化項を用いる。
【数５】
2015210750.tif 000007
【００４７】
数５式の右辺の第１項は、第２データ列ηｍ中のデータと推測データ列νｍ中の推測データとの差分が大きいほど確率を低くさせる正則化項であり、各次元の値を２乗した和に基づいて算出する。また、第２項は、推測データ列νｍ中の推測データと、以前に推測した推測データ列νｍ−１中の推測データとの差分が大きいほど確率を低くさせる正則化項であり、各次元の値の絶対値の和（Ｌ１ノルム）に基づいて算出する。
【００４８】
ここで、λ１およびλ２は、用いる正則化項の重みを定めるパラメータである。例えば、λ１＝１、かつλ２＝０とすることで、推測部１５０は、数５式の第１項の正則化を用いることになる。また、λ１＝０、かつλ２＝１とすることで、推測部１５０は、第２項の正則化を用いることになる。また、λ１≠０、かつλ２≠０とすることで、両者の正則化を用いることになる。λ１およびλ２は、目的に応じて予め定められてよく、これに代えて、検出装置１００の実際の検出結果に応じて調節されてもよい。
【００４９】
以上のように、推測部１５０は、数５式の正則化項を用いて、数４式の目的関数を最適化する（即ち、目的関数を最小化させるχｍおよびνｍを取得する）ことで、第２潜在データ列χｍ'および推測データ列νｍ'を算出することができる。ここで、数４式の左辺の「'」は、最適化して定めた値の意味を示す。
【００５０】
次に、特定部１６０は、第１データ列ｙｎおよび第２データ列ηｍの間で変化が生じたセンサを特定する（Ｓ２６０）。特定部１６０は、例えば、次式で示す第２データ列ηｍおよび推測データ列νｍ'の差に基づくスコアが、非零となる成分に対応するセンサ１０を変化が生じたセンサとして特定する。
【数６】
2015210750.tif 000008
【００５１】
特定部１６０は、数６式のスコア関数に代えて、個々の次元ｄ（最大値はＤ）における第２データ列ηｍおよび推測データ列νｍ'の差分をスコア値としてもよく、また、数６式の右辺を次元ｄについて総和を取った式をスコア関数としてもよい。特定部１６０は、スコアが非零または予め定められた値以上のセンサ１０を、異常センサと特定してよい。推測部１５０が、第２データ列ηｍに基づき、正常センサおよび異常センサにそれぞれ対応するデータ間の誤差を大きくさせた推測データ列νｍ'を算出するので、特定部１６０は、異常センサのみを特定することができる。
【００５２】
また、本実施形態に係る検出装置１００は、センサ１０の数が例えば百以上に増加しても、第１データ列ｙｎおよび第２データ列ηｍの次元数Ｄを対応して増加して処理することが容易にできる。したがって、検出装置１００は、物理システムにおいて互いに複雑な相関を有するセンサが、例えば百以上存在しても、異常な信号範囲となるセンサ１０のみを判断することができる。
【００５３】
図３は、本実施形態に係る検出装置１００が、複数のセンサ１０の異常度のスコアを算出するシミュレーションの結果の一例を示す。また、図４は、既存の検出装置が、センサの異常度のスコアを算出するシミュレーションの結果の一例を示す。図３および図４は、３０個の質点がバネで接続された物理モデルについて、それぞれの質点の位置を検出する複数のセンサの出力についてシミュレーションした結果を示す。複数の質点が複数のバネで接続されているので、それぞれの質点の位置は複雑に変動し、対応するセンサも複雑な相関を有する検出結果を出力する。
【００５４】
図３および図４の横軸は、それぞれの質点を検出するセンサを示し、縦軸は、センサに対応して算出されたスコア値である。また、図３および図４は、質点３のみが正常な振る舞いからずれている状態において、検出装置が複数のセンサをスコア化する場合をシミュレーションした結果を示す。
【００５５】
図３は、本実施形態に係る検出装置１００が複数のセンサ１０の異常度のスコアを算出した結果を示し、質点３を検出するセンサのみが、他のセンサと比較して明確に高いスコアとなっていることがわかる。これに対して、図４は、既存の検出装置が、センサの異常度のスコアを算出した結果であり、質点３のスコア値が高くなってはいるものの、質点３と相関の強い他の質点のスコア値も高い結果となっている。
【００５６】
既存の検出装置は、例えば、学習データから予測モデルを生成する場合において、正則化項を用いてモデルを学習し、当該学習済みのモデルを用いて試験データに対応する異常センサを検出する。したがって、一のセンサが異常を出力し、かつ、当該一のセンサに影響されて、当該一のセンサと相関の強いセンサも通常とは異なる検出結果を出力している試験データを用いると、既存の検出装置は、学習データに基づく予測の範囲を超える結果として、図４のように、当該一のセンサに加え、当該相関の強いセンサも高いスコア値を出力してしまうことがある。
【００５７】
これに対して、本実施形態に係る検出装置１００は、学習段階ではなく、試験データを用いて再構成する段階において、正則化項を用いて推測データ列を算出する。したがって、検出装置１００は、一のセンサが異常を出力する場合に、当該一のセンサに影響されて、当該一のセンサと相関の強い他のセンサが通常とは異なる検出結果を出力しても、図３のように、当該他のセンサの出力は試験データに基づく正常動作の範囲内とすることができ、当該一のセンサのみを高いスコア値として出力することができる。
【００５８】
図５は、本実施形態に係る検出装置１００の変形例を複数のセンサ１０と共に示す。本変形例の検出装置１００において、図１に示された本実施形態に係る検出装置１００の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例に係る検出装置１００は、調整部２１０を更に備える。
【００５９】
調整部２１０は、記憶部１３０、推測部１５０および特定部１６０に接続され、特定部１６０が特定するセンサ１０が、既知の変化が生じたセンサ１０と一致するように推測部１５０が用いる正則化の重みλ１およびλ２を調整する。この場合、第２取得部１２０は、第１データ列ｙｎに対し、変化が生じたセンサが既知である第２データ列ηｍを取得する。そして、検出装置１００が、当該第１データ列ｙｎおよび第２データ列ηｍに基づいて、図２の動作フローを実行して異常センサを特定した後に、調整部２１０は、特定部１６０の特定結果と既知のセンサの変化情報とが対応するように、λ１およびλ２の値を調整する。
【００６０】
調整部２１０は、λ１およびλ２の値を更新して、λ１およびλ２の値の調整を複数回繰り返すループ処理を実行してもよい。このように、本変形例に係る検出装置１００は、正則化の重みを実際の特定結果に基づいて調整することができるので、より正確にセンサの異常度をスコア化することができる。
【００６１】
本実施形態に係る検出装置１００の変形例は、調整部２１０が正則化の重みλ１およびλ２の値を調整することを説明した。これに代えて、またはこれに加えて、調整部２１０は、パラメータσ、σｘ、およびσｙの値を調整してもよい。これによって、検出装置１００は、パラメータ調整を容易に実行して、センサ１０のスコアの精度を高めることができる。
【００６２】
図６は、本実施形態に係る検出装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、および表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、およびＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０を有するレガシー入出力部と、を備える。
【００６３】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００およびグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０およびＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６４】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラムおよびデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ−ＲＯＭ２０９５からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６５】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、および／または、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６６】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５、またはＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６７】
プログラムは、コンピュータ１９００にインストールされ、コンピュータ１９００を第１取得部１１０、第２取得部１２０、記憶部１３０、生成部１４０、推測部１５０、特定部１６０、および調整部２１０として機能させる。
【００６８】
プログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である第１取得部１１０、第２取得部１２０、記憶部１３０、生成部１４０、推測部１５０、特定部１６０、および調整部２１０として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の検出装置１００が構築される。
【００６９】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、またはＤＶＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置または通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７０】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、および／または記憶装置に含まれるものとする。
【００７１】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（または不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７２】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７３】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５の他に、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）、またはＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７５】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７６】
１０  センサ、１００  検出装置、１１０  第１取得部、１２０  第２取得部、１３０  記憶部、１４０  生成部、１５０  推測部、１６０  特定部、２１０  調整部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ−ＲＯＭ
【図１】
2015210750.tif 000009
【図２】
2015210750.tif 000010
【図３】
2015210750.tif 000011
【図４】
2015210750.tif 000012
【図５】
2015210750.tif 000013
【図６】
2015210750.tif 000014