(57)【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含む情報処理システムであって、
多次元の第１のデータを入力するデータ入力手段と、
前記第１のデータを、主成分分析又はニューラルネットワークにより、前記第１のデータの次元数よりも少ない所定の次元数の第２のデータであって、前記第１のデータの特徴を表す第２のデータを生成する次元削減手段と、
前記第１のデータと前記第２のデータとに基づき、ＬＯＦ又はＯｎｅ−Ｃｌａｓｓ  ＳＶＭにより実現されるモデルを用いて、半教師あり異常検知により前記第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別する識別手段と、
を有し、
前記モデルは、正常を示すデータと、該正常を示すデータを前記次元削減手段で次元数を削減したデータを前記正常を示すデータと同じ次元数に復元したデータとの誤差を用いて予め学習されている、情報処理システム。
【請求項２】
前記第２のデータに基づき、該第１のデータの次元数と同じ次元数の第３のデータを生成する次元復元手段を有し、
前記識別手段は、
前記第１のデータと前記第３のデータとに基づき、前記モデルを用いて、半教師あり異常検知により該第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別し、
前記モデルは、正常を示すデータと、該正常を示すデータを前記次元削減手段で次元数を削減したデータを前記次元復元手段で前記正常を示すデータと同じ次元数に復元したデータとの誤差を用いて予め学習されている、請求項１記載の情報処理システム。
【請求項３】
前記第１のデータと前記第３のデータとの差分を計算することにより、前記次元削減手段による誤差を示す誤差データを算出する誤差算出手段を有し、
前記識別手段は、
前記誤差データに基づき、前記モデルを用いて、半教師あり異常検知により前記第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別し、
前記モデルは、前記誤差算出手段により算出された、正常を示すデータと、該正常を示すデータを前記次元削減手段で次元数を削減したデータを前記次元復元手段で前記正常を示すデータと同じ次元数に復元したデータとの誤差を示す誤差データを用いて予め学習されている、請求項２記載の情報処理システム。
【請求項４】
前記ニューラルネットワークは、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓである、請求項１ないし３のいずれか一項に記載の情報処理システム。
【請求項５】
前記ニューラルネットワークは、予め１以上の正常を示すデータを用いて所定のパラメータが学習されている、請求項４に記載の情報処理システム。
【請求項６】
前記情報処理システムは、撮像装置を含み、
前記第１のデータは、前記撮像装置により生成された多次元データである、請求項１ないし５のいずれか１項に記載の情報処理システム。
【請求項７】
前記撮像装置は、分光カメラ装置である、請求項６記載の情報処理システム。
【請求項８】
多次元の第１のデータが入力される情報処理装置であって、
前記第１のデータを、主成分分析又はニューラルネットワークにより、前記第１のデータの次元数よりも少ない所定の次元数の第２のデータであって、前記第１のデータの特徴を表す第２のデータを生成する次元削減手段と、
前記第１のデータと前記第２のデータとに基づき、ＬＯＦ又はＯｎｅ−Ｃｌａｓｓ  ＳＶＭにより実現されるモデルを用いて、半教師あり異常検知により前記第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別する識別手段と、
を有し、
前記モデルは、正常を示すデータと、該正常を示すデータを前記次元削減手段で次元数を削減したデータを前記正常を示すデータと同じ次元数に復元したデータとの誤差を用いて予め学習されている、情報処理装置。
【請求項９】
多次元の第１のデータが入力される情報処理装置に用いられる情報処理方法であって、
前記第１のデータを、主成分分析又はニューラルネットワークにより、前記第１のデータの次元数よりも少ない所定の次元数の第２のデータであって、前記第１のデータの特徴を表す第２のデータを生成する次元削減手順と、
前記第１のデータと前記第２のデータとに基づき、ＬＯＦ又はＯｎｅ−Ｃｌａｓｓ  ＳＶＭにより実現されるモデルを用いて、半教師あり異常検知により前記第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別する識別手順と、
を有し、
前記モデルは、正常を示すデータと、該正常を示すデータを前記次元削減手順で次元数を削減したデータを前記正常を示すデータと同じ次元数に復元したデータとの誤差を用いて予め学習されている、情報処理方法。
【請求項１０】
多次元の第１のデータが入力される情報処理装置を、
前記第１のデータを、主成分分析又はニューラルネットワークにより、前記第１のデータの次元数よりも少ない所定の次元数の第２のデータであって、前記第１のデータの特徴を表す第２のデータを生成する次元削減手段と、
前記第１のデータと前記第２のデータとに基づき、ＬＯＦ又はＯｎｅ−Ｃｌａｓｓ  ＳＶＭにより実現されるモデルを用いて、半教師あり異常検知により前記第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別する識別手段と、
として機能させ、
前記モデルは、正常を示すデータと、該正常を示すデータを前記次元削減手段で次元数を削減したデータを前記正常を示すデータと同じ次元数に復元したデータとの誤差を用いて予め学習されている、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
あるデータについて、このデータが異常な値（外れ値）であるか否かを識別する機械学習の手法が知られており、このような手法を用いることにより、例えば、規格外の製品や欠陥がある製品を検知する技術が従来より知られている。あるデータが異常な値であるか否かを識別する手法は、教師あり異常検知手法、半教師あり異常検知手法、教師なし異常検知手法の３通りに大別される。
【０００３】
ここで、十分な規模の学習データが得られない状況において、教師あり異常検知手法を用いて、入力されたデータを分類（識別）する技術が従来より知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術においては、教師あり異常検知手法を用いているため、学習データとして異常な値を示すデータを得ることが難しい場合には、識別の精度が低い場合があるといった問題がある。すなわち、例えば、ある製品を識別するための学習データとして、正常な値を示すデータは大量に得ることができる一方で、異常な値を示すデータはほとんど得ることができない場合、異常な値を示すデータの学習が少ないため、識別の精度が低くなる場合がある。
【０００５】
他方、半教師あり異常検知手法は、学習データとして正常な値を示すデータのみを用いる手法であり、一般に、教師あり異常検知手法に比べて識別の精度が低い場合が多いものの、想定外の異常な値も検知することができるという利点を有する。
【０００６】
本発明の一実施形態は、上記の点に鑑みてなされたもので、半教師あり異常検知を用いて、高い精度で識別することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一実施形態は、１以上の情報処理装置を含む情報処理システムであって、多次元の第１のデータを入力するデータ入力手段と、前記第１のデータに基づき、該第１のデータの次元数よりも少ない所定の次元数の第２のデータであって、前記第１のデータの特徴を表す第２のデータを生成する次元削減手段と、前記第１のデータと前記第２のデータとに基づき、半教師あり異常検知により該第１のデータが正常を示すデータであるか又は異常を示すデータであるかを識別する識別手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明の一実施形態によれば、半教師あり異常検知を用いて、高い精度で識別することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る情報処理装置の一例のハードウェア構成図である。
【図２】第１の実施形態に係る情報処理装置の一例の処理ブロック図である。
【図３】第１の実施形態に係る学習処理の一例のフローチャートである。
【図４】Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの一例を説明するための図である。
【図５】Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの学習方法の一例を説明するための図である。
【図６】第１の実施形態に係る識別処理の一例のフローチャートである。
【図７】第１の実施形態に係る識別結果の一例を示す図である。
【図８】第２の実施形態に係る情報処理装置の一例の処理ブロック図である。
【図９】第２の実施形態に係る学習処理の一例のフローチャートである。
【図１０】第２の実施形態に係る識別処理の一例のフローチャートである。
【図１１】第３の実施形態に係る情報処理装置の一例の処理ブロック図である。
【図１２】第３の実施形態に係る学習処理の一例のフローチャートである。
【図１３】第３の実施形態に係る識別処理の一例のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１１】
［第１の実施形態］
まず、第１の実施形態に係る情報処理装置１０のハードウェア構成について説明する。図１は、第１の実施形態に係る情報処理装置の一例のハードウェア構成図である。
【００１２】
図１に示すように、情報処理装置１０は、ＣＰＵ（Central Processing Unit）１１と、ＨＤＤ（Hard Disk Drive）１２と、ＲＡＭ（Random Access Memory）１３と、ＲＯＭ（Read Only Memory）１４と、入力装置１５と、表示装置１６と、外部Ｉ／Ｆ１７と、撮像装置１８とを備え、それぞれがバスＢで接続されている。
【００１３】
ＣＰＵ１１は、ＲＯＭ１４やＨＤＤ１２等の記憶装置からプログラムやデータをＲＡＭ１３上に読み出し、処理を実行することで、情報処理装置１０全体の制御や機能を実現する演算装置である。
【００１４】
ＨＤＤ１２は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えば、本実施形態を実現するためのプログラム、情報処理装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。ＨＤＤ１２は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（データベース）により管理している。なお、情報処理装置１０は、ＨＤＤ１２の代わりに又はＨＤＤ１１２と併せて、ＳＳＤ（Solid State Drive）等を備えていてもよい。
【００１５】
ＲＡＭ１３は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。
【００１６】
入力装置１５は、ユーザが各種操作信号を入力するのに用いられる装置である。入力装置１５は、例えば、各種操作ボタン、タッチパネル、キーボード、マウス等である。
【００１７】
表示装置１６は、情報処理装置１０による処理結果を表示する装置である。表示装置１６は、例えば、ディスプレイ等である。
【００１８】
外部Ｉ／Ｆ１７は、外部装置とのインタフェースである。外部装置には、例えば、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤカード、ＣＤ、ＤＶＤ等がある。
【００１９】
撮像装置１８は、撮像により画像データ等の多次元データを生成する装置である。撮像装置１８は、例えば、撮像動作により物体の複数の分光情報を取得する分光カメラ等である。
【００２０】
ここで、多次元データとは、多次元のベクトルデータとして表すことができるデータを言う。例えば、６４０×４８０ピクセルの画像データは、６４０×４８０次元＝合計３０７２００次元のベクトルデータとして表すことができる多次元データである。同様に、例えば、所定の６つの角度の光源から物体に照射された光により取得された３１波長の分光情報は、６×３１次元＝合計１８６次元のベクトルデータとして表すことができる多次元データである。さらに、これらに限られず、多次元データには、音データや文書データ等の各種電子データが含まれる。以降では、多次元データは、多次元のベクトルデータとして表されているものとして説明する。
【００２１】
本実施形態では、情報処理装置１０において、正常なモデルに属する複数の多次元データ（すなわち、ポジティブデータ）を用いて予め学習を行うことにより（半教師あり学習）、入力された多次元データがポジティブデータであるか否かを識別するものである。
【００２２】
なお、図１では、情報処理装置１０が撮像装置１８を有する構成としたが、これに限られず、例えば、情報処理装置１０と撮像装置１８とがＬＡＮ（Local Area Network）やインターネット等のネットワーク等を介して通信可能に接続されていてもよい。また、情報処理装置１０と撮像装置１８とが例えばＵＳＢケーブル等を介して通信可能に接続されていてもよい。すなわち、本実施形態は、情報処理装置１０と、撮像装置１８とを有する情報処理システムにも適用され得る。
【００２３】
さらに、情報処理装置１０又は情報処理システムは、撮像装置１８を必ずしも有している必要はなく、情報処理装置１０又は情報処理システムは、上述したような多次元データを生成する各種装置（例えば、マイク装置等）を有する構成としてもよい。また、情報処理装置１０又は情報処理システムは、例えば外部装置に格納された多次元データを、外部Ｉ／Ｆ１７等を介して又はＨＤＤ１２等から入力する構成としてもよい。
【００２４】
本実施形態に係る情報処理装置１０は、上記ハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００２５】
＜ソフトウェア構成＞
次に、第１の実施形態に係る情報処理装置１０のソフトウェア構成について説明する。図２は、第１の実施形態に係る情報処理装置の一例の処理ブロック図である。
【００２６】
図２に示すように、情報処理装置１０は、データ入力部１０１と、次元削減部１０２と、次元復元部１０３と、誤差算出部１０４と、データ識別部１０５とを有する。
【００２７】
データ入力部１０１は、例えばＣＰＵ１１等により実現され、多次元データを入力する。データ入力部１０１は、例えば、外部Ｉ／Ｆ１７等を介して又はＨＤＤ１２等から学習データ１０００を入力する。また、データ入力部１０１は、例えば、撮像装置１８に生成された識別対象データ２０００を入力する。
【００２８】
ここで、学習データ１０００は、後述する次元削減部１０２、次元復元部１０３、及びデータ識別部１０５の学習に用いる正常なモデルに属する複数の多次元データ（すなわち、ポジティブデータ）である。例えば、画像データの被写体が人か人以外をデータ識別部１０５で識別する場合、学習データ１０００とは、人が写っている画像データである。また、例えば、ある製品の塗料の品質（測色結果）が所定の規格を満たすか否かをデータ識別部１０５で識別する場合、学習データ１０００とは、所定の規格を満たす品質の塗料から得られた分光情報である。なお、以降では複数の学習データ１０００について、各々区別する場合はそれぞれ「学習データ１０００１」、「学習データ１０００２」、・・・と表す。
【００２９】
一方、識別対象データ２０００は、データ識別部１０５により識別させる対象のデータである。すなわち、識別対象データ２０００により、識別対象データ２０００が異常な値を示すデータ（異常値データ）であるか正常な値を示すデータ（正常値データ）であるかが判定（識別）される。ここで、識別対象データ２０００が異常値データであるとは、例えば、人が写っている画像データを正常値データとした場合に、人以外のもの（例えば、犬）が写っている画像データである。また、例えば、ある製品の塗料から得られた、所定の規格を満たす品質を示す分光情報を正常値データとした場合に、所定の規格を満たさない品質を示す分光情報が異常値データとなる。
【００３０】
なお、上述したように、学習データ１０００は、例えば、ＵＳＢメモリ、ＳＤカード、ＣＤ、ＤＶＤ等の外部装置に格納されており、外部Ｉ／Ｆ１７を介して情報処理装置１０に入力されてもよいし、ＨＤＤ１２等に格納されていてもよい。また、識別対象データ２０００は、例えば、撮像装置１８の撮像動作により生成されてもよいし、外部装置に格納されており外部Ｉ／Ｆ１７を介して情報処理装置１０に入力されてもよい。
【００３１】
次元削減部１０２は、例えばＣＰＵ１１等により実現され、入力された多次元データの次元数を削減する。すなわち、次元削減部１０２は、入力された多次元データを、この多次元データの特性を表し、かつ、この多次元データの次元数よりも少ない次元数の特徴ベクトルを生成する。なお、次元削減部１０２は、例えば、多層ニューラルネットワークの一種であるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓや主成分分析（ＰＣＡ：Principal Component Analysis）等の手法を用いることができる。
【００３２】
次元復元部１０３は、例えばＣＰＵ１１等により実現され、次元削減部１０２により次元数が削減された後の多次元データを、元の次元数に復元する。すなわち、次元復元部１０３は、次元削減部１０２により生成された特徴ベクトルを、元の多次元データの次元数に復元した多次元データを生成する。なお、次元復元部１０３は、次元削減部１０２と同様に、例えば、多層ニューラルネットワークの一種であるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓや主成分分析（ＰＣＡ：Principal Component Analysis）等の手法を用いることができる。
【００３３】
誤差算出部１０４は、例えばＣＰＵ１１等により実現され、入力された多次元データが次元削減部１０２により次元削減されたことにより発生した誤差量を算出する。すなわち、誤差算出部１０４は、入力された多次元データと、次元復元部１０３により復元された後の多次元データとの差分を計算することで、誤差量を算出する。
【００３４】
データ識別部１０５は、例えばＣＰＵ１１等により実現され、半教師あり異常検知の手法を用いて識別対象データ２０００の識別を行う。すなわち、データ識別部１０５は、予め学習データ１０００に基づき学習されたモデル等に基づき、識別対象データ２０００が異常値データあるか否かを識別（判定）する。なお、データ識別部１０５が用いる半教師あり異常検知の手法は、例えば、密度ベースの外れ値検出手法であるＬＯＦ（Local Outlier Factor）やＳＶＭ（Support Vector Machine）の評価関数を変更した外れ値検出手法であるＯｎｅ−Ｃｌａｓｓ  ＳＶＭ等を用いることができる。
【００３５】
なお、上記の次元削減部１０２、次元復元部１０３、及びデータ識別部１０５は、後述するように学習データ１０００を用いて予め学習させておく必要がある。
【００３６】
＜処理の詳細＞
次に、本実施形態に係る情報処理装置１０の処理の詳細について説明する。本実施形態に係る情報処理装置１０は、学習データ１０００を用いて、次元削減部１０２、次元復元部１０３、及びデータ識別部１０５を予め学習させておく必要がある。そして、本実施形態に係る情報処理装置１０は、学習された次元削減部１０２、次元復元部１０３、及びデータ識別部１０５等により識別対象データ２０００の識別を行う。
【００３７】
≪学習処理≫
まず、学習データ１０００を用いて、本実施形態に係る情報処理装置１０の次元削減部１０２、次元復元部１０３、及びデータ識別部１０５を学習させる処理について説明する。図３は、第１の実施形態に係る学習処理の一例のフローチャートである。なお、上述したように、学習データ１０００は、正常なモデルに属する複数の多次元データ（すなわち、正常値データ、ポジティブデータ）である。すなわち、以降で説明する学習処理は、半教師あり学習である。
【００３８】
ステップＳ３０１において、データ入力部１０１は、学習データ１０００を入力する。なお、データ入力部１０１は、学習データ１０００を、例えば、ＵＳＢメモリ、ＳＤカード、ＣＤ、ＤＶＤ等の外部装置から外部Ｉ／Ｆ１７を介して又はＨＤＤ１２等から入力する。また、データ入力部１０１は、学習データ１０００を、例えば、ＬＡＮやインターネット等のネットワークを介して入力してもよいし、撮像装置１８の撮像動作により学習データ１０００を生成して入力してもよい。
【００３９】
ステップＳ３０２において、次元削減部１０２及び次元復元部１０３は、入力された学習データ１０００を用いて、学習を行う。なお、ここでは一例として次元削減部１０２及び次元復元部１０３が、主成分分析の手法を用いて実現される場合又はＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの手法を用いて次元される場合の２つの場合について説明する。ただし、次元削減部１０２及び次元復元部１０３は、これらの２つの場合に限られず、種々の次元削減及び次元復元の手法を用いて実現することができる。
【００４０】
（主成分分析）
まず、次元削減部１０２及び次元復元部１０３が主成分分析の手法を用いて実現される場合について説明する。この場合、次元削減部１０２及び次元復元部１０３の学習とは、入力された学習データ１０００に基づき、各主成分に対応する固有ベクトルを求めることに相当する。以降では、学習データ１０００は、３０個の１００次元のベクトルデータであるものとして説明する。また、次元削減部１０２は、１００次元のベクトルデータを、２５次元のベクトルデータに削減するものとする。ただし、次元削減部１０２による次元削減後の次元数は、設計事項であり、２５次元に限られず、任意の次元数でよい。このことは、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの手法を用いる場合も同様である。
【００４１】
このとき、各学習データ１０００１〜１０００３０を、それぞれｙ１、・・・、ｙ３０として、以下のように表す。
【００４２】
【数１】
0006547275.tif 000002
このとき、Ｙを以下のように定義する。
【００４３】
【数２】
0006547275.tif 000003
そして、Ｙの分散共分散行列Ａを以下の式により演算する。
【００４４】
【数３】
0006547275.tif 000004
次に、以下の固有値方程式を解くことで、固有値λを求める。なお、Ｉは単位行列である。
【００４５】
【数４】
0006547275.tif 000005
次に、各固有値λに対して、以下の関係を満たす固有ベクトルｘを求める。
【００４６】
【数５】
0006547275.tif 000006
ここで、上記の（式４）で求めた固有値λのうち、最も大きい値の固有値λが第一主成分となる。したがって、これをλ１と表し、このλ１に対して上記の（式５）により求められた固有ベクトルをｘ１とする。
【００４７】
同様に、上記の（式４）で求めた固有値λのうち、λ１の次に大きい値の固有値λが第二主成分となる。したがって、これをλ２と表し、このλ２に対して上記の（式５）により求められた固有ベクトルをｘ２とする。
【００４８】
以降、同様にして固有ベクトルｘ３〜ｘ２５を得ることができる。ここで得られた固有ベクトルｘ１〜ｘ２５は、例えば、ＨＤＤ１２等に保存される（つまり、次元削減部１０２による削減後の次元数と同数の固有ベクトルを保存する）。これにより、学習データ１０００を用いて、次元削減部１０２及び次元復元部１０３が学習される。なお、後述する処理（識別処理）において、ここで得られた固有ベクトルｘ１〜ｘ２５を用いて、次元削減及び次元復元が行われる。
【００４９】
（Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓ）
次に、次元削減部１０２及び次元復元部１０３が多層ニューラルネットワークの一種であるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの手法を用いて実現される場合について説明する。この場合、次元削減部１０２及び次元復元部１０３の学習とは、入力された学習データ１０００に基づき、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの各層のネットワーク係数（これは「重み」とも称される）を調整することに相当する。なお、このようなネットワーク係数は、所定のパラメータの一例である。
【００５０】
なお、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓとは、Ａｕｔｏ−Ｅｎｃｏｄｅｒと呼ばれるニューラルネットワークを積み重ねて多層とした構成のニューラルネットワークである。ここで、Ａｕｔｏ−Ｅｎｃｏｄｅｒとは、入力層と出力層のニューロン数（ユニット数）が同数であり、かつ、中間層（隠れ層）のニューロン数（ユニット数）が入力層（出力層）より少ない構成のニューラルネットワークである。
【００５１】
以降では、次元削減部１０２及び次元復元部１０３は、図４に示すような５層から構成されるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓにより実現されるものとして説明する。すなわち、次元削減部１０２は、入力された１００次元のベクトルデータを、５０次元のベクトルデータに次元削減した後、２５次元のベクトルデータに削減する。一方、次元復元部１０３は、入力された２５次元のベクトルデータを、５０次元のベクトルデータに次元復元した後、１００次元のベクトルデータに次元復元する。図４に示すＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの学習について、図５を用いて説明する。ここで、各学習データ１０００は、主成分分析の場合と同様に、上記の（式１）で表されるものとする。
【００５２】
Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの学習は、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを構成するＡｕｔｏ−Ｅｎｃｏｄｅｒ毎に行われる。したがって、図４に示すＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓは、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを構成する第１のＡｕｔｏ−Ｅｎｃｏｄｅｒ及び第２のＡｕｔｏ−Ｅｎｃｏｄｅｒについて、学習を行う（図５のＳ１及びＳ２）。そして、最後に、Ｆｉｎｅ−ｔｒａｉｎｉｎｇと呼ばれる学習を行う（図５のＳ１）。
【００５３】
Ｓ１）まず、図４のＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを構成する第１のＡｕｔｏ−Ｅｎｃｏｄｅｒについて、学習データ１０００を用いて学習を行う。すなわち、第１層（入力層）のニューロン数が１００、第２層（中間層、隠れ層）のニューロン数が５０、第３層（出力層）のニューロン数が１００の第１のＡｕｔｏ−Ｅｎｃｏｄｅｒについて、学習データ１０００を用いて学習を行う。
【００５４】
このような学習は、各ｉ（ｉ＝１，・・・，３０）に対して、ｙｉを第１のＡｕｔｏ−Ｅｎｃｏｄｅｒの入力データ及び教師データとして誤差逆伝播法（Backpropagation）により学習を行えばよい。つまり、学習データ１０００を用いて、第１のＡｕｔｏ−Ｅｎｃｏｄｅｒの入力データと出力データが同じになるように、誤差逆伝播法によりネットワーク係数の調整を行う。
【００５５】
Ｓ２）次に、図４のＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを構成する第２のＡｕｔｏ−Ｅｎｃｏｄｅｒについて、第１のＡｕｔｏ−Ｅｎｃｏｄｅｒの第２層（中間層、隠れ層）に対する入力データを用いて学習を行う。
【００５６】
ここで、第１のＡｕｔｏ−Ｅｎｃｏｄｅｒにおいて、入力層（第１層）の各ニューロンと第２層の上からｊ番目のニューロンとの間のネットワーク係数をそれぞれｗ１，ｊ、・・・、ｗ１００，ｊとすると、第２のＡｕｔｏ−Ｅｎｃｏｄｅｒの入力データは以下の（式６）で表される。
【００５７】
【数６】
0006547275.tif 000007
したがって、各ｉ（ｉ＝１，・・・，３０）に対して、ｚｉを第２のＡｕｔｏ−Ｅｎｃｏｄｅｒの入力データ及び教師データとして誤差逆伝播法により学習を行えばよい。つまり、３０個の５０次元のベクトルデータｚｉを用いて、第２のＡｕｔｏ−Ｅｎｃｏｄｅｒの入力データｚｉと出力データが同じになるように、誤差逆伝播法によりネットワーク係数の調整を行う。
【００５８】
Ｓ３）Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを構成するすべてのＡｕｔｏ−Ｅｎｃｏｄｅｒについて学習を行った後、Ｆｉｎｅ−ｔｒａｉｎｉｎｇ（又は、Ｆｉｎｅ−Ｔｕｎｉｎｇ）と呼ばれる学習を行う。Ｆｉｎｅ−ｔｒａｉｎｉｎｇとは、学習を行ったすべてのＡｕｔｏ−Ｅｎｃｏｄｅｒから構成されたＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓについて学習データ１０００を用いて学習を行うことである。すなわち、各ｉ（ｉ＝１，・・・，３０）に対して、ｙｉをＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの入力データ及び教師データとして誤差逆伝播法により学習を行えばよい。つまり、学習データ１０００を用いて、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの入力データと出力データが同じになるように、誤差逆伝播法によりネットワーク係数の調整を行う。
【００５９】
このようなＦｉｎｅ−ｔｒａｉｎｉｎｇを最後に行うことで、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの各ネットワーク係数が微調整され、次元削減部１０２及び次元復元部１０３の性能を向上させることができる。すなわち、後述する識別処理において、入力された識別対象データ２０００のデータ識別部１０５による識別精度を向上させることができる。
【００６０】
なお、上記では、一例として、各層のニューロン数が１００、５０、２５、５０、１００である５層のＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを用いて、説明したが、これに限られない。Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの各層のニューロン数、及び、ニューラルネットワークを構成する層の数は設計事項であり、任意の数を選択することができる。
【００６１】
ただし、次元削減部１０２による次元削減及び次元復元部１０３による次元復元は、複数の層に分けて行うことが好ましい。例えば、上記のように１００次元のベクトルデータを２５次元のベクトルデータに削減する場合、各層のニューロン数が１００、２５、１００である３層のＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを用いて次元削減を行うよりも、上記の例のように複数の層（上記の例では５層）に分けて順次、次元数を削減する構成とする方が好ましい。
【００６２】
ステップＳ３０３において、誤差算出部１０４は、各学習データ１０００について次元削減及び次元復元された後の誤差を算出する。すなわち、上記のステップＳ３０２で学習された次元削減部１０２及び次元復元部１０３に、各学習データ１０００を入力する。そして、誤差算出部１０４は、入力された各学習データ１０００と、次元復元された後の各学習データ１０００との誤差を算出する。
【００６３】
例えば、入力される各学習データ１０００が上記の（式１）で表されるものとする。このとき、各ｙｉを入力して次元削減部１０２により次元削減した後、次元復元部１０３により次元復元した結果（出力）をそれぞれＹｉとすると、誤差算出部１０４は、各ｉに対してｙｉとＹｉの差分を計算することにより誤差Δｉを算出する。つまり、誤差算出部１０４は、各ｉ（ｉ＝１〜３０）に対して以下の（式７）を計算する。
【００６４】
【数７】
0006547275.tif 000008
なお、上記のステップＳ３０２において次元削減部１０２及び次元復元部１０３が適切に学習されている場合、上記のΔｉは略ゼロベクトルとなる。これは、入力された多次元データを次元削減部１０２により次元削減した結果である特徴ベクトルを、次元復元部１０３により次元復元すれば入力された多次元データが略復元されることを示している。
【００６５】
ステップＳ３０４において、データ識別部１０５は、上記のステップＳ３０３で算出された誤差Δｉを用いて学習を行う。
【００６６】
例えば、データ識別部１０５に用いる外れ値検出手法としてＬＯＦを用いる場合、誤差Δｉを多次元空間（上記の例では１００次元空間）にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）が生成する。なお、このようなデータ集合は、例えば、ＨＤＤ１２等に格納すればよい。
【００６７】
また、例えば、データ識別部１０５に用いる外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いる場合、誤差Δｉを多次元空間（上記の例では１００次元空間）にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）が生成する。そして、このデータ集合と、多次元空間上の所定の点とを分ける所定の平面（又は曲面）を求める。
【００６８】
このようにデータ識別部１０５を学習させておくことで、後述する識別処理において、ＬＯＦやＯｎｅ−Ｃｌａｓｓ  ＳＶＭ等の外れ値検出手法を用いて識別対象データ２０００が異常値データ（外れ値）であるか否かを識別することができる。
【００６９】
≪識別処理≫
次に、上記で説明したような学習処理を行った次元削減部１０２、次元復元部１０３、及びデータ識別部１０５を用いて、識別対象データ２０００の識別を行う処理について説明する。なお、識別対象データ２０００の識別とは、上述したように、この識別対象データ２０００が異常値データであるか否かを判別することである。図６は、第１の実施形態に係る識別処理の一例のフローチャートである。
【００７０】
ステップＳ６０１において、データ入力部１０１は、識別対象データ２０００を入力する。なお、データ入力部１０１は、識別対象データ２０００を、例えば、撮像装置１８の撮像動作により生成して入力する。また、データ入力部１０１は、識別対象データ２０００を、例えば、ＵＳＢメモリ、ＳＤカード、ＣＤ、ＤＶＤ等の外部装置から外部Ｉ／Ｆ１７を介して又はＨＤＤ１２等から入力してもよい。さらに、データ入力部１０１は、識別対象データ２０００を、例えば、ＬＡＮやインターネット等のネットワークを介して入力してもよい。
【００７１】
ステップＳ６０２及びステップＳ６０３において、次元削減部１０２は、入力された識別対象データ２０００の次元数を削減して、特徴ベクトルを生成する。そして、次元復元部１０３は、特徴ベクトルの次元数を、識別対象データ２０００と同じ次元数に復元する。なお、ここでは一例として次元削減部１０２及び次元復元部１０３が、主成分分析の手法を用いて実現される場合又はＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの手法を用いて次元される場合の２つの場合について説明する。ただし、次元削減部１０２及び次元復元部１０３は、これらの２つの場合に限られず、種々の次元削減及び次元復元の手法を用いて実現することができる。
【００７２】
（主成分分析）
まず、次元削減部１０２及び次元復元部１０３が主成分分析の手法を用いて実現される場合について説明する。以降では、識別対象データ２０００は、１００次元のベクトルデータであるものとして説明する。また、次元削減部１０２は、１００次元のベクトルデータを、２５次元のベクトルデータに削減するものとする。
【００７３】
このとき、識別対象データ２０００を、ａとして、以下のように表す。
【００７４】
【数８】
0006547275.tif 000009
また、学習処理において予めＨＤＤ１２等に保存した固有ベクトルｘ１〜ｘ２５を、以下のように表す。
【００７５】
【数９】
0006547275.tif 000010
そして、各ｊに対して以下の（式１０）を計算する。すなわち、識別対象データ２０００と各固有ベクトルｘ１〜ｘ２５との相関演算を行う。
【００７６】
【数１０】
0006547275.tif 000011
このようにして得られた多次元データλ＝（λ１，λ２，・・・，λ２５）が特徴ベクトルである。すなわち、多次元データλは、識別対象データ２０００を次元削減部１０２により２５次元に次元削減したベクトルである。
【００７７】
次に、上記で得られた特徴ベクトルλを用いて、各ｊに対して以下の（式１１）を計算する。
【００７８】
【数１１】
0006547275.tif 000012
このようにして得られた多次元データＡ＝（Ａ１，Ａ２，・・・，Ａ１００）が、次元復元後の多次元データである。すなわち、多次元データＡは、特徴ベクトルλを次元復元部１０３により１００次元に次元復元した多次元データである。
【００７９】
以上のようにして、次元削減部１０２及び次元復元部１０３は、主成分分析の手法を用いて識別対象データ２０００の次元削減及び次元復元を行う。
【００８０】
（Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓ）
次に、次元削減部１０２及び次元復元部１０３が多層ニューラルネットワークの一種であるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの手法を用いて実現される場合について説明する。ここで、識別対象データ２０００は、主成分分析の場合と同様に、上記の（式８）で表されるものとする。
【００８１】
このとき識別対象データ２０００を示す多次元データａ＝（ａ１，ａ２，・・・，ａ１００）を、上記の学習処理により予め学習された図４に示すＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの第１層（入力層）に入力する。すると、Ｓｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓにより次元削減及び次元復元された出力データである多次元データＡ＝（Ａ１，Ａ２，・・・，Ａ１００）を得ることができる。すなわち、図４に示すＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓに多次元データａを入力すると、次元削減部１０２により５０次元に次元削減した後、さらに２５次元に次元削減する。このようにして得られた２５次元の多次元データが特徴ベクトルλである。そして、特徴ベクトルλを次元復元部１０３により５０次元に次元復元した後、さらに１００次元に次元復元し、多次元データＡを得ることができる。
【００８２】
以上のようにして、次元削減部１０２及び次元復元部１０３は、多層ニューラルネットワークの一種であるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの手法を用いて識別対象データ２０００の次元削減及び次元復元を行う。
【００８３】
ステップＳ６０４において、誤差算出部１０４は、識別対象データ２０００について次元削減及び次元復元された後の誤差を算出する。すなわち、上記のステップＳ６０２及びＳ６０３で得られた多次元データＡと、識別対象データ２０００を示す多次元データａとを誤差算出部１０４に入力して、ａとＡの差分を計算することにより誤差Δを算出する。つまり、誤差算出部１０４は、以下の（式１２）を計算する。
【００８４】
【数１２】
0006547275.tif 000013
なお、これは、識別対象データ２０００がポジティブデータ（正常値データ）である場合、上記のΔは略ゼロベクトルとなることを示している。他方、識別対象データ２０００がネガティブデータ（異常値データ）である場合、上記のΔは、｜Δ｜＞Ｃとなるある定数Ｃが存在することを示している。これにより、次のステップＳ６０５において、データ識別部１０５による識別対象データ２０００の識別を行うことができる。
【００８５】
ステップＳ６０５において、データ識別部１０５は、上記のステップＳ６０４で算出された誤差Δを用いて、識別対象データ２０００の識別を行う。
【００８６】
例えば、データ識別部１０５に用いる外れ値検出手法としてＬＯＦを用いる場合、予め学習処理においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、誤差Δをプロットする。そして、誤差Δをプロットした点のまわりの点の密度に基づきＬＯＦ値（ＬＯＦスコア）を算出し、算出されたＬＯＦスコアが所定の基準値以上である場合、データ識別部１０５は、識別対象データ２０００を異常値データあると判別する。なお、上記の所定の基準値は、予めユーザ等により設定された値である。
【００８７】
また、例えば、データ識別部１０５に用いる外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いる場合、予め学習処理においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、誤差Δをプロットする。そして、誤差Δを入力とした所定の関数値（評価関数の値）が、学習処理において求めた所定の平面（又は曲面）によって分けられた多次元空間のいずれに属するかにより、識別対象データ２０００が異常値データであるか否かを判別する。すなわち、データ識別部１０５は、誤差Δを入力とした所定の関数値が、所定の点が含まれる多次元空間に属する場合、識別対象データ２０００を異常値データあると識別する。一方、データ識別部１０５は、誤差Δを入力とした所定の関数値が、ポジティブデータを表すデータ集合が含まれる多次元空間に属する場合、識別対象データ２０００を正常値を示すデータであると識別する。
【００８８】
このようにして、データ識別部１０５は、識別対象データ２０００が異常値データであるか又は正常値データであるかを識別することができる。
【００８９】
ここで、本実施形態における情報処理装置１０の識別結果の一例について説明する。図７は、第１の実施形態に係る識別結果の一例を示す図である。図７では、異常データ検出機として、それぞれ、（１）外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いた従来の識別機、（２）外れ値検出手法としてＬＯＦを用いた従来の識別機、（３）本実施形態に係る情報処理装置１０のエラー率（誤検出率）を示したものである。なお、（３）の情報処理装置１０の次元削減部１０２及び次元復元部１０３は、７層から構成され、各層のニューロン数が第１層から順に１８６、１００、５０、２５、５０、１００、１８６であるＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓを用いたものである。
【００９０】
図７の（１）〜（３）それぞれについて、同じポジティブデータを用いて学習を行い、識別対象データとして１８６次元の多次元データを複数用いて識別を行った場合のエラー率の計測を行った。すると、図７に示すように、従来の方式である（１）及び（２）に比べて本実施形態に係る情報処理装置１０は、エラー率が低いため、異常データ検出機として非常に有効であることがわかる。
【００９１】
［第２の実施形態］
次に、第２の実施形態に係る情報処理装置１０について説明する。第２の実施形態に係る情報処理装置１０は、誤差算出部１０４を有しない点が第１の実施形態と異なる。なお、以降では、第１の実施形態と同様の機能を有する箇所及び同一の処理を行う箇所については、第１の実施形態と同一の符号を用いて、その説明を省略する。
【００９２】
＜ソフトウェア構成＞
まず、第２の実施形態に係る情報処理装置１０のソフトウェア構成について説明する。図８は、第２の実施形態に係る情報処理装置の一例の処理ブロック図である。
【００９３】
図８に示すように、第２の実施形態に係る情報処理装置１０は、誤差算出部１０４を有しない点及びデータ識別部１０５Ａの機能が第１の実施形態と異なる。
【００９４】
データ識別部１０５Ａは、識別対象データ２０００の識別を行う。ただし、第２の実施形態に係る情報処理装置１０のデータ識別部１０５Ａは、学習データ１０００と、この学習データ１０００を次元削減及び次元復元した多次元データとに基づき学習を行う。また、第２の実施形態に係る情報処理装置１０のデータ識別部１０５Ａは、識別対象データ２０００と、この識別対象データ２０００を次元削減及び次元復元した多次元データとに基づき識別を行う。
【００９５】
＜処理の詳細＞
次に、本実施形態に係る情報処理装置１０の処理の詳細について説明する。
【００９６】
≪学習処理≫
まず、学習データ１０００を用いて、本実施形態に係る情報処理装置１０の次元削減部１０２、次元復元部１０３、及びデータ識別部１０５を学習させる処理について説明する。図９は、第２の実施形態に係る学習処理の一例のフローチャートである。第２の実施形態に係る学習処理は、ステップＳ９０１の処理が第１の実施形態と異なる。したがって、以降では、このステップＳ９０１の処理について説明する。
【００９７】
ステップＳ９０１において、データ識別部１０５Ａは、各学習データ１０００を示す各多次元データｙｉと、ステップＳ３０２で学習された次元削減部１０２及び次元復元部１０３に各ｙｉを入力して得た結果（出力）Ｙｉとを用いて学習を行う。
【００９８】
例えば、データ識別部１０５Ａに用いる外れ値検出手法としてＬＯＦを用いる場合、各ｉに対して２００次元の多次元データ（ｙｉ，Ｙｉ）を多次元空間（上記の例ではｙｉ及びＹｉはともに１００次元であるから、２００次元空間）にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）が生成する。なお、このようなデータ集合は、例えば、ＨＤＤ１２等に格納すればよい。
【００９９】
また、例えば、データ識別部１０５Ａに用いる外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いる場合、各ｉに対して２００次元の多次元データ（ｙｉ，Ｙｉ）を多次元空間（上記の例ではｙｉ及びＹｉはともに１００次元であるから、２００次元空間）にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）が生成する。そして、このデータ集合と、多次元空間上の所定の点とを分ける所定の平面（又は曲面）を求める。
【０１００】
≪識別処理≫
次に、上記で説明したような学習処理を行った次元削減部１０２、次元復元部１０３、及びデータ識別部１０５を用いて、識別対象データ２０００の識別を行う処理について説明する。図１０は、第２の実施形態に係る識別処理の一例のフローチャートである。第２の実施形態に係る学習処理は、ステップＳ１００１の処理が第１の実施形態と異なる。したがって、以降では、このステップＳ１００１の処理について説明する。
【０１０１】
ステップＳ１００１において、データ識別部１０５Ａは、識別対象データ２０００を示す多次元データａと、ステップＳ６０２及びＳ６０３で得られた多次元データＡとを用いて、識別対象データ２０００の識別を行う。
【０１０２】
例えば、データ識別部１０５Ａに用いる外れ値検出手法としてＬＯＦを用いる場合、予め学習処理においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間（すなわち、２００次元空間）に、２００次元の多次元データ（ａ，Ａ）をプロットする。そして、多次元データ（ａ，Ａ）をプロットした点のまわりの点の密度に基づきそれぞれＬＯＦ値（ＬＯＦスコア）を算出し、算出されたＬＯＦスコアが所定の基準値以上であるか否かを判定する。
【０１０３】
また、例えば、データ識別部１０５Ａに用いる外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いる場合、予め学習処理においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、２００次元の多次元データ（ａ，Ａ）をプロットする。そして、多次元データ（ａ，Ａ）を入力とした所定の関数値（評価関数の値）が、学習処理において求めた所定の平面（又は曲面）によって分けられた多次元空間のいずれに属するかにより、識別対象データ２０００が異常値データであるか否かを判別する。
【０１０４】
［第３の実施形態］
次に、第３の実施形態に係る情報処理装置１０について説明する。第３の実施形態に係る情報処理装置１０は、次元復元部１０３を有しない点が第２の実施形態と異なる。なお、以降では、第２の実施形態と同様の機能を有する箇所及び同一の処理を行う箇所については、第２の実施形態と同一の符号を用いて、その説明を省略する。
【０１０５】
＜ソフトウェア構成＞
まず、第３の実施形態に係る情報処理装置１０のソフトウェア構成について説明する。図１１は、第３の実施形態に係る情報処理装置の一例の処理ブロック図である。
【０１０６】
データ識別部１０５Ｂは、識別対象データ２０００の識別を行う。ただし、第３の実施形態に係る情報処理装置１０のデータ識別部１０５Ｂは、学習データ１０００と、この学習データ１０００を次元削減した多次元データとに基づき学習を行う。また、第３の実施形態に係る情報処理装置１０のデータ識別部１０５Ｂは、識別対象データ２０００と、この識別対象データ２０００を次元削減した多次元データとに基づき識別を行う。
【０１０７】
＜処理の詳細＞
次に、本実施形態に係る情報処理装置１０の処理の詳細について説明する。
【０１０８】
≪学習処理≫
まず、学習データ１０００を用いて、本実施形態に係る情報処理装置１０の次元削減部１０２及びデータ識別部１０５を学習させる処理について説明する。図１２は、第３の実施形態に係る学習処理の一例のフローチャートである。第３の実施形態に係る学習処理は、ステップＳ１２０１及びＳ１２０２の処理が第２の実施形態と異なる。したがって、以降では、このステップＳ１２０１及びＳ１２０２の処理について説明する。
【０１０９】
ステップＳ１２０１において、次元削減部１０２は、入力された学習データ１０００を用いて、学習を行う。これは、図３のステップＳ３０２で説明したのと同様の学習を行い、次元復元部１０３の学習結果を破棄すればよい。例えば、図４に示すＳｔａｃｋｅｄ  Ａｕｔｏ−Ｅｎｃｏｄｅｒｓの学習を行った場合、第１層〜第３層により構成される多層ニューラルネットワークを取り出して、これを次元削減部１０２とすればよい。
【０１１０】
ステップＳ１２０２において、データ識別部１０５Ｂは、各学習データ１０００を示す各多次元データｙｉと、ステップＳ３０２で学習された次元削減部１０２に各ｙｉを入力して得た結果（出力）λｉとを用いて学習を行う。ここで、λｉは各ｙｉの特徴ベクトルである。
【０１１１】
例えば、データ識別部１０５Ｂに用いる外れ値検出手法としてＬＯＦを用いる場合、各ｉに対して１２５次元の多次元データ（ｙｉ，λｉ）を多次元空間（上記の例ではｙｉが１００次元、λｉが２５次元であるから、１２５次元空間）にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）が生成する。なお、このようなデータ集合は、例えば、ＨＤＤ１２等に格納すればよい。
【０１１２】
また、例えば、データ識別部１０５Ｂに用いる外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いる場合、各ｉに対して１２５次元の多次元データ（ｙｉ，λｉ）を多次元空間（上記の例ではｙｉが１００次元、λｉが２５次元であるから、１２５次元空間）にプロットして、ポジティブデータを表すデータ集合（ポジティブモデル）が生成する。そして、このデータ集合と、多次元空間上の所定の点とを分ける所定の平面（又は曲面）を求める。
【０１１３】
≪識別処理≫
次に、上記で説明したような学習処理を行った次元削減部１０２及びデータ識別部１０５を用いて、識別対象データ２０００の識別を行う処理について説明する。図１３は、第３の実施形態に係る識別処理の一例のフローチャートである。第３の実施形態に係る学習処理は、ステップＳ１３０１の処理が第２の実施形態と異なる。したがって、以降では、このステップＳ１３０１の処理について説明する。
【０１１４】
ステップＳ１３０１において、データ識別部１０５Ｂは、識別対象データ２０００を示す多次元データａと、ステップＳ６０２で得られた特徴ベクトルλとを用いて、識別対象データ２０００の識別を行う。
【０１１５】
例えば、データ識別部１０５Ｂに用いる外れ値検出手法としてＬＯＦを用いる場合、予め学習処理においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間（すなわち、１２５次元空間）に、多次元データ（ａ，λ）をプロットする。そして、多次元データ（ａ，λ）をプロットした点のまわりの点の密度に基づきそれぞれＬＯＦ値（ＬＯＦスコア）を算出し、算出されたＬＯＦスコアが所定の基準値以上であるか否かを判定する。
【０１１６】
また、例えば、データ識別部１０５Ｂに用いる外れ値検出手法としてＯｎｅ−Ｃｌａｓｓ  ＳＶＭを用いる場合、予め学習処理においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、多次元データ（ａ，λ）をプロットする。そして、多次元データ（ａ，λ）を入力とした所定の関数値（評価関数の値）が、学習処理において求めた所定の平面（又は曲面）によって分けられた多次元空間のいずれに属するかにより、識別対象データ２０００が異常値データであるか否かを判別する。
【０１１７】
＜まとめ＞
以上のように第１の実施形態に係る情報処理装置１０は、予め正常値データにより学習された次元削減部１０２及び次元復元部１０３により次元削減及び次元復元を行った結果と、入力データとの誤差を用いることにより高い精度で異常検知を行うことができる。
【０１１８】
また、第２の実施形態に係る情報処理装置１０は、誤差算出部１０４を不要とすることにより、情報処理装置１０の構成を簡易にするとともに、高い精度で異常検知を行うことができる。
【０１１９】
また、第３の実施形態に係る情報処理装置１０は、さらに次元復元部１０３を不要とすることにより、情報処理装置１０の構成をさらに簡易にするとともに、高い精度で異常検知を行うことができる。
【０１２０】
なお、データ入力部１０１は、データ入力手段の一例である。次元削減部１０２は、次元削減手段の一例である。次元復元部１０３は、次元復元手段の一例である。誤差算出部１０４は、誤差算出手段の一例である。データ識別部１０５は、識別手段の一例である。
【０１２１】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１２２】
１０      情報処理装置
１１      ＣＰＵ
１２      ＨＤＤ
１３      ＲＡＭ
１４      ＲＯＭ
１５      入力装置
１６      表示装置
１７      外部Ｉ／Ｆ
１８      撮像装置
１０１    データ入力部
１０２    次元削減部
１０３    次元復元部
１０４    誤差算出部
１０５    データ識別部
１０００  学習データ
２０００  識別対象データ
【先行技術文献】
【特許文献】
【０１２３】
【特許文献１】特開２０１４−２６４５５号公報
【図１】
0006547275.tif 000014
【図２】
0006547275.tif 000015
【図３】
0006547275.tif 000016
【図４】
0006547275.tif 000017
【図５】
0006547275.tif 000018
【図６】
0006547275.tif 000019
【図７】
0006547275.tif 000020
【図８】
0006547275.tif 000021
【図９】
0006547275.tif 000022
【図１０】
0006547275.tif 000023
【図１１】
0006547275.tif 000024
【図１２】
0006547275.tif 000025
【図１３】
0006547275.tif 000026