(57)【要約】【課題】異常値のサンプルデータを学習に用いることなく異常値を検出するための技術を提供する。【解決手段】  情報処理装置は、所定の属性に属する複数のデータの夫々に対し、第１の値または第２の値を割り当てる割当部と、前記複数のデータのうち前記第１の値が割り当てられた第１データと、前記複数のデータのうち前記第２の値が割り当てられた第２データと、を教師データとして、入力データが前記所定の属性に属するか否かを判定するためのモデルの学習を行う学習部と、を含む。【選択図】図５
2020154406.tif 000002
【特許請求の範囲】
【請求項１】
所定の属性に属する複数のデータの夫々に対し、第１の値または第２の値を割り当てる割当部と、
前記複数のデータのうち前記第１の値が割り当てられた第１データと、前記複数のデータのうち前記第２の値が割り当てられた第２データと、を教師データとして、入力データが前記所定の属性に属するか否かを判定するためのモデルの学習を行う学習部と、
を含むことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記割当部は、
前記複数のデータの夫々に対し、前記第１の値または前記第２の値をランダムに割り当てること、
を特徴とする情報処理装置。
【請求項３】
請求項１または請求項２に記載の情報処理装置であって、
前記モデルは、非線形の分類モデルまたは非線形の回帰モデルであること、
を特徴とする情報処理装置。
【請求項４】
コンピュータが、
所定の属性に属する複数のデータの夫々に対し、第１の値または第２の値を割り当てる割当処理と、
前記複数のデータのうち前記第１の値が割り当てられた第１データと、前記複数のデータのうち前記第２の値が割り当てられた第２データと、を教師データとして、入力データが前記所定の属性に属するか否かを判定するためのモデルの学習を行う学習処理と、
を実行する、モデルの学習方法。
【請求項５】
所定の属性に属する複数のデータのうち第１の値が割り当てられた第１データと、前記複数のデータのうち第２の値が割り当てられた第２データと、を教師データとして学習された、入力データが前記所定の属性に属するか否かを判定するためのモデルを記憶する記憶部と、
前記入力データと、前記モデルとに基づいて、前記入力データが前記所定の属性に属するか否かを判定するための値を計算する計算部と、
前記値が、前記第１の値以下の第１閾値と前記第２の値以上の第２閾値とで定まる所定の範囲に含まれる場合、前記入力データが前記所定の属性に属すと判定し、前記値が、前記所定の範囲に含まれない場合、前記入力データが前記所定の属性に属さないと判定する判定部と、
を含むことを特徴とする判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、判定装置、およびモデルの学習方法に関する。
【背景技術】
【０００２】
複数のデータから異常値を検出する際には、正常値と、異常値とを教師データとして構築されたモデルが用いられることがある（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１９−１６２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、異常値を教師データとして用いるためには、異常値のサンプルを多く収集する必要がある。しかしながら、一般に異常値は、例えば、機器やシステムが正常に動作していない場合に出力される値等であるため、異常値のサンプルを多く収集することは難しい。
【０００５】
本発明は、上記のような従来の問題に鑑みてなされたものであって、異常値のサンプルを学習に用いることなく、異常値を検出するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前述した課題を解決する主たる本発明は、所定の属性に属する複数のデータの夫々に対し、第１の値または第２の値を割り当てる割当部と、前記複数のデータのうち前記第１の値が割り当てられた第１データと、前記複数のデータのうち前記第２の値が割り当てられた第２データと、を教師データとして、入力データが前記所定の属性に属するか否かを判定するためのモデルの学習を行う学習部と、を含むこと情報処理装置である。
【発明の効果】
【０００７】
本発明によれば、異常値のサンプルを学習に用いることなく、異常値を検出するための技術を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】異常検知システム１０の構成を示す図である。
【図２】学習装置２０のハードウェア構成の一例を示す図である。
【図３】データセット４１の一例を示す図である。
【図４】学習装置２０に実現される機能ブロックの一例を示す図である。
【図５】学習装置２０で実行される処理の一例を示すフローチャートである。
【図６】データセット４３の一例を示す図である。
【図７】関数ｙについて説明するための図である。
【図８】関数ｙについて説明するための図である。
【図９】判定装置２１のハードウェア構成の一例を示す図である。
【図１０】判定装置２１に実現される機能ブロックの一例を示す図である。
【図１１】判定装置２１で実行される処理の一例を示すフローチャートである。
【図１２】判定処理Ｓ２０２で実行される内容を説明するための図である。
【図１３】ショーケース３００の異常検知の実証例を示す図である。
【発明を実施するための形態】
【０００９】
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
【００１０】
＝＝＝＝＝本実施形態＝＝＝＝＝
＜＜＜異常検知システム１０の構成＞＞＞
図１は、本発明の一実施形態である異常検知システム１０の構成を示す図である。異常検知システム１０は、例えば、商業施設に設置されたショーケース３００の異常を検知するためのシステムであり、学習装置２０、判定装置２１を含む。
【００１１】
ショーケース３００は、例えば、食品等を冷却し、保管するためのケースである。ショーケース３００には、ショーケース３００の状態を観測するセンサ３１０が、例えば１０個取り付けられている。なお、図１では、便宜上、１０個のセンサ３１０は、１つのブロックとして描かれている。
【００１２】
そして、異常検知システム１０は、１０個のセンサの夫々から出力されるデータｘ１〜ｘ１０の値が、異常値となると、ショーケース３００の異常を検知する。なお、ここでは、「異常値」の例として、物理的な異常を要因とする異常の値や数値的な異常の値、またセンサ異常を起因とした異常値、また、異常判定ではないようなシステムに適用する場合には、通常とは異なる挙動を表す値のことが挙げられる。また、以下、ショーケース３００の動作が正常である際のデータを、「正常データ」または「正常なデータ」と称し、ショーケース３００の動作が異常である際のデータを、「異常データ」または「異常なデータ」と称する。
【００１３】
学習装置２０（情報処理装置）は、正常なデータｘ１〜ｘ１０に基づいて、ショーケース３００に異常が有るか否かを判定するためのモデル、つまり、データｘ１〜ｘ１０の異常値を検出するためのモデルを機械学習によって構築する。
【００１４】
判定装置２１は、運転中のショーケース３００から出力されるデータｘ１〜ｘ１０と、学習装置２０で構築されたモデルとに基づいて、ショーケース３００に異常が有るか否かを判定する。なお、学習装置２０と、判定装置２１とは、ネットワーク２５を介して接続されている。
【００１５】
＜＜＜学習装置２０について＞＞＞
＝＝学習装置２０の構成＝＝
図２は、学習装置２０のハードウェア構成の一例を示す図である。学習装置２０は、ＣＰＵ（Central Processing Unit）３０、メモリ３１、記憶装置３２、入力装置３３、表示装置３４、及び通信装置３５を含むコンピュータである。
【００１６】
ＣＰＵ３０は、メモリ３１や記憶装置３２に格納されたプログラムを実行することにより、学習装置２０における様々機能を実現する。
【００１７】
メモリ３１は、例えばＲＡＭ（Random-Aaccess Mmemory）等であり、プログラムやデータ等の一時的な記憶領域として用いられる。
【００１８】
記憶装置３２は、ＣＰＵ３０によって実行あるいは処理される制御プログラム４０やデータセット４１等の各種のデータを格納する不揮発性の記憶装置である。
【００１９】
制御プログラム４０は、学習装置２０が有する各種機能を実現するためのプログラムを総称しており、例えば、ＯＳ（Operating System）等を含む。
【００２０】
データセット４１は、図３に示すように、ショーケース３００からセンサで取得するデータｘ１〜ｘ１０である。ここで、データｘ１は、例えば、ショーケース３００の所定の場所に取り付けられた温度センサからの出力であり、データｘ２は、ショーケース３００内のコンプレッサの圧力を計測する圧力センサからの出力である。また、データｘ１０は、例えば、コンプレッサの冷媒の流量を計測する流量計からの出力である。なお、データｘ３〜ｘ９についても、ｘ１，ｘ２等と同様であるため、ここでは詳細な説明は省略する。また、データセット４１は、予め記憶装置３２に格納されていることとする。
【００２１】
学習モデル４２は、ショーケース３００に異常が有るか否かを、データｘ１〜ｘ１０から判別するための判別式、あるいは数式（以下、まとめて「関数ｙ」と称する。）を含んで構成される。学習モデル４２の学習が行われると、“関数ｙ”の係数等が調整され、異常検出の精度が変化する。なお、本実施形態において、学習モデル４２の“関数ｙ”は、ｙ＝ｆ（ｘ１，ｘ２，〜，ｘ１０）と表される。
【００２２】
入力装置３３は、ユーザによるコマンドやデータの入力を受け付ける装置であり、キーボード、タッチパネルディスプレイ上でのタッチ位置を検出するタッチセンサなどの入力インタフェースを含む。
【００２３】
表示装置３４は、例えばディスプレイなどの装置であり、通信装置３５は、ネットワーク２５を介して、判定装置２１や他のコンピュータと各種プログラムやデータの受け渡しを行う。
【００２４】
＝＝機能ブロック＝＝
図４は、学習装置２０に実現される機能ブロックの一例を示す図である。学習装置２０のＣＰＵ３０が、制御プログラム４０を実行することにより、学習装置２０には、取得部５０、割当部５１、及び学習部５２が実現される。
【００２５】
取得部５０は、記憶装置３２に格納されたデータセット４１を取得し、割当部５１は、データセット４１に含まれるデータに、“０（第１の値）”または“１（第２の値）”の２値をランダムに割り当てる。ここで、“０”または“１”は、教師あり学習の機械学習を行うために必要な「ラベル」に相当する。つまり、割当部５１は、データセット４１に含まれるデータに対し、０”または“１”の“ラベル”をランダムに付与して教師データを生成していることになる。
【００２６】
学習部５２は、割当部５１により“０”が割り当てられたデータＤ１と、“１”が割り当てられたデータＤ２とを教師データとし、学習モデル４２の学習を行う。具体的には、学習部５２は、データＤ１，Ｄ２に対し、例えば、サポートベクター回帰を実行することにより“関数ｆ”を求める。
【００２７】
なお、ここでは、学習部５２は、サポートベクター回帰を実行することとしたが、他の非線形の回帰分析（例えば、非線形最小二乗法、多項式回帰）を用いても良く、非線形分類（例えば、サポートベクターマシン）を実行しても良い。また、例えば、学習モデル４２としてニューラルネットワークモデルを用いても良く、そのような場合、学習部５２は、ニューラルネットワークモデルのパラメータを、教師データ（データＤ１，Ｄ２）に基づいて定めることになる。この結果、本実施形態における学習モデル４２は、非線形の回帰モデルまたは、非線形の分類モデルとなる。以下、各機能ブロックが実行する処理の一例を、図５を参照しつつ説明する。
【００２８】
＜＜学習処理Ｓ１０＞＞
まず、取得部５０は、記憶装置３２に格納されたデータセット４１を取得する（Ｓ２０）。そして、割当部５１は、データセット４１に含まれるデータに、“０”または“１”をランダムに割り当てる（Ｓ２１：割当処理）。例えば、割当部５１は、データセット４１の時刻ｔ１のデータ（ｘ１，〜，ｘ１０）に、“０”を対応させて記憶させ、データセット４１を更新する。この結果、図６に示すように、記憶装置３２において、値が割り当てられた後のデータセット４３の時刻ｔ１のデータは、ラベルとして“０”が付与されたデータ（ｘ１，〜，ｘ１０，ｙ）＝（３０．１，〜，３５．２，０）となる。
【００２９】
また、割当部５１は、データセット４１の時刻ｔ２のデータ（ｘ１，〜，ｘ１０）に、“１”を対応させて記憶させ、データセット４１を更新する。以下、他の時刻においても、時刻ｔ１，ｔ２と同様であるため、詳細な説明は省略する。
【００３０】
そして、学習部５２は、割当部５１により“０”が割り当てられたデータＤ１（第１データ）と、“１”が割り当てられたデータＤ２（第２データ）とを教師データとし、学習モデル４２の学習を行い、“関数ｆ”を求める（Ｓ２２：学習処理）。
【００３１】
図７及び図８は、“関数ｆ”について説明するための図である。なお、本実施形態では、データセット４１の各時刻のデータは、１０個のデータ（ｘ１〜ｘ１０）を含むが、便宜上、図７ではデータがｘ１の１個の場合の“関数ｆ”を説明し、図８ではデータがｘ１，ｘ２の２個の場合の“関数ｆ”を説明する。
【００３２】
図７において、変数ｘ１の正常なデータは、例えば“ａ０”〜“ａ１”の範囲Ａに含まれることとする。また、範囲Ａのデータｘ１のうち、“０”が割り当てられたデータＤ１は、ｙ＝０の直線上にプロットされ、“１”が割り当てられたデータＤ２は、ｙ＝１の直線上にプロットされる。
【００３３】
このような場合に、学習部５２により、非線形の回帰分析（または、非線形の分類）が実行されると、例えば、“関数ｆｆ（ｘ１）”の出力（値）ｙは、データｘ１が“ａ０”〜“ａ１”の範囲において、“０”〜“１”の間で変化する。また、“関数ｆ（ｘ１）”の出力ｙは、データｘ１が“ａ０”より小さい領域では、“１”より大きくなり、データｘ１が“ａ１”より大きい領域では、“０”より小さくなる。
【００３４】
図８では、正常なデータ（ｘ１，ｘ２）は、例えば、ｘ１軸とｘ２軸とを含むｘ１−ｘ２平面の領域Ｂに含まれることとする。領域Ｂのデータ（ｘ１，ｘ２）のうち、“０”が割り当てられたデータＤ１は、ｙ＝０のｘ１−ｘ２平面の領域Ｃにプロットされ、“１”が割り当てられたデータＤ２は、ｙ＝１のｘ１−ｘ２平面の領域Ｄにプロットされる。
【００３５】
このような場合に、学習部５２により、非線形の回帰分析（または、非線形の分離）が実行されると、例えば、領域Ｃ，Ｄの間で“０”〜“１”の値で変化し、領域Ｃ，Ｄ以外の領域では大きく値が変化する“関数ｆ（ｘ１，ｘ２）”が求められる。
【００３６】
つまり、処理Ｓ２２で求められる“関数ｆ（ｘ１，〜，ｘ１０）”は、正常データが入力されると、例えば“０”〜“１”の間の値を出力し、異常データが入力されると、“０”〜“１”から大きく離れた値を出力する関数である。このような“関数ｆ”を用いることにより、データｘ１〜ｘ１０の“異常値”が把握できるため、ショーケース３００の異常検知が可能となる。
【００３７】
＜＜＜判定装置２１について＞＞＞
＝＝判定装置２１の構成＝＝
図９は、判定装置２１のハードウェア構成の一例を示す図である。判定装置２１は、ＣＰＵ７０、メモリ７１、記憶装置７２、入力装置７３、表示装置７４、及び通信装置７５を含むコンピュータである。なお、判定装置２１のハードウェア構成は、学習装置２０のハードウェア構成と同様であるため、ここでは詳細な説明は省略する。
【００３８】
記憶装置７２（記憶部）は、学習モデル４２、判定プログラム８０、及び判定データ８１を記憶する。学習モデル４２は、学習装置２０で構築されたモデルである。
【００３９】
判定プログラム８０は、制御プログラム４０と同様に、判定装置２１が有する各種機能を実現するためのプログラムを総称している。
【００４０】
判定データ８１は、ショーケース３００に異常が有るか否かを判定した判定結果を示すデータである。
【００４１】
＝＝機能ブロック＝＝
図１０は、判定装置２１に実現される機能ブロックの一例を示す図である。判定装置２１のＣＰＵ７０が、判定プログラム８０を実行することにより、判定装置２１には、取得部１００、計算部１０１、及び判定部１０２が実現される。
【００４２】
取得部１００は、センサ３１０から出力されるデータｘ１〜ｘ１０を、所定間隔毎（例えば、３０秒毎）に取得する。
【００４３】
計算部１０１は、取得部１００が取得したデータ（以下、「取得データ」と称する。）と、記憶装置７２に記憶された学習モデル４２とに基づいて、学習モデル４２を示す“関数ｆ”の出力（関数ｆの値）を計算する。
【００４４】
判定部１０２は、計算部１０１が計算した“関数ｆ”の値が、例えば“０”より小さい閾値Ｔ１（第１閾値）と、“１”より大きい閾値Ｔ２（第２閾値）との間の範囲Ｆに入る場合、取得データが正常データであると判定し、範囲Ｆに入らない場合、取得データが異常データであると判定する。以下、各機能ブロックの詳細を、判定装置２１で実行される判定処理とともに説明する。
【００４５】
＜＜判定処理Ｓ１００＞＞
まず、図１１に示すように、取得部１００は、センサ３１０からのデータｘ１〜ｘ１０を取得する（Ｓ２００）。そして、計算部１０１は、取得データ（ｘ１，〜，ｘ１０）と、学習モデル４２として得られた関数ｆ（ｘ１，〜，ｘ１０））と、に基づいて、“関数ｆ”の出力ｙを計算する（Ｓ２０１）。
【００４６】
判定部１０２は、“出力ｙ”の値が、閾値Ｔ１〜Ｔ２の範囲Ｆに入るか否かを判定する（Ｓ２０２）。図１２は、処理Ｓ２０２で実行される内容を説明するための図である。なお、“関数ｆ”の値は、１０個のデータｘ１〜ｘ１０に基づいて定まるが、図１２では、便宜上、１つの変数（データｘ１）を用いて説明している。
【００４７】
計算された“出力ｙ”値が、例えば図１２の“Ｐ１（Ｔ１＜Ｐ１＜Ｔ２）”である場合、つまり、“出力ｙ”の値が範囲Ｆに入る場合（Ｓ２０２：Ｙｅｓ）、判定部１０２は、取得データは、正常データであると判定する（Ｓ２０３）。
【００４８】
一方、計算された“関数ｆ”値が、例えば図１２の“Ｐ２（Ｔ１＞Ｐ２”）である場合、つまり、“出力ｙ”の値が範囲Ｆに入らない場合（Ｓ２０２：Ｎｏ）、判定部１０２は、取得データは、異常データであると判定する（Ｓ２０４）。そして、判定部１０２は、処理Ｓ２０３，２０４の判定結果を、記憶装置７２に格納し、判定データ８１を更新する（Ｓ２０５）。
【００４９】
＜＜実証結果＞＞
図１３は、ショーケース３００に実際に故障（例えば、冷媒漏れ）が発生した際の、判定装置２１の判定結果の一例である。
【００５０】
まず、１月〜２月においては、ショーケース３００は正常に動作しているため、計算部１０１の計算結果である“出力ｙ”の値は、基本的に範囲Ｆに入っている。このため、この期間においては、取得データ（ｘ１〜ｘ１０）が、異常データであるとの判定結果は基本的に出力されていない。なお、１月〜２月の間に１回だけ“出力ｙ”の値が閾値Ｔ１となり、異常検出がされているが、これはノイズ等の影響によるものである。
【００５１】
そして、２月に入り、ショーケース３００のコンプレッサー（不図示）から冷媒漏れが発生すると、計算部１０１の計算結果が、範囲Ｆを超える回数が増加する。この結果、特に２月中旬以降、判定部１０２が、取得データ（ｘ１〜ｘ１０）が、異常データであるとの判定結果を出力する回数も増加する。
【００５２】
２月末に、冷媒漏れが修理されると、ショーケース３００は再び正常に動作するため、計算部１０１の計算結果は、範囲Ｆに収まる。この結果、判定部１０２は、取得データ（ｘ１〜ｘ１０）は、正常データであるとの判定結果を出力する。
【００５３】
＝＝＝まとめ＝＝＝
以上、本実施形態の異常検知システム１０について説明した。学習装置２０の割当部５１は、正常なデータを含むデータセット（所定の属性に属する複数のデータ）に対し、“０”または“１”を割り当てて、教師データを生成する（例えば、処理Ｓ２１）。そして、学習部５２は、入力されるデータｘ１〜ｘ１０（入力データ）が、正常なデータ（所定の属性のデータ）であるか否かを判定するための学習モデル４２の学習を、教師データを用いて行う（例えば、処理Ｓ２２）。このため、本実施形態では、異常なサンプルデータを用いることなく、異常なデータ（異常値）を検出するための学習モデル４２を構築できる。さらに、本実施形態では、学習モデル４２の学習を行う際に、様々な回帰、分類を用いることができる。このため、一般的な異常値検出方法（例えば、One Class SVM）を用いる場合と比較して、学習モデル４２が適用される分野等に合わせ、最適な学習モデル４２を構築できる。
【００５４】
また、例えば、割当部５１は、データセット４１に含まれるデータに、“０”または“１”を割り当てる際、所定のパターンに従って２値を割り当てても良い。なお、「所定のパターン」とは、例えば、“０”を１００個割り当てた後に、“１”を１００個割り当てる等、割り当てる値の個数や順番を決めて割り当てることをいう。一般に、データセット４１に含まれるデータは、例えば時系列で取得されたデータであることが多い。したがって、割り当てる値の個数や順番を決めると、ノイズ等の影響を受けたデータの多くに同じ値が割り当てられることがある。本実施形態では、割当部５１は、ランダムに２値を割り当てるため、データがノイズの影響を受けることを抑制できる。
【００５５】
また、学習モデル４２は、線形の分類モデル、または線形の回帰モデルであっても良い。ただし、線形のモデルが用いられた場合、一般に、正常なデータが入力された際の“出力ｙ”の値と、異常なデータが入力された際の“出力ｙ”の値との差が小さくなる。本実施形態では、学習モデル４２として、非線形の分類モデルまたは、非線形の回帰モデルを用いている。したがって、一般に、正常なデータが入力された際の“出力ｙ”の値と、異常なデータが入力された際の“出力ｙ”の値との差が大きくなるため、精度良く異常データ（異常値）を検出できる。
【００５６】
また、判定装置２１は、正常なデータで構築された学習モデル４２を用いることにより、異常なデータの有無を判定できる。したがって、異常なデータを多く収集することが困難な場合であっても、異常なデータの検知が可能となる。
【００５７】
上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。また、本発明は、その趣旨を逸脱することなく、変更や改良され得るとともに、本発明にはその等価物が含まれるのはいうまでもない。
【００５８】
例えば、本実施形態のデータは、ショーケース３００のセンサ３１０から出力されるデータｘ１〜ｘ１０であったが、これに限られない。例えば、２値を割り当てるデータは、他の機器に設けられたセンサの出力や、サーバのアクセスログ等のデータであっても良い。このようなデータであっても、モデルの学習を行うことにより、異常値を検出することができる。
【００５９】
また、割当部５１は、データセット４１に含まれるデータに、“０”または“１”を割り当てることとしたが、これらの値に限られない。例えば、割当部５１は、データに“−１”または“１”等、異なる２つの値を割り当てればよい。
【００６０】
また、範囲Ｆを定める閾値Ｔ１は、“０”より小さく、閾値Ｔ２は“１”より大きいこととしたが、これに限られない。例えば、閾値Ｔ１は、“０”以上であり、閾値Ｔ２は“１”以下であっても良い。このような場合であっても、異常値を検出することは可能である。
【符号の説明】
【００６１】
１０  異常検知システム
２０  学習装置
２１  判定装置
２５  ネットワーク
３０，７０  ＣＰＵ
３１，７１  メモリ
３２，７２  記憶装置
３３，７３  入力装置
３４，７４  表示装置
３５，７５  通信装置
４０  制御プログラム
４１，４３  データセット
４２  学習モデル
５０，１００  取得部
５１  割当部
５２  学習部
８０  判定プログラム
８１  判定データ
１０１  計算部
１０２  判定部
【図１】
2020154406.tif 000003
【図２】
2020154406.tif 000004
【図３】
2020154406.tif 000005
【図４】
2020154406.tif 000006
【図５】
2020154406.tif 000007
【図６】
2020154406.tif 000008
【図７】
2020154406.tif 000009
【図８】
2020154406.tif 000010
【図９】
2020154406.tif 000011
【図１０】
2020154406.tif 000012
【図１１】
2020154406.tif 000013
【図１２】
2020154406.tif 000014
【図１３】
2020154406.tif 000015