(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022188548
(43)【公開日】2022-12-21
(54)【発明の名称】情報処理装置、方法及びプログラム
(51)【国際特許分類】
G06N 3/08 20060101AFI20221214BHJP
【FI】
G06N3/08 120
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021096667
(22)【出願日】2021-06-09
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】加藤 佑一
(72)【発明者】
【氏名】高木 健太郎
(72)【発明者】
【氏名】中田 康太
(57)【要約】
【課題】高い異常検知性能を有するオートエンコーダの作成を支援すること
【解決手段】 実施形態に係る情報処理装置は、算出部と出力制御部とを有する。算出部は、互いに異なるネットワーク構造を有する複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、前記正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出する。出力制御部は、前記ネットワーク構造と前記第1の入出力誤差及び前記第2の入出力誤差との関係を表す関係データを出力する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
互いに異なるネットワーク構造を有する複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、前記正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出する算出部と、
前記ネットワーク構造と前記第1の入出力誤差及び前記第2の入出力誤差との関係を表す関係データを出力する出力制御部と、
を具備する情報処理装置。
【請求項2】
前記正常データに基づいて前記複数のオートエンコーダを学習する学習部を更に備える、請求項1記載の情報処理装置。
【請求項3】
前記複数のオートエンコーダは、前記ネットワーク構造として、互いにボトルネック層の幅及び/又は位置が異なる、請求項1記載の情報処理装置。
【請求項4】
前記関係データに基づいて、前記ネットワーク構造の推奨範囲又は最適値を推論する推論部を更に備える、請求項1記載の情報処理装置。
【請求項5】
前記推論部は、
前記第1の入出力誤差と前記第2の入出力誤差との差分と、
前記ネットワーク構造の変化に伴う前記第1の入出力誤差、前記第2の入出力誤差及び/又は前記差分の変化と、の少なくとも一方に基づいて前記推奨範囲又は最適値を推論する、
請求項4記載の情報処理装置。
【請求項6】
前記出力制御部は、前記関係データに前記推奨範囲又は最適値を表示する、請求項4記載の情報処理装置。
【請求項7】
前記正常データにデータオーグメンテーションを施して前記疑似異常データを生成する生成部を更に備える、請求項1記載の情報処理装置。
【請求項8】
前記生成部は、前記データオーグメンテーションとして、前記正常データに対して水平移動、並行移動、反転及び/又は回転を施す、請求項7記載の情報処理装置。
【請求項9】
前記疑似異常データは、前記正常データとは異なるドメインのデータである、請求項1記載の情報処理装置。
【請求項10】
前記出力制御部は、前記関係データとして、
前記ネットワーク構造と前記第1の入出力誤差との関係と、
前記ネットワーク構造と前記第2の入出力誤差との関係と、
前記ネットワーク構造と、前記第1の入出力誤差と前記第2の入出力誤差との差分との関係と、の少なくとも一つを表すグラフを出力する、
請求項1記載の情報処理装置。
【請求項11】
前記出力制御部は、前記ネットワーク構造毎の、前記疑似異常データを入力したときの前記複数のオートエンコーダ各々の出力データの一覧を出力する、請求項1記載の情報処理装置。
【請求項12】
互いに異なるネットワーク構造を有する複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、前記正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出し、
前記ネットワーク構造と前記第1の入出力誤差及び前記第2の入出力誤差との関係を出力する、
ことを具備する情報処理方法。
【請求項13】
コンピュータに、
互いに異なるネットワーク構造を有する複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、前記正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出させる機能と、
前記ネットワーク構造と前記第1の入出力誤差及び前記第2の入出力誤差との関係を出力させる機能と、
を実現させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、方法及びプログラムに関する。
【背景技術】
【0002】
オートエンコーダは、入出力が一致するようにパラメータが学習されたニューラルネットワークである。オートエンコーダは、学習に使用していない入力データを再現しない性質を利用して、異常検知に用いることもできる。しかし、オートエンコーダのネットワーク構造によっては、学習に使用した正常データすらも再現できない場合や、反対に、学習に使用していない異常データをそのまま返す恒等写像をしてしまう場合があり、いずれの場合であっても異常検知性能が低くなってしまう。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】An & Cho, “Variational Autoencoder based Anomaly Detection using Reconstruction Probability” Special, Lecture on IE 2:1-18, 2015
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、高い異常検知性能を有するオートエンコーダの作成を支援することである。
【課題を解決するための手段】
【0005】
実施形態に係る情報処理装置は、算出部と出力制御部とを有する。算出部は、互いに異なるネットワーク構造を有する複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、前記正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出する。出力制御部は、前記ネットワーク構造と前記第1の入出力誤差及び前記第2の入出力誤差との関係を表す関係データを出力する。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係る情報処理装置の構成例を示す図
【
図2】オートエンコーダを利用した異常検知に係る処理例を示す図
【
図3】オートエンコーダを利用した異常検知の処理例を示す図
【
図4】ボトルネックノード数毎の出力データの遷移を示す図
【
図5】ボトルネックノード数毎の入出力誤差とAUROCとの関係を表すグラフ
【
図6】第1実施形態に係る情報処理装置によるネットワーク構造の設計支援処理の典型的な流れを示す図
【
図7】
図6のステップS601において学習される複数のオートエンコーダを模式的に示す図
【
図9】各オートエンコーダについての正常データ及び疑似異常データ各々に関する入出力誤差の算出処理を模式的に示す図
【
図10】ボトルネックノード数と誤差平均との関係を表すグラフの一例を示す図
【
図11】ボトルネックノード数と誤差平均差分との関係を表すグラフの一例を示す図
【
図12】第2実施形態に係る情報処理装置の構成例を示す図
【
図13】第2実施形態に係る情報処理装置によるネットワーク構造の設計支援処理の典型的な流れを示す図
【
図14】推奨範囲が重畳された、ボトルネックノード数と誤差平均との関係を表すグラフの一例を示す図
【
図15】推奨範囲が重畳された、ボトルネックノード数と誤差平均差分との関係を表すグラフの一例を示す図
【発明を実施するための形態】
【0007】
以下、図面を参照しながら本実施形態に係わる情報処理装置、方法及びプログラムを説明する。
【0008】
(第1実施形態)
図1は、第1実施形態に係る情報処理装置100の構成例を示す図である。
図1に示すように、情報処理装置100は、処理回路1、記憶装置2、入力機器3、通信機器4及び表示機器5を有するコンピュータである。処理回路1、記憶装置2、入力機器3、通信機器4及び表示機器5間のデータ通信はバスを介して行われる。
【0009】
処理回路1は、CPU(Central Processing Unit)等のプロセッサとRAM(Random Access Memory)等のメモリとを有する。処理回路1は、正常データ取得部11、モデル学習部12、疑似異常データ取得部13、性能指標算出部14、記録部15、出力制御部16及び異常検知部17を有する。処理回路1は、オートエンコーダのネットワーク構造の設計支援等に関する設計支援プログラムを実行することにより、上記各部11~17の各機能を実現する。設計支援プログラムは、記憶装置2等の非一時的コンピュータ読み取り可能な記録媒体に記憶されている。設計支援プログラムは、上記各部11~17の全ての機能を記述する単一のプログラムとして実装されてもよいし、幾つかの機能単位に分割された複数のモジュールとして実装されてもよい。また、上記各部11~17は特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等の集積回路により実装されてもよい。この場合、単一の集積回路に実装されても良いし、複数の集積回路に個別に実装されてもよい。
【0010】
正常データ取得部11は、正常データを取得する。正常データは、オートエンコーダに入力される入力データの一種であり、検査対象が正常時であるときのデータである。例えば、検査対象が工場機械である場合、当該工場機械が正常運転しているときに当該工場機械又はその検査機器等が出力するデータである。また、検査対象が半導体製品等の物品である場合、当該物品が正常であるときに当該物品の検査機器が出力するデータである。
【0011】
モデル学習部12は、互いに異なるネットワーク構造を有する複数のオートエンコーダを学習する。典型的には、モデル学習部12は、正常データに基づいて複数のオートエンコーダを学習する。
【0012】
疑似異常データ取得部13は、疑似異常データを取得する。疑似異常データは、疑似的に生成された異常データである。異常データは、正常データとは異なるデータである。すなわち、異常データは、オートエンコーダの学習に使用されないデータであり、オートエンコーダが再現できないデータである。例えば、検査対象が工場機械である場合、当該工場機械が異常運転しているときに当該工場機械又はその検査機器等が出力するデータである。検査対象が半導体製品等の物品である場合、当該物品が異常であるときに当該物品の検査機器が出力するデータである。検査対象の異常を事前に再現することは困難な場合が多く、そのため、異常データは、オートエンコーダの学習時に用意することが難しい。疑似異常データは、各オートエンコーダの異常検知性能を評価するため、疑似的に生成された異常データである。疑似異常データは、正常データにデータオーグメンテーションを施したデータでもよいし、正常データとは異なる他のドメインのデータでもよい。
【0013】
性能指標算出部14は、複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、当該正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出する。入出力誤差は再構成誤差とも呼ばれている。また、性能指標算出部14は、第1の入出力誤差と第2の入出力誤差との差分を算出してもよい。第1の入出力誤差は、正常データと、当該正常データを入力したときのオートエンコーダの出力データとの誤差である。第2の入出力誤差は、疑似異常データと、当該疑似異常データを入力したときのオートエンコーダの出力データとの誤差である。第1の入出力誤差、第2の入出力誤差、第1の入出力誤差と第2の入出力誤差との差分等は、各オートエンコーダの性能を評価する指標(以下、性能指標と呼ぶ)の一例である。
【0014】
記録部15は、オートエンコーダのネットワーク構造毎に性能指標を記憶装置2等に記録し、ネットワーク構造と性能指標との関係データ(以下、構造・性能関係データと呼ぶ)を生成する。
【0015】
出力制御部16は、構造・性能関係データを出力する。構造・性能関係データは、表示機器5に表示されてもよいし、通信機器4を介してコンピュータ等の外部機器に出力されてもよいし、記憶装置2に記憶されてもよい。
【0016】
異常検知部17は、オートエンコーダを利用して異常検知を行う。例えば、異常検知部17は、モデル学習部12により学習された複数のオートエンコーダのうちの、ユーザ等により入力機器3等を介して選択されたオートエンコーダを利用して異常検知を行う。
【0017】
記憶装置2は、ROM(Read Only Memory)やHDD(Hard Disk Drive)、SSD(Solid State Drive)、集積回路記憶装置等により構成される。記憶装置2は、正常データ、疑似異常データ、性能指標、構造・性能関係データ、設定プログラム等を記憶する。
【0018】
入力機器3は、ユーザからの各種指令を入力する。入力機器3としては、キーボードやマウス、各種スイッチ、タッチパッド、タッチパネルディスプレイ等が利用可能である。入力機器3からの出力信号は処理回路1に供給される。なお、入力機器3としては、処理回路1に有線又は無線を介して接続されたコンピュータの入力機器であってもよい。
【0019】
通信機器4は、情報処理装置100にネットワークを介して接続された外部機器との間でデータ通信を行うためのインタフェースである。
【0020】
表示機器5は、種々の情報を表示する。例えば、表示機器5は、出力制御部16による制御に従い、構造・性能関係データを表示する。表示機器5としては、CRT(Cathode-Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、LED(Light-Emitting Diode)ディスプレイ、プラズマディスプレイ又は当技術分野で知られている他の任意のディスプレイが適宜利用可能である。また、表示機器5は、プロジェクタでもよい。
【0021】
以下、第1実施形態に係る情報処理装置100について詳細に説明する。
【0022】
まずは、異常検知部17により実行される、オートエンコーダを利用した異常検知の処理例について簡単に説明する。
図2は、オートエンコーダ20の模式図である。
図2に示すように、オートエンコーダ20は、入力層21、隠れ層22及び出力層23を有するニューラルネットワークである。入力層21には入力データが入力される。隠れ層22は、入力データに対して符号化と復号化とを直列的に実行して、当該入力データから出力データに変換する。出力層23は、出力データを出力する。
【0023】
図2に示すように、隠れ層22は、複数の隠れ層で構成される。これら複数の隠れ層22は、全結合層、コンボリューション層、その他の如何なる層で構成されてもよい。複数の隠れ層22にはボトルネック層24が含まれる。ボトルネック層24は、複数の隠れ層22のうちの最も幅が小さい層である。「幅」は、全結合層におけるノード数又は畳み込み層におけるチャネル数に相当する。ボトルネック層24の位置は、入力層21と出力層23との間にあれば特に限定されない。なお、「位置」は、ボトルネック層24の入力層21又は出力層23からボトルネック層24までの各隠れ層22の個数に対応する。「位置」は深さとも呼ばれる。幅と位置とは、ネットワーク構造を規定するパラメータの一つである。入力データが入力層21からボトルネック層24へ伝播して特徴マップに縮約され、特徴マップがボトルネック層24から出力層23へ伝播して、入力データと同一の解像度を有する出力データに復元される。オートエンコーダ20は、エンコーダ・デコーダ・ネットワークとも呼ばれる。
【0024】
図3は、オートエンコーダを利用した異常検知の処理例を示す図である。
図3に示すように、異常検知部17は、入力データをオートエンコーダに入力して当該入力データに対応する出力データを生成する。入力データは画像データや波形データ等が想定されるが、如何なる形式でもよい。理想的なオートエンコーダであれば、入力データが正常データである場合、オートエンコーダからは当該入力データを再現した出力データが出力され、入力データが異常データである場合、オートエンコーダからは当該入力データとは異なる出力データが出力される。
【0025】
図3に示すように、異常検知部17は、入力データと出力データとの入出力誤差を算出する(ステップS301)。入出力誤差は、入力データ値と出力データ値との同一サンプリング点同士の差分に基づく指標である。入力データが正常データである場合、入出力誤差は略ゼロである。入力データが異常データである場合、入出力誤差は略ゼロにはならない。
【0026】
ステップS301が行われると異常検知部17は、入出力誤差に基づいて異常の有無を判定する(ステップS302)。例えば、入出力誤差が閾値以上であれば異常であると判定し、入出力誤差が閾値未満であれば正常であると判定する。すなわち、入力データが正常データであれば、入出力誤差が閾値未満であるので、正しく正常であると判定される。入力データが異常データであれば、入出力誤差が閾値以上であるので、正しく異常であると判定される。このようにして、オートエンコーダを利用して異常検知が行われる。
【0027】
本実施形態に係る異常検知性能は、オートエンコーダの性能であるとし、正常データである入力データを正しく再現し、異常データである入力データを正しく再現しない能力であるとする。異常検知性能は、ボトルネック層24の幅や位置等のネットワーク構造に依存する。
【0028】
図4は、ボトルネック層のノード数(以下、ボトルネックノード数と呼ぶ)毎の出力データの遷移を示す図である。
図4に示すように、入力データは、「0」から「9」までの数字が描画された画像データであるとする。オートエンコーダは、「0」、「1」、「3」~「9」の画像データについては学習されており、「2」の画像データについては学習されていないものとする。すなわち、「0」「1」「3」~「9」は正常データであり、「2」は異常データである。
図4に示すように、ボトルネックノード数が4以下である場合、オートエンコーダは、異常データだけでなく正常データも再現ができていない。ボトルネックノード数が512以上である場合、オートエンコーダは、正常データだけでなく異常データも再現できてしまっており、恒等写像的な学習が行われてしまっている。これらの場合、オートエンコーダは、良好な異常検知性能を発揮できていないといえる。一方、ボトルネックノード数が8~64の範囲の場合、オートエンコーダは、正常データは再現できているが、異常データは再現できておらず、良好な異常検知性能を発揮しているといえる。
【0029】
図5は、ボトルネックノード数(NUMBER OF NODES)毎の入出力誤差(LOSS)とAUROCとの関係を表すグラフである。
図5の横軸はボトルネックノード数、左縦軸は入出力誤差、右縦軸はAUROCを表す。
図5の入出力誤差は、正常データに関する入出力誤差と異常データに関する入出力誤差との双方を反映した入出力誤差であるとする。AUROCはROC曲線のAUC(曲線下面積)である。AUROCは、異常データを正しく再現しない比率である真陽性率と正常データを正しく再現する比率である真陰性率との比率であり、オートエンコーダの異常検知性能を評価する性能指標の一例である。教師有り学習では入出力誤差の大小で最適な学習パラメータを実験的に決定することが可能である。しかし、
図5に示すように、オートエンコーダで行われる教師無し学習では、入出力誤差を下げても、AUROCが向上するとは限らない。従って入出力誤差を最小化するのみではオートエンコーダの最適な学習パラメータを決定することはできない。これは、
図4に示すように、入出力誤差を減少させるためボトルネックノード数を増加させると、恒等写像が生じ、その結果、異常検知性能が低下するためである。なお、学習パラメータは、機械学習により訓練される重み係数やバイアス等のパラメータである。
【0030】
第1実施形態に係る情報処理装置100は、異常検知性能の良好なオートエンコーダのネットワーク構造を提供することを支援する。
【0031】
図6は、第1実施形態に係る情報処理装置100によるネットワーク構造の設計支援処理の典型的な流れを示す図である。ユーザのよる入力機器3を介して入力された開始指示又は予め設定された所定のトリガを契機として、処理回路1は、記憶装置2から設計支援プログラムを読み出して実行することにより、ネットワーク構造の設計支援処理を開始する。なお、
図6の開始時点において既に正常データ取得部11により正常データが取得され、記憶装置2に格納されているものとする。正常データは、特に限定されないが、
図4に示すような、アラビア数字が描画された画像データであるとする。各画像データには1個の数字が描画されている。描画されているアラビア数字は1桁でもよいし2桁以上でもよく、また、2個以上の画像データに同一の数字が描画されていてもよい。
【0032】
図6に示すように、モデル学習部12は、正常データに基づいて、異なるネットワーク構造を有する複数のオートエンコーダを学習する(ステップS601)。ステップS601においてモデル学習部12は、共通の正常データに基づいて複数のオートエンコーダを個別に教師無し学習する。これにより各オートエンコーダの重みやバイアス等の学習パラメータが決定される。
【0033】
複数のオートエンコーダ間において異なるように設定されるネットワーク構造としては、ボトルネック層に関する幅や位置が挙げられる。上記の通り、幅は、ノード数やチャネル数を意味する。位置は、ボトルネック層の入力層又は出力層からの深さを意味する。本実施例においては、複数のオートエンコーダにおいて、ボトルネック層の幅、より詳細には、ボトルネックノード数が異なるものとする。
【0034】
図7は、ステップS601において学習される複数のオートエンコーダ20
nを模式的に示す図である。なお、「n」はオートエンコーダの番号を表し、2≦n≦Nである。「N」はオートエンコーダの総数であり、N≧2である。
図7に示すように、未学習のN個のオートエンコーダ20
nが用意される。各オートエンコーダ20
nは、ネットワーク構造の一例であるボトルネック層24
nのノード数(ボトルネックノード数)が異なるように設計されている。なお、ボトルネック層24
nを除いた各層の幅は同一であるとする。また、ボトルネック層24
nの位置も同一であるとする。学習されるオートエンコーダの個数は特に限定されない。また、ボトルネックノード数の下限及び上限も特に限定されない。
【0035】
ステップS601が行われると疑似異常データ取得部13は、正常データに基づいて疑似異常データを生成する(ステップS602)。
【0036】
図8は、疑似異常データの生成処理を模式的に示す図である。
図8に示すように、疑似異常データ取得部13は、ステップS601においてオートエンコーダの学習に使用した正常データにデータオーグメンテーションを施して疑似異常データを生成する。データオーグメンテーションは、水平移動、並行移動、例えば、水平及び/又は垂直への数ピクセルのシフトとする。また、データオーグメンテーションは、反転、回転等の他の変形でもよい。なお、データオーグメンテーションは、画像サイズの変形は伴わないものとする。すなわち、正常データと疑似異常データとの画像サイズは同一である。
【0037】
ステップS602が行われると性能指標算出部14は、複数のオートエンコーダ各々について、正常データに関する入出力誤差と疑似異常データに関する入出力誤差とを算出する(ステップS603)。
【0038】
図9は、各オートエンコーダ20
nについての正常データ及び疑似異常データ各々に関する入出力誤差の算出処理を模式的に示す図である。
図9に示すように、性能指標算出部14は、まず、オートエンコーダ20
nに正常データ(入力正常データ)を入力して当該正常データに対応する出力データ(出力正常データ)を算出する。そして性能指標算出部14は、入力正常データと出力正常データとの誤差を入出力誤差として算出する。同様に、性能指標算出部14は、まず、オートエンコーダ20
nに疑似異常データ(入力疑似異常データ)を入力して当該疑似異常データに対応する出力データ(以下、出力疑似異常データと呼ぶ)を算出する。そして性能指標算出部14は、入力疑似異常データと出力疑似異常データとの誤差を入出力誤差として算出する。性能指標算出部14は、複数のオートエンコーダ20
n各々について、正常データと疑似異常データとの双方について入出力誤差を算出する。入出力誤差は、入力データと出力データとの誤差を評価する指標である。入出力誤差としては、例えば、誤差平均が用いられるとよい。誤差平均は、入力データと出力データとの画素毎の差分の平均として定義される。
【0039】
ここで、正常データと疑似異常データとをそれぞれxn
iとxpa
iとする。「i」はi番目のデータを示す。入力がxn
i及びxpa
iのときのボトルネックノード数kのオートエンコーダの出力をそれぞれyn
i(k)及びypa
i(k)とする。正常データに関する入出力の誤差平均Ln(k)は下記の(1)式により、疑似異常データに関する入出力の誤差平均Lpa(k)は、下記の(2)式により算出される。(1)式のNnは正常データのデータ数であり、(2)式のNpaは疑似異常データのデータ数である。
【0040】
【0041】
ステップS603が行われると記録部15は、ネットワーク構造毎に入出力誤差を記録する(ステップS604)。より詳細には、ネットワーク構造毎に、正常データに関する入出力誤差と疑似異常データに関する入出力誤差とが記録される。このネットワーク構造毎の正常データに関する入出力誤差と疑似異常データに関する入出力誤差との関係を示す構造・性能関係データを、構造・誤差関係データと呼ぶことにする。例えば、ネットワーク構造がボトルネックノード数である場合、記録部15は、構造・誤差関係データとして、各ボトルネックノード数kと、当該ボトルネックノード数のときの誤差平均Ln(k)及びLpa(k)を記録する。また、記録部15は、構造・誤差関係データとして、各ボトルネックノード数kと、当該ボトルネックノード数のときの誤差平均Ln(k)と誤差平均Lpa(k)との差分(以下、誤差平均差分と呼ぶ)Lpa(k)-Ln(k)を記録してもよい。誤差平均差分は、ネットワーク構造に関する性能指標の一例であり、性能指標算出部14により算出される。
【0042】
ステップS604が行われると出力制御部16は、ネットワーク構造と入出力誤差との関係データ(構造・誤差関係データ)を出力する(ステップS605)。ステップS605において出力制御部16は、構造・誤差関係データとして、構造・誤差関係データを表すグラフを、表示機器5に表示する。構造・誤差関係データを表すグラフとして、ボトルネックノード数と誤差平均との関係を表すグラフやボトルネックノード数と誤差平均差分との関係を表すグラフが表示される。
【0043】
図10は、ボトルネックノード数と誤差平均との関係を表すグラフの一例を示す図である。
図10に示すように、グラフは、縦軸が誤差平均(LOSS)を表し、横軸がボトルネックノード数(NODES)を表す。
図10には、正常データに関する誤差平均を表す曲線101と疑似異常データ102に関する誤差平均を表す曲線とが示されている。
図11は、ボトルネックノード数と誤差平均差分との関係を表すグラフの一例を示す図である。
図11に示すように、グラフは、縦軸が誤差平均差分(DIFF)を表し、横軸がボトルネックノード数(NODES)を表す。
図11には、誤差平均差分を表す曲線111が示されている。正常データに関する誤差平均L
n(k)で正常データを再現できるかが分かる。疑似異常データに関する誤差平均L
pa(k)で恒等写像が生じているかが分かる。
【0044】
ユーザは、
図10や
図11等のグラフを観察して最適なボトルネックノード数を決定する。ユーザは、誤差平均L
n(k)が小さく且つ誤差平均L
pa(k)が大きいボトルネックノード数を、最適なネットワーク構造として決定するとよい。または、誤差平均差分L
pa(k)-L
n(k)が大きいときのボトルネックノード数を、最適なネットワーク構造として決定する。
図10及び
図11の場合、おおよそボトルネックノード数が8以上のとき、正常データの再現不良が解消され、おおよそボトルネックノード数が100以上のとき、疑似異常データの恒等写像が生じていることが分かる。この場合、8以上100未満のボトルネックノード数を有するオートエンコーダが比較的高精度であることが期待されるので、この範囲の何れかのボトルネックノード数を有するオートエンコーダが最適なボトルネックノード数を有するオートエンコーダとして決定されるとよい。
【0045】
誤差平均Ln(k)と誤差平均Lpa(k)との双方のグラフを表示するか、誤差平均差分Lpa(k)-Ln(k)のグラフを表示するかは、ユーザが入力機器3等を介して任意に指定可能である。また、誤差平均Ln(k)と誤差平均Lpa(k)との何れか一方のグラフが表示されてもよい。
【0046】
最適なネットワーク構造は、ステップS601において学習されたものの中から決定されてもよいし、ステップS601において学習されていないネットワーク構造が決定されてもよい。ステップS601において学習されていないネットワーク構造が決定された場合、当該ネットワーク構造を有するオートエンコーダがモデル学習部12により学習されるとよい。この際、モデル学習部12は、正常データに基づいて当該ネットワーク構造を有するオートエンコーダを教師無し学習すればよい。その後、ユーザにより決定されたオートエンコーダを利用して異常検知部17により異常検知が行われてもよい。
【0047】
ステップS605が行われると、
図6に示す設計支援処理が終了する。
【0048】
なお、上記の第1実施形態は種々の変形が可能である。一例として、情報処理装置100はモデル学習部12を有しなくてもよい。この場合、情報処理装置100は、外部機器によりステップS601に従い学習された、異なるネットワーク構造を有する複数のオートエンコーダを取得すればよい。他の例として、情報処理装置100は、異常検知部17を有しなくてもよい。
【0049】
上記実施例によれば、情報処理装置100は、性能指標算出部14と出力制御部16とを有する。性能指標算出部14は、互いに異なるネットワーク構造を有する複数のオートエンコーダ各々について、正常データに関する第1の入出力誤差と、正常データとは異なる疑似異常データに関する第2の入出力誤差とを算出する。出力制御部16は、ネットワーク構造と第1の入出力誤差及び第2の入出力誤差との関係を表す関係データを出力する。
【0050】
第1の入出力誤差は正常データの再現度合いを計る指標として機能し、第2の入出力誤差は疑似異常データの恒等写像度合いを計る指標として機能する。ボトルネック層の幅や位置等の異なるネットワーク構造はオートエンコーダによる異常検知精度に大きな影響を与える。上記の構成の通り、ネットワーク構造と第1の入出力誤差及び第2の入出力誤差との関係を表す関係データを出力することにより、オートエンコーダの最適ネットワーク構造の設計を支援することが可能になる。よって、異常検知性能の良好なオートエンコーダを得ることが可能になる。また、本実施形態によれば、実際の異常データを使用する教師有り学習ではなく、教師無し学習により複数のオートエンコーダを学習すればよく、したがって、実際の異常データを用いることなく、良好な異常検知性能を達成することが可能になる。
【0051】
(第2実施形態)
第2実施形態に係る情報処理装置は、最適なネットワーク構造を推論する。以下、第2実施形態について説明する。なお以下の説明において、第1実施形態と略同一の機能を有する構成要素については、同一符号を付し、必要な場合にのみ重複説明する。
【0052】
図12は、第2実施形態に係る情報処理装置200の構成例を示す図である。
図12に示すように、情報処理装置200の処理回路1は、設計支援プログラムを実行することにより正常データ取得部11、モデル学習部12、疑似異常データ取得部13、性能指標算出部14、記録部15、出力制御部16及び異常検知部17に加え、推論部18を有する。
【0053】
推論部18は、正常データに関する入出力誤差と疑似異常データに関する入出力誤差との関係を表す構造・誤差関係データに基づいて、ネットワーク構造の推奨範囲又は最適値を推論する。
【0054】
図13は、第2実施形態に係る情報処理装置200によるネットワーク構造の設計支援処理の典型的な流れを示す図である。ユーザのよる入力機器3を介して入力された開始指示又は予め設定された所定のトリガを契機として、処理回路1は、記憶装置2から設計支援プログラムを読み出して実行することにより、ネットワーク構造の設計支援処理を開始する。
図13に示すステップS1301~S1304は
図6に示すステップS601~S604と同様であるので、ここでの説明を省略する。また、ネットワーク構造はボトルネックノード数であるとする。
【0055】
ステップS1304が行われると推論部18は、ステップS1304において記録された入出力誤差に基づいてネットワーク構造(ボトルネックノード数)の推奨範囲を推論する(ステップS1305)。より詳細には、推論部18は、正常データに関する入出力誤差と疑似異常データに関する入出力誤差との差分に基づいてボトルネックノード数の推奨範囲を推論する。
【0056】
図14は、推奨範囲141が重畳された、ボトルネックノード数と誤差平均との関係を表すグラフの一例を示す図である。
図15は、推奨範囲141が重畳された、ボトルネックノード数と誤差平均差分との関係を表すグラフの一例を示す図である。なお、誤差平均は入出力誤差の一例であり、誤差平均差分は正常データに関する入出力誤差と疑似異常データに関する入出力誤差との差分の一例である。
図14及び
図15に示すように、推奨範囲141は、誤差平均差分が閾値以上であるボトルネックノード数の範囲に設定される。
図14及び
図15の場合、閾値は0.06程度に設定される。推奨範囲141は、正常データの再現度合いが第1水準以上であり且つ疑似異常データの恒等写像度合いが第2水準以下である範囲を意味する。正常データの再現度合いは正常データの入出力誤差により評価される。入出力誤差が小さいほど再現度合いが高いことを意味する。
図14の場合、第1水準は、0.02程度に設定される。疑似異常データの恒等写像度合いは疑似異常データの入出力誤差により評価される。入出力誤差が小さいほど恒等写像度合いが高いことを意味する。
図14の場合、第2水準は、0.07程度に設定される。このように定義される推奨範囲141を満たすボトルネックノード数を有するオートエンコーダは、正常データの再現度合いが高く且つ異常データの再現度合いが低いといえ、異常検出精度が高いといえる。
【0057】
ステップS1305が行われると出力制御部16は、ステップS1305において推論された推奨範囲を出力する(ステップS1306)。ステップS1306において出力制御部16は、推奨範囲を、表示機器5に表示する。例えば、出力制御部16は、
図14に示すように、推奨範囲141を、ボトルネックノード数と誤差平均との関係を表すグラフに重畳して表示してもよいし、
図15に示すように、ボトルネックノード数と誤差平均差分との関係を表すグラフに重畳して表示してもよい。このように推奨範囲を表示することにより、ユーザは、容易に推奨範囲141を確認することが可能になる。また、入出力誤差とボトルネックノード数との関係を表すグラフに重畳して推奨範囲141を表示することにより、推奨範囲141の信憑性を推し量ることも可能になる。
【0058】
ステップS1306が行われると、
図13に示す設計支援処理が終了する。ユーザにより決定されたオートエンコーダを利用して異常検知部17により異常検知が行われてもよい。なお、異常検知部17は情報処理装置200に含まれていなくてもよい。
【0059】
なお、
図13に示す設計支援処理は種々の変形が可能である。上記の実施例において推論部18は、正常データに関する入出力誤差と疑似異常データに関する入出力誤差との差分に基づいてネットワーク構造の推奨範囲を推論するものとした。しかしながら、推奨範囲の推論方法はこれに限定されない。例えば、推論部18は、ネットワーク構造の変化に伴う正常データの入出力誤差、疑似異常データの入出力誤差及び/又は入出力誤差差分の変化に基づいて推奨範囲を推論してもよい。
【0060】
図14を参照すると、正常データの入出力誤差が急激に減少するボトルネックノード数と、疑似異常データの入出力誤差が急激に減少するボトルネックノード数との間の範囲が推奨範囲に設定されるとよい。具体的には、推論部18は、正常データの入出力誤差と疑似異常データの入出力誤差との各々について、ボトルネックノード数毎に当該ボトルネックノード数での微分値を算出する。そして推論部18は、正常データの入出力誤差の各微分値に基づいて推奨範囲の最小ノード数を特定する。例えば、微分値が最小値をとるボトルネックノード数、微分値が閾値より小さく且つ絶対値が比較的小さい範囲に収束する直前のボトルネックノード数等が最小ノード数として特定されるとよい。また、推論部18は、各疑似異常データの入出力誤差の微分値に基づいて推奨範囲の最大ノード数を特定する。例えば、微分値が最小値をとるボトルネックノード数、微分値が閾値より小さく且つ絶対値が比較的小さい範囲に収束する直前のボトルネックノード数等が最大ノード数として特定されるとよい。最小ノード数と最大ノード数との間の範囲が推奨範囲に設定される。正常データの入出力誤差の曲線形状と疑似異常データの曲線形状とに基づいて、正常データの入出力誤差が急激に減少する最小ノード数と、疑似異常データの入出力誤差が急激に減少する最大ノード数とを特定してもよい。最小ノード数と最大ノード数との間の範囲が推奨範囲に設定される。
【0061】
図15を参照すると、入出力誤差差分が急激に上昇するボトルネックノード数と、急激に減少するボトルネックノード数との間の範囲が推奨範囲に設定されてもよい。具体的には、推論部18は、ボトルネックノード数毎に当該ボトルネックノード数での入出力誤差差分の微分値を算出する。そして推論部18は、入出力誤差差分の各微分値に基づいて推奨範囲の最小ノード数と最大ノード数とを特定する。例えば、微分値が最大値をとるボトルネックノード数、微分値が閾値より大きく且つ絶対値が比較的小さい範囲に収束する直前のボトルネックノード数等が最小ノード数として特定されるとよい。また、微分値が最小値をとるボトルネックノード数、微分値が閾値より小さく且つ絶対値が比較的小さい範囲に収束する直後のボトルネックノード数等が最大ノード数として特定されるとよい。入出力誤差差分の曲線形状に基づいて、入出力誤差差分が急激に上昇する最小ノード数と、入出力誤差差分が急激に減少する最大ノード数とを特定し、両ノード数間を推奨範囲として特定してもよい。入出力誤差差分の最大値の90%等の所定範囲を推奨範囲として特定してもよい。
【0062】
上記実施例において推論部18は、推奨範囲を推論するものとした。しかしながら、推論部18は、ネットワーク構造と、正常データの入出力誤差及び疑似異常データの入出力誤差との関係データ(構造・誤差関係データ)に基づいてネットワーク構造の最適値を推論してもよい。例えば、推論部18は、正常データの入出力誤差と疑似異常データの入出力誤差との差分が最大値をとるネットワーク構造を最適値として特定する。また、推論部18は、推奨範囲に含まれるネットワーク構造の中から、計算コストや等の他の条件を満足するネットワーク構造を最適値として特定してもよい。出力制御部16は、最適値を表示機器5に表示するとよい。表示形態は特に限定されず、単に最適に対応するネットワーク構造の数値を表示してもよいし、最適値も推奨範囲と同様、ボトルネックノード数と誤差平均との関係を表すグラフやボトルネックノード数と誤差平均差分との関係を表すグラフに重畳して表示してもよい。また、推奨範囲と共に最適値を表示してもよい。なお、最適値は、ステップS601又はステップS1301で学習されたネットワーク構造から選択されてもよいし、学習されていないネットワーク構造が選択されてもよい。
【0063】
上記実施例において推論部18は、ステップS601やS1301において、比較的広範に亘る複数のネットワーク構造のオートエンコーダを一度に網羅的に学習するものとした。しかしながら、推論部18は、広範に亘る複数のネットワーク構造のオートエンコーダを階層的に学習してもよい。以下、この実施例について
図6の例に倣い説明する。
【0064】
まず、ステップS601において推論部18は、広範に亘り離散的に設定された少数個のネットワーク構造のオートエンコーダを学習する。例えば、
図10や
図11の例の場合、10
0、10
1、10
2、10
3、10
4の5個のボトルネックノード数のオートエンコーダについて学習が行われる。そしてステップS602~ステップS605を実行して、この5個のボトルネックノード数各々と入出力誤差との関係を表すグラフが表示機器5に表示される。ユーザは、グラフを観察し、詳細に検討したいボトルネックノード数の範囲を、入力機器3を介して指定する。推論部18は、指定された範囲に亘り離散的に設定された複数のネットワーク構造のオートエンコーダを学習する。例えば、10
1~10
2の範囲が指定された場合、10、25、50、75、100の5個のボトルネックノード数のオートエンコーダについて学習が行われる。そしてステップS602~ステップS605を実行して、この5個のボトルネックノード数各々と入出力誤差との関係を表すグラフが表示機器5に表示される。これにより、指定された範囲について詳細に最適なボトルネックノード数を検討することが可能になる。このように階層的に学習を行うことにより、学習するオートエンコーダの個数を減らすことが可能になり、効率的に最適なネットワーク構造を探索することが可能になる。
【0065】
(変形例)
上記実施例については、正常データに対してデータオーグメンテーションを施して生成されたデータを疑似異常データの具体例に挙げて説明した。変形例に係る疑似異常データは、正常データとは異なる他のドメインのデータでもよい。以下、変形例について
図6の例に倣い説明する。
【0066】
まず、ステップS601においてモデル学習部12は、正常データに基づいて、異なるネットワーク構造を有する複数のオートエンコーダを学習する。正常データは、
図4等に示すような、数字が描画された画像データであるとする。ステップS602において疑似異常データ取得部13は、正常データとは異なるドメインの画像データを記憶装置2や外部機器等から取得する。ドメインとは、画像データの場合、描画対象や撮影条件、画像パラメータ等を意味する。例えば、疑似異常データとして、衣類や靴等が描画された画像データであるとする。その後、上記実施例と同様、ステップS603~S605が行われ、ネットワーク構造と入出力誤差との関係を表すグラフ等が表示機器5に表示される。
【0067】
この際、出力制御部16は、ネットワーク構造毎の、疑似異常データを入力したときの複数のオートエンコーダ各々の出力データの一覧を出力してもよい。この一覧を出力データ一覧と呼ぶことにする。出力データ一覧について説明する。なお、ネットワーク構造は、一例として、ボトルネックノード数であるとする。
【0068】
図16は、出力データ一覧161の一例を示す図である。
図16に示すように、出力データ一覧161は、ボトルネックノード数各々について、複数のオートエンコーダ各々の出力画像データを配列している。換言すれば、出力データ一覧161は、ボトルネックノード数の変化に伴う、複数のオートエンコーダ各々の出力画像データの変化を表している。最上列には、オートエンコーダへの入力画像データ(疑似異常データ)として、10種類の衣類又は靴が描画された画像データが配列されている。各疑似異常データを入力したときの各ボトルネックノード数のオートエンコーダからの出力画像データが、縦軸に沿って配列されている。
【0069】
図16に示す出力データ一覧は、例えば、表示機器5に表示される。ユーザは、出力データ一覧161を参照することにより、ボトルネックノード数の変化に伴う出力画像データの変化を視覚的に把握することが可能になる。例えば、概ね、ボトルネックノード数が1では、出力画像データが正常データすらも再現しておらず、異常検知精度としては再現不良であり、10~96の範囲では、出力画像データが疑似異常データを再現しておらず、異常検知精度としては比較的良好であり、256~1024の範囲では、出力画像データが疑似異常データを再現しており、恒等写像を起こしているのが視覚的に分かる。
【0070】
上記例では、疑似異常データとして他ドメインのデータを使用する場合に、出力データ一覧を出力するものとしたが、本実施形態はこれに限定されない。正常データに対してデータオーグメンテーションを施したデータを疑似異常データとして使用する場合にも出力データ一覧を出力してもよい。また、出力データ一覧は、表示機器5に表示するのみならず、記憶装置2に記憶してもよいし、通信機器4を介して外部機器に表示されてもよい。
【0071】
上記例では、ネットワーク構造がボトルネック層の幅又は深さである場合を例に挙げて説明したが、本実施形態はこれに限定されない。ネットワーク構造が、ボトルネック層の幅及び深さの組合せであってもよい。
【0072】
かくして、高い異常検知性能を有するオートエンコーダの作成を支援することが可能になる。
【0073】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0074】
1…処理回路、2…記憶装置、3…入力機器、4…通信機器、5…表示機器、11…正常データ取得部、12…モデル学習部、13…疑似異常データ取得部、14…性能指標算出部、15…記録部、16…出力制御部、17…異常検知部、18…推論部。