(57)【要約】【課題】入力データを分類するモデルの精度の低下を抑制しつつ、入力データを分類する際の計算量を軽減可能な技術を提供する。【解決手段】  情報処理装置は、複数の属性の何れかに属する複数のデータを、前記複数の属性毎に複数のクラスタにグループ化するクラスタリング部と、前記複数のクラスタの夫々に含まれるデータを、少なくとも一つ取得する取得部と、前記取得部が取得したデータに基づいて、入力データが前記複数の属性の何れに属するかを分類するためのモデルを学習する学習部と、を含む。【選択図】図５
2020205026.tif 000002
【特許請求の範囲】
【請求項１】
複数の属性の何れかに属する複数のデータを、前記複数の属性毎に複数のクラスタにグループ化するクラスタリング部と、
前記複数のクラスタの夫々に含まれるデータを、少なくとも一つ取得する取得部と、
前記取得部が取得したデータに基づいて、入力データが前記複数の属性の何れに属するかを分類するためのモデルを学習する学習部と、
を含むことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記複数のクラスタの夫々の中心を計算する計算部を含み、
前記取得部は、
前記複数のクラスタの夫々から、前記中心を示すデータを取得すること、
を特徴とする情報処理装置。
【請求項３】
請求項１または請求項２に記載の情報処理装置であって、
前記学習部は、前記取得部が取得したデータに対してカーネル法による分類器を用いて前記モデルを学習すること、
を特徴とする情報処理装置。
【請求項４】
請求項１〜３の何れか一項に記載の情報処理装置であって、
前記複数の属性は、所定の装置が正常に動作していることを示す属性と、前記所定の装置が正常に動作していないことを示す属性と、を含み、
前記複数のデータは、前記所定の装置に取り付けられた複数のセンサからのデータであること、
を特徴とする情報処理装置。
【請求項５】
請求項１〜４の何れか一項に記載の情報処理装置であって、
前記複数の属性毎の前記複数のクラスタの数は、前記複数の属性毎に同じであること
を特徴とする情報処理装置。
【請求項６】
請求項１〜５の何れか一項に記載の情報処理装置であって、
前記複数の属性の何れかに属する複数のテストデータを用いて、前記モデルの分類精度を計算する精度計算部と、
前記精度計算部で計算された分類精度が目標値となるように、前記クラスタリング部がグループ化する前記複数のクラスタの数を変更する処理部と、を備えること、
を特徴とする情報処理装置。
【請求項７】
請求項６の何れか一項に記載の情報処理装置であって、
前記精度計算部で計算された分類精度と、目標値との差が所定値より大きいか否かを判定する第１判定部と、
前記処理部は、前記差が前記所定値より大きい場合、前記差が小さくなるよう、前記クラスタリング部がグループ化する前記複数のクラスタの数を変更すること、
を特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置であって、
前記計算された分類精度が、前記目標値より高いか否かを判定する第２判定部を備え、
前記処理部は、
前記計算された分類精度が前記目標値より低く、かつ、前記差が前記所定値より大きい場合、前記差が小さくなるよう、前記クラスタリング部がグループ化する前記複数のクラスタの数を増加すること、
を特徴とする情報処理装置。
【請求項９】
請求項８に記載の情報処理装置であって、
前記処理部は、
前記計算された分類精度が前記目標値より高く、かつ、前記差が前記所定値より大きい場合、前記差が小さくなるよう、前記クラスタリング部がグループ化する前記複数のクラスタの数を減少すること、
を特徴とする情報処理装置。
【請求項１０】
請求項６〜９の何れか一項に記載の情報処理装置であって、
前記処理部は、
前記分類精度と、前記目標値との差が小さくなるよう、前記クラスタリング部と、前記取得部と、前記学習部と、を繰り返し動作させること、
を特徴とする情報処理装置。
【請求項１１】
請求項１〜１０の何れか一項に記載の情報処理装置であって、
前記複数のデータのデータサイズが所定値以上であるか否かを判定する第３判定部を含み、
前記クラスタリング部は、
前記複数のデータのデータサイズが前記所定値以上でない場合、第１処理を実行して、前記複数のデータを、前記複数のクラスタにグループ化し、前記複数のデータのデータサイズが前記所定値以上である場合、前記第１処理より高速の第２処理を実行して、前記複数のデータを、前記複数のクラスタにグループ化すること、
を特徴とする情報処理装置。
【請求項１２】
複数の属性の何れかに属する複数のデータを、前記複数の属性毎に複数のクラスタにグループ化するクラスタリング部と、前記複数のクラスタの夫々に含まれるデータを、少なくとも一つ取得する取得部と、前記取得部が取得したデータに基づいて、入力データが前記複数の属性の何れに属するかを分類するためのモデルを学習する学習部とを含む第１情報処理装置と、
前記入力データと、前記モデルとに基づいて、前記入力データを分類する分類部を含む第２情報処理装置と、
を備えることを特徴とする情報処理システム。
【請求項１３】
コンピュータが、
複数の属性の何れかに属する複数のデータを、前記複数の属性毎に複数のクラスタにグループ化するクラスタリング処理と、
前記複数のクラスタの夫々に含まれるデータを、少なくとも一つ取得する取得処理と、
前記取得処理にて取得されたデータに基づいて、入力データが前記複数の属性の何れに属するかを分類するためのモデルを学習する学習処理と、
を実行するモデルの学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、およびモデルの学習方法に関する。
【背景技術】
【０００２】
入力データを事前に定義したクラスに分類する分類器を用いて、装置の異常検出や迷惑メールの判別等を行う技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１７３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力データを分類する分類器には、例えばサポートベクターマシン（ＳＶＭ：Support Vector Machine）と呼ばれる手法を用いて構築されたモデルを用いるものがある。一般に、ＳＶＭに基づくモデルを構築する際に、トレーニングデータの数を増加させると、構築されるモデルの精度は向上する。しかしながら、多数のトレーニングデータを用いて構築したモデルで入力データを分類する場合、情報処理装置の計算量が増加し、推論処理の時間が長くなってしまう。
【０００５】
本発明は、上記のような従来の問題に鑑みてなされたものであって、入力データを分類するモデルの精度の低下を抑制しつつ、入力データを分類する際の計算量を軽減可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前述した課題を解決する主たる本発明は、複数の属性の何れかに属する複数のデータを、前記複数の属性毎に複数のクラスタにグループ化するクラスタリング部と、前記複数のクラスタの夫々に含まれるデータを、少なくとも一つ取得する取得部と、前記取得部が取得したデータに基づいて、入力データが前記複数の属性の何れに属するかを分類するためのモデルを学習する学習部と、を含む情報処理装置である。
【発明の効果】
【０００７】
本発明によれば、入力データを分類するモデルの精度の低下を抑制しつつ、入力データを分類する際の計算量を軽減可能な技術を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】異常検知システム１０の構成を示す図である。
【図２】学習装置２０のハードウェア構成の一例を示す図である。
【図３】データセット４１の一例を示す図である。
【図４】学習装置２０ａに実現される機能ブロックの一例を示す図である。
【図５】学習装置２０ａで実行される処理の一例を示すフローチャートである。
【図６】複数のクラスタにグループ化されたデータの一例を示す図である。
【図７】判定装置２１のハードウェア構成の一例を示す図である。
【図８】判定装置２１に実現される機能ブロックの一例を示す図である。
【図９】判定装置２１で実行される内容を説明するための図である。
【図１０】推論時間について説明するための図である。
【図１１】記憶装置３２に記憶される情報の一例を示す図である。
【図１２】学習装置２０ｂに実現される機能ブロックの一例を示す図である。
【図１３】学習装置２０ｂで実行される処理の一例を示すフローチャートである。
【図１４】変更処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
【００１０】
＝＝＝＝＝本実施形態＝＝＝＝＝
＜＜＜異常検知システム１０の構成＞＞＞
図１は、本発明の一実施形態である異常検知システム１０の構成を示す図である。異常検知システム１０は、例えば、商業施設に設置されたショーケース３００の異常を検知するためのシステムであり、学習装置２０、判定装置２１を含む。
【００１１】
ショーケース３００は、例えば、食品等を冷却し、保管するためのケースである。ショーケース３００には、ショーケース３００の状態を観測するセンサ３１０が、例えば１０個取り付けられている。なお、図１では、便宜上、１０個のセンサ３１０は、１つのブロックとして描かれている。
【００１２】
そして、異常検知システム１０は、１０個のセンサの夫々から出力されるデータｘ１〜ｘ１０の値が、異常値となると、ショーケース３００の異常を検知する。なお、ここでは、「異常値」の例として、物理的な異常を要因とする異常の値や数値的な異常の値、またセンサ異常を起因とした異常値、また、異常判定ではないようなシステムに適用する場合には、通常とは異なる挙動を表す値のことが挙げられる。
【００１３】
また、以下、ショーケース３００の動作が正常である際のデータを、「正常データ」または「正常なデータ」と称し、ショーケース３００の動作が異常である際のデータを、「異常データ」または「異常なデータ」と称する。
【００１４】
学習装置２０（第１情報処理装置）は、正常なデータｘ１〜ｘ１０に基づいて、ショーケース３００に異常が有るか否かを判定するためのモデル、つまり、データｘ１〜ｘ１０の異常値を検出するためのモデルを機械学習によって構築する。
【００１５】
判定装置２１（第２情報処理装置）は、運転中のショーケース３００から出力されるデータｘ１〜ｘ１０と、学習装置２０で構築されたモデルとに基づいて、ショーケース３００に異常が有るか否かを判定する。なお、学習装置２０と、判定装置２１とは、ネットワーク２５を介して接続されている。また、異常検知システム１０は、情報処理システムに相当する。
【００１６】
＜＜＜学習装置２０について＞＞＞
＝＝学習装置２０の構成＝＝
図２は、学習装置２０のハードウェア構成の一例を示す図である。学習装置２０は、ＣＰＵ（Central Processing Unit）３０、メモリ３１、記憶装置３２、入力装置３３、表示装置３４、及び通信装置３５を含むコンピュータである。
【００１７】
ＣＰＵ３０は、メモリ３１や記憶装置３２に格納されたプログラムを実行することにより、学習装置２０における様々機能を実現する。
【００１８】
メモリ３１は、例えばＲＡＭ（Random-Aaccess Mmemory）等であり、プログラムやデータ等の一時的な記憶領域として用いられる。
【００１９】
記憶装置３２は、ＣＰＵ３０によって実行あるいは処理される制御プログラム４０やデータセット４１等の各種のデータを格納する不揮発性の記憶装置である。
【００２０】
制御プログラム４０は、学習装置２０が有する各種機能を実現するためのプログラムであり、例えば、ＯＳ（Operating System）等を含む。
【００２１】
データセット４１は、学習モデル４２（後述）を構築する際に用いられるデータであり、図３に示すように、ショーケース３００からセンサで取得された“データｘ１〜ｘ１０”と、“属性データ”とを含む。
【００２２】
ここで、「データｘ１」は、例えば、ショーケース３００の所定の場所に取り付けられた温度センサからの出力であり、「データｘ２」は、ショーケース３００内のコンプレッサの圧力を計測する圧力センサからの出力である。また、「データｘ１０」は、例えば、コンプレッサの冷媒の流量を計測する流量計からの出力である。なお、データｘ３〜ｘ９についても、ｘ１，ｘ２等と同様であるため、ここでは詳細な説明は省略する。
【００２３】
また、「属性データ」は、データｘ１〜ｘ１０が“正常データ”であるか、“異常データ”であるかを示すデータである。本実施形態では、データｘ１〜ｘ１０が“正常データ”である場合、“０”が付され、データｘ１〜ｘ１０が“異常データ”である場合、“１”が付されている。
【００２４】
データセット４１は、ｉ個の“正常データ”と、ｊ個の“異常データ”とを含み、予め記憶装置３２に格納されている。また、データセット４１の１番目のデータは、例えば、時刻ｔ１に取得された、ショーケース３００が正常な場合のデータｘ１〜ｘ１０である。
【００２５】
学習モデル４２は、センサ３１０からのデータｘ１〜ｘ１０が、“正常データ”及び“異常データ”の２つの属性のうち、何れかの属性に属するかを分類するためのモデルである。本実施形態では、学習モデル４２の学習が行われると、学習モデル４２の関数の係数等が調整される。なお、学習モデル４２は、例えばサポートベクターマシンの手法に基づいて構築され、学習モデル４２の関数は、例えば、ｙ＝ｆ（ｘ１，ｘ２，〜，ｘ１０）と表される。
【００２６】
入力装置３３は、ユーザによるコマンドやデータの入力を受け付ける装置であり、キーボード、タッチパネルディスプレイ上でのタッチ位置を検出するタッチセンサなどの入力インタフェースを含む。
【００２７】
表示装置３４は、例えばディスプレイなどの装置であり、通信装置３５は、ネットワーク２５を介して、判定装置２１や他のコンピュータと各種プログラムやデータの受け渡しを行う。
【００２８】
＝＝機能ブロックの第１実施例＝＝
図４は、学習装置２０の第１実施形態である学習装置２０ａに実現される機能ブロックの一例を示す図である。学習装置２０ａのＣＰＵ３０が、制御プログラム４０を実行することにより、学習装置２０ａには、クラスタリング部５０、計算部５１、取得部５２、及び学習部５３が実現される。
【００２９】
クラスタリング部５０は、記憶装置３２に格納されたデータセット４１を取得し、“正常データ”及び“異常データ”の夫々を、例えばｋ平均法を用いて複数のクラスタにグループ化する。なお、“正常データ”のクラスタの数と、“異常データ”のクラスタの数は、同じであっても、異なっていても良い。なお、ここで「グループ化」とは、例えば、決められた数のグループに、データを分けることをいう。
【００３０】
計算部５１は、“正常データ”及び“異常データ”の複数のクラスタの夫々の中心を計算する。なお、ここで、クラスタＸの「中心」とは、例えば、クラスタＸに含まれる複数のデータの平均値である。
【００３１】
取得部５２は、計算された複数のクラスタの夫々の中心を取得し、学習部５３は、取得部５２で取得されたデータをトレーニングデータとして、ＳＶＭに基づいた学習モデル４２を構築する。したがって、本実施形態では、“正常データ”及び“異常データ”の複数のクラスタの夫々の中心が、トレーニングデータとなる。なお、「トレーニングデータ」とは、例えば、学習モデル４２を構築する際に用いられるデータであり、学習データやモデル構築用データとも呼ばれる。
【００３２】
＜＜学習処理Ｓ１０＞＞
以下、各機能ブロックが実行する処理の一例を、図５及び図６を参照しつつ説明する。まず、クラスタリング部５０は、記憶装置３２に格納されたデータセット４１の“正常データ”を取得し、複数のｍ個のクラスタにグループ化する（Ｓ２０）。また、クラスタリング部５０は、データセット４１の“異常データ”を取得し、複数のｎ個のクラスタにグループ化する（Ｓ２１）。なお、処理Ｓ２０，２１は、「クラスタリング処理」に相当する。
【００３３】
図６は、“正常データ”と“異常データ”とが複数のクラスタの分類された状態を説明するための図である。なお、データセット４１の各データは、１０個のデータ（ｘ１〜ｘ１０）を含むが、便宜上、図６ではデータがｘ１，ｘ２の２個であるとして図示している。
【００３４】
ここでは、“正常データ”は、例えば７個（ｍ＝７）のクラスタＡ１〜Ａ７に分類され、“異常データ”も、“正常データ”のクラスタの数に等しい７個（ｎ＝７）のクラスタＢ１〜Ｂ７に分類されている。また、図６においては、“正常データ”と、“異常データ”とを分類する学習モデル４２を示す関数の一例をｘ１−ｘ２平面において図示している。なお、ここでは、“正常データ”のクラスタの数（ｍ個）と、“異常データ”のクラスタの数（ｎ個）とが等しいこととしたが、異なっていても良い。
【００３５】
ここで、仮に、データセット４１の“正常データ”と、“異常データ”とを分けずにクラスタリング部５０が、全てのデータを複数のクラスタにグループ化した場合、クラスタが“正常データ”と、“異常データ”とを含んでしまうことがある。このような場合、クラスタに含まれるデータ（例えば、任意の１点や中心）を学習用データとすると、学習用データは“正常データ”を示すデータであるか、“異常データ”を示すデータであるかが不明瞭となる。本実施形態では、データセット４１の“正常データ”と、“異常データ”とを分けた状態で、夫々が複数のクラスタにグループ化されている。したがって、本実施形態では、学習用データの精度を高めることができる。
【００３６】
つぎに、計算部５１は、“正常データ”のｍ個のクラスタの夫々の中心Ｐ１〜Ｐｍ（以下、適宜中心Ｐとする。）と、“異常データ”のｎ個のクラスタの夫々の中心Ｑ１〜Ｑｎ（以下、適宜中心Ｑとする。）を計算する（Ｓ２２）。
【００３７】
具体的には、図６のクラスタＡ１の場合、計算部５１は、クラスタＡ１に含まれる１０個のデータの平均値を計算し、計算結果を中心Ｐ１とする。同様に計算部５１は、６個のクラスタＡ２〜Ａ７の夫々の中心Ｐ２〜Ｐ７と、７個のクラスタＢ１〜Ｂ７の夫々の中心Ｑ１〜Ｑ７を計算する。
【００３８】
取得部５２は、計算部５１で計算された複数のクラスタの夫々の中心Ｐ，Ｑの夫々データを取得する（Ｓ２３：取得処理）。また、学習部５３は、中心Ｐ，Ｑをトレーニングデータとして、ＳＶＭに基づいた学習モデル４２を構築する（Ｓ２４）。なお、処理Ｓ２４は、「学習処理」に相当する。
【００３９】
したがって、学習モデル４２は、データセット４１に含まれるデータのうち、データセット４１の代表的なデータである中心Ｐ，Ｑに基づいて構築されることになる。この結果、学習部５３は、データセット４１のデータの分布に関する情報を保ちつつ、少ないデータ量を用いて学習モデル４２の学習を行うことができる。なお、「データの分布」とは、例えば、データｘ１〜ｘ１０のそれぞれを一つのベクトルとした際のベクトル空間における分布である。
【００４０】
＜＜＜判定装置２１について＞＞＞
＝＝判定装置２１の構成＝＝
図７は、判定装置２１のハードウェア構成の一例を示す図である。判定装置２１は、ＣＰＵ７０、メモリ７１、記憶装置７２、入力装置７３、表示装置７４、及び通信装置７５を含むコンピュータである。なお、判定装置２１のハードウェア構成は、学習装置２０のハードウェア構成と同様であるため、ここでは詳細な説明は省略する。
【００４１】
記憶装置７２は、学習モデル４２、判定プログラム８０、及び判定データ８１を記憶する。学習モデル４２は、学習装置２０ａで構築されたモデルである。
【００４２】
判定プログラム８０は、制御プログラム４０と同様に、判定装置２１が有する各種機能を実現するためのプログラムを総称している。
【００４３】
判定データ８１は、ショーケース３００に異常が有るか否かを判定した判定結果を示すデータである。
【００４４】
＝＝機能ブロック＝＝
図８は、判定装置２１に実現される機能ブロックの一例を示す図である。判定装置２１のＣＰＵ７０が、判定プログラム８０を実行することにより、判定装置２１には、取得部１００、分類部１０１、及び判定部１０２が実現される。
【００４５】
取得部１００は、センサ３１０から出力されるデータｘ１〜ｘ１０を、所定間隔毎（例えば、３０秒毎）に取得する。なお、センサ３１０から出力されるデータｘ１〜ｘ１０が「入力データ」に相当する。
【００４６】
分類部１０１は、取得部１００が取得したデータ（以下、「取得データ」と称する。）と、記憶装置７２に記憶された学習モデル４２とに基づいて、取得データが“正常データ”であるか“異常データ”であるか、つまり、取得データの属性を分類する。
【００４７】
判定部１０２は、取得データが“正常データ”に分類されたか否かを判定する。以下、各機能ブロックの詳細を、判定装置２１で実行される判定処理とともに説明する。
【００４８】
＜＜判定処理Ｓ１００＞＞
まず、図９に示すように、取得部１００は、センサ３１０からのデータｘ１〜ｘ１０を取得する（Ｓ２００）。そして、分類部１０１は、取得データ（ｘ１，〜，ｘ１０）と、学習モデル４２とに基づいて、サポートベクターマシンの手法を用いて取得データの属性を分類する（Ｓ２０１）。
【００４９】
ここで、ＳＶＭに基づく学習モデル４２は、データセット４１に含まれるデータのうち、データセット４１の代表的なデータである中心Ｐ，Ｑに基づいて構築されたモデルである。つまり、学習モデル４２は、少ないデータ量のトレーニングデータに基づいて構築されたモデルであるため、処理Ｓ２０１においても分類部１０１が参照すべきデータ量も少なくなる。したがって、データセット４１のデータの全てを用いて学習モデルを構築した場合と比較すると、本実施形態では、分類部２０１が処理Ｓ２０１で実行する計算量を減らすことができる。なお、処理Ｓ２０１は、いわゆる推論処理に相当し、処理Ｓ２０１が実行される時間は、推論時間である。
【００５０】
また、判定部１０２は、取得データが“正常データ”に分類されるか否かを判定する（Ｓ２０２）。取得データが“正常データ”に分類される場合（Ｓ２０２：Ｙｅｓ）、判定部１０２は、取得データは、正常データであると判定する（Ｓ２０３）。
【００５１】
一方、取得データが“正常データ”に分類されない場合、つまり、取得データが“異常データ”に分類される場合（Ｓ２０２：Ｎｏ）、判定部１０２は、取得データは、異常データであると判定する（Ｓ２０４）。そして、判定部１０２は、処理Ｓ２０３，２０４の判定結果を、記憶装置７２に格納し、判定データ８１を更新する（Ｓ２０５）。この結果、利用者は、ショーケース３００に異常が発生したことを把握することができる。
【００５２】
＜＜計算結果の一例＞＞
図１０は、異なる手法で構築された学習モデルを用いた際の推論処理の時間の比較結果を示す図である。図１０の左側の「ＳＶＭ（完全なデータセット）」の欄は、所定サイズの全てのテストデータをトレーニングデータとしてＳＶＭの手法を用いた場合の結果の一例である。
【００５３】
一方、図１０の右側の「ＳＶＭ（中心Ｐ，Ｑのデータセット）」の欄は、所定サイズのテストデータに対し、本実施形態のクラスタ分類（例えば、処理Ｓ２０，２１）を施した後、ＳＶＭの手法を用いた場合の結果の一例である。なお、ここでは、「ＳＶＭ（完全なデータセット）」と、「ＳＶＭ（中心Ｐ，Ｑのデータセット）」との両者において、ＳＶＭのハイパーパラメータは同一である。また、「ＳＶＭ（完全なデータセット）」と、「ＳＶＭ（中心Ｐ，Ｑのデータセット）」との両者の処理は、同一の情報処理装置で実行されている。
【００５４】
図１０の左側の「ＳＶＭ（完全なデータセット）」の欄は、“トレーニング時間Ｔａ１”、“スコアＳａ”、“推論時間Ｔａ２”の項目を含む。
【００５５】
「トレーニング時間Ｔａ１」は、例えば、所定のサイズ（例えば、６４３５行×３６列）のデータセットＤ１の全てが用いられた場合に、学習モデルＭ１を構築する時間であり、ここでは、“０．３４秒”となっている。なお、データセットＤ１は、“正常データ”、“異常データ”を含む、トレーニングデータである。
【００５６】
「スコアＳａ」は、所定サイズ（例えば、３００行×１０列）のテストデータＤｔと、学習モデルＭ１とに基づいて、テストデータＤｔの分類が実行された結果の正確性を示す指標であり、ここでは、“０．７４”となっている。なお、スコアＳａは、０〜１まで変化し、“０”は、全てのテストデータの分類が全く誤っていること示し、“１”は、全てのテストデータの分類が正しいことを示す。
【００５７】
「推論時間Ｔａ２」は、テストデータＤｔが、学習モデルＭ１で分類される時間であり、ここでは、“０．１８秒”となっている。
【００５８】
また、図１０の右側の「ＳＶＭ（中心Ｐ，Ｑのデータセット）」の欄は、“クラスタリング時間Ｔｃ”、“トレーニング時間Ｔｂ１”、“スコアＳｂ”、“推論時間Ｔｂ２”の項目を含む。
【００５９】
「クラスタリング時間Ｔｃ」は、例えば、データセットＤ１の“正常データ”と、“異常データ”とに、クラスタ分類（図５の処理Ｓ２０，２１）を施した際の実行時間であり、ここでは“０．５８秒”となっている。なお、ここでは、クラスタの数は、ｍ＝ｎ＝２３１６個であり、この値は、データセットＤ１の数（＝６４３５×３６＝２３１６６０）の、例えば１％の値に定められている。
【００６０】
「トレーニング時間Ｔｂ１」は、例えば、４６３２個（＝２３１６個×２）のクラスタの夫々の中心Ｐ，Ｑのデータが用いられた際に、学習モデルＭ２を構築する時間であり、ここでは、“０．０１秒”となっている。
【００６１】
「スコアＳｂ」は、テストデータＤｔと、学習モデルＭ２とに基づいて、テストデータの分類が実行された結果の正確性を示す指標であり、ここでは、“０．７０”となっている。なお、正確性を示す指標であるスコアＳｂも、スコアＳａと同様に０〜１まで変化する。
【００６２】
「推論時間Ｔｂ２」は、テストデータＤｔが、学習モデルＭ１で分類されるまでの時間であり、ここでは、“０．０４秒”となっている。
【００６３】
このように、テストデータＤｔの全てを用いた場合から、テストデータＤｔにクラスタ分類を施しで中心Ｐ，Ｑをテストデータとした場合には、分類の正確性は、“０．７４”から“０．７０”へと若干低下している。しかしながら、少ないトレーニングデータで構築された学習モデルＭ２を用いる場合と、多いトレーニングデータで構築された学習モデルＭ１を用いる場合とを比較すると、学習モデルＭ２を用いた場合の方が推論処理を行う際の計算量を少なくできる。この結果、学習モデルＭ２を用いた“推論時間Ｔｂ２（＝０．０４）”は、学習モデルＭ１を用いた“推論時間Ｔａ１（＝０．１８）”より大幅に短くなっている。
【００６４】
＝＝他の実施形態＝＝
＜＜記憶装置３２に記憶される情報＞＞
図２の記憶装置３２には、制御プログラム４０、データセット４１、及び学習モデル４２が記憶されることとしたが、これに限られない。例えば、図１１に示すように、記憶装置３２には、テストデータ４３、目標値データ４４、クラスタデータ４５が更に記憶されていても良い。
【００６５】
テストデータ４３は、学習モデル４２の分類精度をテストするためのデータであり、例えば、データセット４１と同様に、複数の“正常データ”と、複数の“異常データ”とを含む。
【００６６】
目標値データ４４は、学習モデル４２の分類精度の“目標値”を示すデータである。ここで、本実施形態の“目標値”は、例えば、データセット４１をトレーニングデータとして構築した学習モデル（不図示）の分類精度（例えば、８５％）から、所定の値（５％）を減算した値（８０％＝８５％−５％）とする。ただし、“目標値”は、データセット４１をトレーニングデータとして構築した学習モデル（不図示）の分類精度に関わらず、利用者が、適宜定めた値としても良い。
【００６７】
クラスタデータ４５は、データセット４１の“正常データ”及び“異常データ”の夫々のクラスタの数を示すデータである。なお、本実施形態のクラスタデータ４５は、データセット４１の“正常データ”のクラスタの数を示す変数“ｋ１”と、データセット４１の“異常データ”のクラスタの数を示す変数“ｋ２”と、を示す情報を含む。
【００６８】
＝＝機能ブロックの第２実施形態＝＝
図１２は、学習装置２０の第２実施形態である学習装置２０ｂに実現される機能ブロックの一例を示す図である。学習装置２０ｂのＣＰＵ３０が、制御プログラム４０を実行することにより、学習装置２０ｂには、計算部５１、取得部５２、学習部５３、クラスタリング部６０、精度計算部６１、第１判定部６２、第２判定部６３、第３判定部６４及び処理部６５が実現される。
【００６９】
ここで、計算部５１、取得部５２、学習部５３は、図４で示したブロックと同じであるため、このでは、詳細な説明は省略する。
【００７０】
クラスタリング部６０は、クラスタリング部５０と同様に、データセット４１を取得し、“正常データ”及び“異常データ”の夫々を、クラスタデータ４５で特定される数のクラスタにグループ化する。なお、詳細は後述するが、クラスタリング部６０は、データセット４１のデータサイズが所定値より小さい場合、逐次処理を実行する。
【００７１】
一方、クラスタリング部６０は、データセット４１のデータサイズが所定値以上の場合、逐次処理より高速な並列処理を実行する。これにより、クラスタリング部６０は、例えば、データセット４１のデータサイズが大きい場合であっても、“正常データ”及び“異常データ”の夫々を、高速で複数のクラスタにグループ化することができる。なお、本実施形態では、クラスタリング部６０が、並列処理を実行できるよう、例えば、ＣＰＵ３０は、マルチコア（不図示）を含むこととする。
【００７２】
精度計算部６１は、テストデータ４３を用いて、学習モデル４２の分類精度の計算を行い、第１判定部６２は、計算された分類精度と、学習モデル４２の分類精度の“目標値”との差が、“所定値”より大きいか否かを判定する。なお、例えば、目標値が“８０％”で、“所定値”が“５％”である場合、第１判定部６２は、計算された分類精度が、“７５％”〜“８５％”の範囲に入っているか否かを判定することになる。
【００７３】
第２判定部６３は、精度計算部６１で計算された分類精度が、学習モデル４２の分類精度の“目標値”より高いか否かを判定する。
【００７４】
第３判定部６４は、データセット４１の“正常データ”及び“異常データ”の夫々のデータサイズが所定値以上であるか否かを判定する。
【００７５】
処理部６５は、計算された分類精度と、“目標値”との差が“所定値”より大きい場合、差が小さくなるよう、クラスタリング部６０がグループ化するクラスタの数を変更する。具体的には、処理部６５は、精度計算部６１で計算された分類精度が、学習モデル４２の分類精度の“目標値”より低い場合、クラスタリング部６０がグループ化するクラスタの数を増加する。一方、処理部６５は、精度計算部６１で計算された分類精度が、学習モデル４２の分類精度の“目標値”より高い場合、クラスタリング部６０がグループ化するクラスタの数を減少する。
【００７６】
＜＜学習処理Ｓ１５＞＞
図１３は、図１２に示した学習装置２０ｂの各機能ブロックが実行する処理の一例を示す図である。まず、第３判定部６４は、データセット４１のデータサイズが所定値以上であるか否かを判定する（Ｓ３０）。なお、ここでは特に図示しないが、処理Ｓ３０での判定結果は、例えば、記憶装置３２に格納される。
【００７７】
クラスタリング部６０は、記憶装置３２に格納されたクラスタデータ４５を取得する（Ｓ３１）。クラスタリング部６０は、データセット４１の“正常データ”を取得し、複数の“ｋ１”個のクラスタにグループ化する（Ｓ３２）。また、クラスタリング部６０は、データセット４１の“異常データ”を取得し、複数の“ｋ２”個のクラスタにグループ化する（Ｓ３３）。なお、処理Ｓ３２，３３は、「クラスタリング処理」に相当する。
【００７８】
また、クラスタリング部６０は、データセット４１のデータサイズが所定値より小さい場合、処理Ｓ３２，Ｓ３３において、“逐次処理”を実行し、データサイズが所定値以上である場合、“並列処理”を実行する。
【００７９】
処理Ｓ３３が実行されると、計算部５１、取得部５２、及び学習部５３の夫々は、学習モデル４２構築処理を実行する（Ｓ３４）。なお、ここで、“学習モデル４２構築処理”は、図５で示した、処理Ｓ２２〜Ｓ２４の夫々を含む処理である。
【００８０】
また、処理Ｓ３４が実行され、学習モデル４２が構築されると、精度計算部６１は、テストデータ４３を用いて、学習モデル４２の分類精度の計算を行う（Ｓ３５）。
【００８１】
そして、第１判定部６２は、精度計算部６１で計算された分類精度と、“目標値”との“差”を計算し、“差”が“所定値”より大きいか否かを判定する（Ｓ３６）。“差”が、“所定値”より小さい場合（Ｓ３６：Ｎｏ）、つまり、計算された分類精度が、“目標値”に近い場合、一連の処理は終了する。一方、“差”が、“所定値”より大きい場合（Ｓ３６：Ｙｅｓ）、つまり、計算された分類精度が、“目標値”から遠い場合、変更処理（Ｓ３７）が実行される。
【００８２】
図１４の変更処理Ｓ３７において、第２判定部６３は、精度計算部６１で計算された分類精度が、学習モデル４２の分類精度の“目標値”より高いか否かを判定する（Ｓ５０）。計算された分類精度が、“目標値”より高い場合（Ｓ５０：Ｙｅｓ）、処理部６５は、クラスタリング部６０がグループ化するクラスタの数を減少させるべく、変数“ｋ１”，“ｋ２”を、例えば“１”だけ減少する（Ｓ５１）。具体的には、処理部６５は、変数“ｋ１”，“ｋ２”が、例えば“１”だけ減少するよう、クラスタデータ４５を、更新する。これにより、分類精度を保ちつつ、必要以上に計算時間が長くなることを防ぐことができる。
【００８３】
一方、計算された分類精度が、“目標値”より低い場合（Ｓ５０：Ｎｏ）、処理部６５は、クラスタリング部６０がグループ化するクラスタの数を増加させるべく、変数“ｋ１”，“ｋ２”を、例えば“１”だけ増加する（Ｓ５２）。具体的には、処理部６５は、変数“ｋ１”，“ｋ２”が、例えば“１”だけ増加するよう、クラスタデータ４５を、更新する。この結果、クラスタの数が増えるため、分類精度は向上することになる。
【００８４】
そして、変更処理Ｓ３７が実行されると、処理Ｓ３１〜Ｓ３６が繰り返される。このように、変更処理Ｓ３７が実行されると、分類精度と、“目標値”との差が小さくなるよう、クラスタの数が変更される。そして、例えば、分類精度が“目標値”より低い場合、学習モデル４２を構築する際のデータが増加することになるため、学習モデル４２の分類精度が高くなる。この結果、学習モデル４２の分類精度を、例えば“目標値”より高くすることができる。
【００８５】
一方、分類精度が“目標値”より高い場合、学習モデル４２を構築する際のデータが減少することになる。このため、学習モデル４２を用いて計算する時間を短くすることができる。
【００８６】
なお、本実施形態では、処理Ｓ３７で変化させるクラスタの数を、“１”としたが、他の数であっても良い。また、変数“ｋ１”，“ｋ２”の夫々を増加させる数は異なっていても良い。
【００８７】
＝＝＝まとめ＝＝＝
以上、本実施形態の異常検知システム１０について説明した。学習装置２０ａのクラスタリング部５０は、データセット４１の“正常データ”と、“異常データ”との夫々を複数のクラスタにグループ化し、学習部５３は、複数のクラスタの夫々のデータに基づいて学習モデル４２を構築する。このように、本実施形態では、クラスタからデータを取得しているため、トレーニングデータであるデータセット４１のデータの分布を保ちつつ、効率的にトレーニングデータのデータ量を減らすことができる。この結果、学習モデル４２の精度の低下を抑制しつつ、推論処理の際の計算量を軽減できる。さらに、本実施形態では、“正常データ”と、“異常データ”とを分けた状態で、夫々が複数のクラスタにグループ化されている。したがって、本実施形態では、学習モデル４２の精度を高めつつ、推論処理の計算時間を削減できる。
【００８８】
また、計算部５１は、複数のクラスタの夫々の中心を計算し、学習部５３は、計算結果であるデータをトレーニングデータとして用いる。このため、トレーニングデータであるデータセット４１のデータのベクトル空間における分布の状態を精度良く維持しつつ、データ量を減らすことができる。
【００８９】
また、一般に、サポートベクターマシンに基づく方法を用いて構築された学習モデル４２が使用される際、トレーニングデータの量が多いと推論時間が長くなる。しかしながら、本実施形態では、トレーニングデータにクラスタ分類を施すことにより、トレーニングデータの特徴を保持しつつ、トレーニングデータの量を減らしている。したがって、学習モデル４２を用いた際の推論時間を短くできる。なお、本実施形態では、学習モデル４２は、サポートベクターマシンに基づく方法で構築されることとしたが、例えば、他のカーネル法による分類器（classifier：クラシファイア）を用いて、学習モデル４２を構築しても良い。ここで、「カーネル法による分類器」としては、例えば、カーネル判別分析、カーネル回帰による判別、または、カーネルＰＬＳによる判別分析に基づく分類器が挙げられる。これらの分類器を用いた場合であっても、サポートベクターマシンに基づく学習モデル４２を構築した際と同様に、例えば推論時間を短くできる。
【００９０】
また、データセット４１に付された“属性データ”は、ショーケース３００が正常であることを示すデータと、ショーケース３００が異常であることを示すデータである。このようなデータを用いることにより、ショーケース３００の異常検知が可能となる。
【００９１】
また、クラスタリング部５０は、“正常データ”のクラスタの数（ｍ個）と、“異常データ”のクラスタの数（ｎ個）とが等しくなるよう、各データを複数のクラスタにグループ化している。この結果、トレーニングデータに含まれる“正常データ”と“異常データ”との数が等しく、バランスが取れているため、精度の高い学習モデル４２の構築が可能となる。
【００９２】
また、精度計算部６１で計算された分類精度と、学習モデル４２の分類精度の“目標値”と、の“差”が所定値より大きい場合、処理部６５は、“差”が小さくなるよう、クラスタリング部６０に、グループ化するクラスタの数を変更する（Ｓ３７）。この結果、本実施形態では、計算量を抑制しつつ、学習モデル４２の分類精度を、“目標値”に近い値とすることができる。
【００９３】
また、処理部６５は、計算された分類精度が、学習モデル４２の分類精度の“目標値”より低い場合、クラスタリング部６０に、グループ化するクラスタの数を増加する。これにより、分類精度を上昇させることができる。
【００９４】
また、処理部６５は、計算された分類精度が、学習モデル４２の分類精度の“目標値”より高い場合、クラスタリング部６０に、グループ化するクラスタの数を減少する。これにより、分類精度を“目標値”に近付けつつ、計算量を抑制することができる。
【００９５】
また、本実施形態では、計算された分類精度と、“目標値”との差が“所定値”より小さくなるまで、例えば、クラスタリング部６０、計算部５１、取得部５２、学習部５３を繰り返し動作させる。例えば、“目標値”が８０％であり、“所定値”が５％である場合、分類精度は、８０％±５％の範囲に入ることになる。この結果、本実施形態では、分類精度を、確実に“目標値”に近付けることができる。
【００９６】
また、例えば、データセット４１のデータサイズが所定値以上である場合、クラスタリング部６０は、逐次処理（第１処理）より高速な並列処理（第２処理）を実行し、データを複数のクラスタにグループ化する。この結果、データセット４１のデータサイズが大きい場合であっても、短時間で学習モデル４２を構築することができる。
【００９７】
上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。また、本発明は、その趣旨を逸脱することなく、変更や改良され得るとともに、本発明にはその等価物が含まれるのはいうまでもない。
【００９８】
例えば、本実施形態の異常検知の対象は、ショーケース３００であるが、他の機器や装置であっても良い。
【００９９】
また、本実施形態の判定装置２１は、入力装置７３や表示装置７４を含むコンピュータであることとしたが、例えば、マイコンやＰＬＣ（プログラマブルコントローラ）の演算回路が図９のＳ１００の処理を実行しても良い。このような場合、マイコン等を異常検知の対象の装置側（いわゆるエッジ側）に直接実装できるため、装置の異常検知を現地で行うことができる。
【０１００】
また、本実施形態の取得部５２は、クラスタの中心を取得することとしたが、これに限られず、クラスタに含まれる実際のデータを取得し、トレーニングデータとしても良い。また、取得部５２は、クラスタに含まれる中心や実際のデータのから複数のデータを取得し、トレーニングデータとしても良い。このように、取得部５２が取得するデータの数が増えると、学習モデル４２の精度をより高くすることができる。
【０１０１】
なお、第１判定部６２は、計算された分類精度が、“７５％”〜“８５％”の範囲に入っているか否かを判定することとしたが、これに限られない。例えば、第１判定部６２は、分類精度が、目標値である“８０％”より大きいか否かを判定しても良い。このような場合、処理部６５は、計算された分類精度が“目標値”となるように、つまり、分類精度と、目標値との差が小さくなるよう、クラスタリング部６０がグループ化するクラスタの数を変更する。そして、処理部６５は、計算された分類精度が最も“目標値”近くなるクラスタの数で、クラスタの数の変更を終了しても良い。このような場合であっても本実施形態と同様の効果を得ることができる。
【符号の説明】
【０１０２】
１０  異常検知システム
２０  学習装置
２１  判定装置
２５  ネットワーク
３０，７０  ＣＰＵ
３１，７１  メモリ
３２，７２  記憶装置
３３，７３  入力装置
３４，７４  表示装置
３５，７５  通信装置
４０  制御プログラム
４１  データセット
４２  学習モデル
４３  テストデータ
４４  目標値データ
４５  クラスタデータ
５０，６０  クラスタリング部
５１  計算部
５２  取得部
５３  学習部
６１  精度計算部
６２  第１判定部
６３  第２判定部
６４  第３判定部
６５  処理部
８０  判定プログラム
８１  判定データ
１００  取得部
１０１  分類部
１０２  判定部
【図１】
2020205026.tif 000003
【図２】
2020205026.tif 000004
【図３】
2020205026.tif 000005
【図４】
2020205026.tif 000006
【図５】
2020205026.tif 000007
【図６】
2020205026.tif 000008
【図７】
2020205026.tif 000009
【図８】
2020205026.tif 000010
【図９】
2020205026.tif 000011
【図１０】
2020205026.tif 000012
【図１１】
2020205026.tif 000013
【図１２】
2020205026.tif 000014
【図１３】
2020205026.tif 000015
【図１４】
2020205026.tif 000016