(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】機械学習装置
(51)【国際特許分類】
G06N 3/08 20230101AFI20240716BHJP
G06N 3/0455 20230101ALI20240716BHJP
【FI】
G06N3/08
G06N3/0455
(21)【出願番号】P 2021110289
(22)【出願日】2021-07-01
【審査請求日】2023-03-15
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】古庄 泰隆
(72)【発明者】
【氏名】坂田 幸辰
(72)【発明者】
【氏名】新田 修平
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2019-113914(JP,A)
【文献】米国特許出願公開第2016/0155136(US,A1)
【文献】特開2018-049355(JP,A)
【文献】特開2020-113119(JP,A)
【文献】加藤 聡太 ほか,"Contrastive Learningを用いた肺野CT画像からCOVID-19の自動判定",電子情報通信学会技術研究報告,一般社団法人 電子情報通信学会,2021年03月,第120巻, 第431号,pp. 82-86,ISSN 2432-6380
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
複数個の学習データに基づいて、入力データから前記入力データの特徴データを抽出する抽出層の第1の学習パラメータを訓練する第1学習部と、
前記複数個の学習データに学習済みの抽出層を適用して得られる複数個の学習特徴データに基づいて、前記入力データの再構成データを生成する再構成層の第2の学習パラメータを訓練する部であって、前記第2の学習パラメータは、前記特徴データの次元数個の代表ベクトルを表し、前記次元数個の代表ベクトルは、前記複数個の学習データの重み付き和で規定される、第2学習部と、
を具備する機械学習装置。
【請求項2】
学習データに前記学習済みの抽出層を適用して得られる学習特徴データと前記学習特徴データに学習済みの再構成層を適用して得られる学習再構成データとに基づいて、異常検知に関する過検出率を算出する算出部と、
前記過検出率を表示する表示部と、を更に備える、
請求項1記載の機械学習装置。
【請求項3】
前記算出部は、前記学習特徴データと前記学習再構成データとの誤差の確率分布を算出し、前記確率分布において前記誤差が閾値以上になる確率を前記過検出率として算出し、
前記表示部は、前記閾値に対する前記過検出率のグラフを表示する、
請求項2記載の機械学習装置。
【請求項4】
前記抽出層と前記再構成層とを含む機械学習モデルを利用した前記入力データの異常の有無の判定のための閾値を、操作者により前記グラフを介して指定された値に設定する設定部を更に備える、請求項3記載の機械学習装置。
【請求項5】
前記第1学習部は、前記学習データが正常データのみを含む場合、2個の正常データの内積と前記2個の正常データに対応する2個の特徴データの内積との正の相関が高くなるように前記第1の学習パラメータを訓練する、請求項1記載の機械学習装置。
【請求項6】
前記第1学習部は、前記学習データが正常データと異常データとを含む場合、正常データと異常データとの内積と、前記正常データに対応する特徴データと前記異常データに対応する特徴データとの内積と、の負の相関が高くなるように前記第1の学習パラメータを訓練する、請求項1記載の機械学習装置。
【請求項7】
前記第1学習部は、前記学習データの内積と前記学習データに対応する特徴データの内積とに基づく対照学習及び無相関化により前記第1の学習パラメータを訓練する、請求項1記載の機械学習装置。
【請求項8】
前記第2学習部は、前記学習特徴データと前記学習特徴データを前記再構成層に適用して得られる学習再構成データとの誤差最小化により前記第2の学習パラメータを訓練する、請求項1記載の機械学習装置。
【請求項9】
前記再構成層は、線形回帰モデルである、請求項8記載の機械学習装置。
【請求項10】
前記抽出層と前記再構成層とを含む機械学習モデルは、前記再構成データと前記入力データとの誤差と、閾値との比較に基づいて前記入力データの異常の有無の判定結果を出力する判定層を含む、請求項1記載の機械学習装置。
【請求項11】
前記次元数個の代表ベクトルは、前記複数個の学習データの重み付き和で規定され、
前記重みは、前記複数個の学習特徴データに基づく値を有する、
請求項1記載の機械学習装置。
【請求項12】
前記次元数個は、前記抽出層と前記再構成層とを含む機械学習モデルを実装する装置のメモリに対して割り当てられる、前記機械学習モデルに要する記憶容量に応じて決定される、請求項1記載の機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習装置に関する。
【背景技術】
【0002】
与えられた診断用データの正常又は異常の判定を行う異常検知装置がある。異常検知装置は、診断用データを、事前に用意した正常データの重み付き和に適用して再構成し、その再構成誤差が閾値より大きければ異常であると判定する。診断用データを正常データの重み付き和で再構成するため、異常データの再構成誤差が正常データの再構成誤差と比較して大きくなることを利用して、高精度な異常検知を実現できる。しかし、正常データを正確に再構成するためには、多くの正常データをメモリに保存して、それらを用いて再構成を行う必要があるため、正常データの個数に依存した膨大なメモリ容量が再構成に要求されることとなる。
【先行技術文献】
【非特許文献】
【0003】
【文献】加藤佑一、他6名、“ニューラルネットワーク近傍法による異常検知の性能評価”、[online]、The 34th Annual Conference of the Japanese Society for Artificial Intelligence,2020、[令和3年6月18日検索]、インターネット<URL: https://www.jstage.jst.go.jp/article/pjsai/JSAI2020/0/JSAI2020_2I4GS202/_article/-char/ja/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、省メモリで高精度な異常検知を行うことである。
【課題を解決するための手段】
【0005】
実施形態に係る機械学習装置は、第1学習部と第2学習部とを有する。第1学習部は、複数個の学習データに基づいて、入力データから前記入力データの特徴データを抽出する抽出層の第1の学習パラメータを訓練する。第2学習部は、前記複数個の学習データに学習済みの抽出層を適用して得られる複数個の学習特徴データに基づいて、前記入力データの再構成データを生成する再構成層の第2の学習パラメータを訓練する部であって、前記第2の学習パラメータは、前記特徴データの次元数個の代表ベクトルを表し、前記次元数個の代表ベクトルは、前記複数個の学習データの重み付き和で規定される。
【図面の簡単な説明】
【0006】
【
図1】本実施形態に係る機械学習モデルのネットワーク構成例を示す図
【
図2】第1実施形態に係る機械学習装置の構成例を示す図
【
図3】機械学習モデルの学習処理の流れの一例を示す図
【
図6】閾値毎の過検出率を表すグラフの表示例を示す図
【
図7】第2実施形態に係る異常検知装置の構成例を示す図
【
図9】再構成層における演算の数式表現を模式的に示す図
【
図10】再構成層における演算の画像表現を模式的に示す図
【
図11】機械学習モデルの異常検知性能を示すグラフ
【発明を実施するための形態】
【0007】
以下、図面を参照しながら本実施形態に係わる機械学習装置、異常検知装置及び異常検知方法を説明する。
【0008】
本実施形態に係る機械学習装置は、入力データの異常の有無を判定するための機械学習モデルを訓練するコンピュータである。本実施形態に係る異常検知装置は、機械学習装置により訓練された学習済みの機械学習モデルを利用して、異常検知対象に関する入力データの異常の有無を判定するコンピュータである。
【0009】
図1は、本実施形態に係る機械学習モデル1のネットワーク構成例を示す図である。
図1に示すように、機械学習モデル1は、入力データを入力して、当該入力データの異常の有無の判定結果を出力するように訓練されたニューラルネットワークである。一例として、機械学習モデル1は、特徴抽出層11、再構成層12、誤差演算層13及び判定層14を有する。特徴抽出層11、再構成層12、誤差演算層13及び判定層14各々は、全結合層や畳み込み層、プーリング層、ソフトマックス層、その他の任意のネットワーク層により構成されればよい。
【0010】
本実施形態における入力データは、機械学習モデル1に入力されるデータであり、異常判定対象に関するデータである。本実施形態に係る入力データの種類としては、画像データ、ネットワークセキュリティーデータ、音声データ、センサデータ、映像データ等が適用可能である。本実施形態に係る入力データは異常判定対象に応じて種々様々である。例えば、異常判定対象が工業製品である場合、入力データとしては、当該工業製品の画像データ、当該工業製品のための製造機械からの出力データや当該製造機械の検査機器からの出力データが用いられる。他の例として、異常判定対象が人体である場合、入力データとしては、医用画像診断装置により得られた医用画像データ、臨床検査装置等により得られた臨床検査データ等が用いられる。
【0011】
特徴抽出層11は、入力データを入力して当該入力データの特徴データを出力するネットワーク層である。再構成層12は、特徴データを入力して、入力データを再現した再構成データを出力するネットワーク層である。誤差演算層13は、入力データと再構成データとの誤差を演算するネットワーク層である。判定層14は、誤差演算層13から出力された誤差と、閾値との比較に基づいて入力データの異常の有無の判定結果を出力するネットワーク層である。判定結果としては、一例として、異常又は正常のクラスが出力される。
【0012】
特徴抽出層11及び再構成層12は、特徴抽出層11及び再構成層12の組み合わせにより、正常データを再現し、異常データを再現しないように各学習パラメータが訓練される。ここで、正常データとは、異常判定対象が正常である場合の入力データを意味し、異常データは、異常判定対象が異常である場合の入力データを意味する。典型的には、異常データは機械学習モデル1の訓練時において得ることができないものであり、正常データを用いて機械学習モデル1が訓練される。このため、特徴抽出層11及び再構成層12は、正常データを再現し、異常データを再現しないことができる。
【0013】
入力データが正常データである場合、入力データと再構成データとの誤差は、比較的小さい値を有するが、入力データが異常データである場合、入力データと再構成データとの誤差は、比較的大きい値を有することとなる。従って適切な閾値が設定されていれば、入力データが正常データである場合、正しく「正常」であると判定し、入力データが異常データである場合、正しく「異常」であると判定されることとなる。
【0014】
(第1実施形態)
図2は、第1実施形態に係る機械学習装置2の構成例を示す図である。
図2に示すように、機械学習装置2は、処理回路21、記憶装置22、入力機器23、通信機器24及び表示機器25を有するコンピュータである。処理回路21、記憶装置22、入力機器23、通信機器24及び表示機器25間のデータ通信はバスを介して行われる。
【0015】
処理回路21は、CPU(Central Processing Unit)等のプロセッサとRAM(Random Access Memory)等のメモリとを有する。処理回路21は、取得部211、第1学習部212、第2学習部213、過検出率算出部214、閾値設定部215及び表示制御部216を有する。処理回路21は、本実施形態に係る機械学習に関する機械学習プログラムを実行することにより、上記各部211~216の各機能を実現する。機械学習プログラムは、記憶装置22等の非一時的コンピュータ読み取り可能な記録媒体に記憶されている。機械学習プログラムは、上記各部211~216の全ての機能を記述する単一のプログラムとして実装されてもよいし、幾つかの機能単位に分割された複数のモジュールとして実装されてもよい。また、上記各部211~216は特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等の集積回路により実装されてもよい。この場合、単一の集積回路に実装されても良いし、複数の集積回路に個別に実装されてもよい。
【0016】
取得部211は、複数個の学習データを取得する。学習データは、学習用の入力データを意味する。学習データは、正常データであってもよいし、異常データであってもよい。
【0017】
第1学習部212は、複数個の学習データに基づいて特徴抽出層11の第1の学習パラメータを訓練する。ここで、第1の学習パラメータは、特徴抽出層11の学習パラメータを意味する。学習パラメータは、機械学習による訓練対象のパラメータであり、重みパラメータやバイアスが一例である。
【0018】
第2学習部213は、複数個の学習データに学習済みの特徴抽出層11を適用して得られる複数個の学習特徴データに基づいて、再構成層12の第2の学習パラメータを訓練する。ここで、第2の学習パラメータは、再構成層12の学習パラメータを意味する。一例として、第2の学習パラメータは、特徴データの次元数個の代表ベクトルを表す。次元数個の代表ベクトルは、複数個の学習データの重み付き和で規定される。第2学習部213は、学習特徴データと当該学習特徴データを再構成層12に適用して得られる学習再構成データとの誤差を最小化することにより第2の学習パラメータを訓練する。
【0019】
過検出率算出部214は、学習データに学習済みの特徴抽出層11を適用して得られる学習特徴データと当該学習特徴データに学習済みの再構成層12を適用して得られる学習再構成データとに基づいて、異常検知に関する過検出率を算出する。具体的には、過検出率算出部214は、学習特徴データと学習再構成データとの誤差の確率分布を算出し、確率分布において誤差が閾値以上になる確率を過検出率として算出する。
【0020】
閾値設定部215は、判定層14で利用する異常検知のための閾値(以下、異常検知閾値と呼ぶ)を設定する。閾値設定部215は、異常検知閾値を、閾値毎の過検出率を表すグラフにおいて指定された値に設定する。
【0021】
表示制御部216は、種々の情報を表示機器25に表示する。一例として、表示制御部216は、過検出率を所定の表示形態で表示する。具体的には、表示制御部216は、閾値毎の過検出率を表すグラフ等を表示する。
【0022】
記憶装置22は、ROM(Read Only Memory)やHDD(Hard Disk Drive)、SSD(Solid State Drive)、集積回路記憶装置等により構成される。記憶装置22は、学習データや機械学習プログラム等を記憶する。
【0023】
入力機器23は、ユーザからの各種指令を入力する。入力機器23としては、キーボードやマウス、各種スイッチ、タッチパッド、タッチパネルディスプレイ等が利用可能である。入力機器23からの出力信号は処理回路21に供給される。なお、入力機器23としては、処理回路21に有線又は無線を介して接続されたコンピュータの入力機器であってもよい。
【0024】
通信機器24は、機械学習装置2にネットワークを介して接続された外部機器との間でデータ通信を行うためのインタフェースである。例えば、学習データの生成機器や保管機器等から学習データを受信する。
【0025】
表示機器25は、種々の情報を表示する。一例として、表示機器25は、表示制御部216による制御に従い過検出率を表示する。表示機器25としては、CRT(Cathode-Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、LED(Light-Emitting Diode)ディスプレイ、プラズマディスプレイ又は当技術分野で知られている他の任意のディスプレイが適宜利用可能である。また、表示機器25は、プロジェクタでもよい。
【0026】
以下、第1実施形態に係る機械学習装置2による機械学習モデル1の学習処理について説明する。本実施例において入力データは、一例として、「0」から「9」までの1個の数字が描画された画像データであるとする。「0」が描画された画像データが異常データであり、その他の「1」から「9」の各々が描画された画像データが正常データであるとする。本実施例において学習データは正常データであるとする。
【0027】
図3は、機械学習モデル1の学習処理の流れの一例を示す図である。
図3に示す学習処理は、処理回路21が記憶装置22等から機械学習プログラムを読み出して当該機械学習プログラムの記述に従い処理を実行することにより実現される。
【0028】
図3に示すように、取得部211は、正常データを取得する(ステップS301)。ステップS301においてはN個の正常データが取得されるものとする。ここで、正常データをxi(i=1,2,・・・,N)と表す。添え字のiは正常データの通し番号、Nは用意したデータ数であるとする。正常データxiは28×28の画像を整列して784次元の実数ベクトルにしたものであるとする。
【0029】
ステップS301が行われると第1学習部212は、ステップS301において取得された正常データxiに基づいて、特徴抽出層11の学習パラメータΘを訓練する(ステップS302)。ステップS302において第1学習部212は、N個の正常データxiに基づく対照学習により特徴抽出層11の学習パラメータΘを訓練する。以下、ステップS302を詳述する。
【0030】
特徴抽出層11は、データxを入力として、その特徴φ(x)を出力する関数である。特徴抽出層11には学習パラメータΘが割り当てられている。データxは784次元の実数ベクトルであり、特徴Φ(x)はH次元の実数ベクトルである。Hはデータxの次元数よりも小さい次元数であれば、任意の自然数に設定されればよい。
【0031】
ステップS302において第1学習部212は、正常データxiから拡張正常データx´iを生成する。一例として、28×28の画像である正常データxiをランダムに回転や拡大縮小すること等によりデータ拡張処理を行い、データ拡張処理後の正常データを784次元のベクトルへ整列する。これにより拡張正常データx´iが生成される。拡張正常データx´iも正常データxiの一例である。
【0032】
次に第1学習部212は、未学習の特徴抽出層11の学習パラメータΘを初期化する。学習パラメータΘの初期値はランダムに設定されればよい。なお学習パラメータΘの初期値は所定の値に設定されてもよい。
【0033】
次に、第1学習部212は、正常データxiを特徴抽出層11に入力して特徴データz2i-1=Φ(xi)を出力し、拡張正常データx´iを特徴抽出層11に入力して特徴データz2i=Φ(x´i)を出力する。
【0034】
第1学習部212は、学習パラメータΘを、(1)式に例示する対照損失関数Lを最小化するよう学習する。最適化法としては、確率的勾配降下法等が用いられればよい。対照損失関数Lは、特徴データz2i-1の特徴データz2iに対する正規化温度スケールクロスエントロピー(normalized temperature-scaled cross entropy)l(2i-1,2i)と、特徴データz2iの特徴データz2i-1に対する正規化温度スケールクロスエントロピーl(2i,2i-1)との総和により規定される。Bは確率的勾配降下法のミニバッチ内で利用するデータの添え字集合、|B|は集合Bの要素数、si,jはベクトルziとベクトルzjのコサイン類似度、τはユーザが設定する温度パラメータである。(1)式中の1はk≠iのときに1をとる特性関数である。
【0035】
【0036】
(1)式に例示する対照損失関数Lを最小化することにより、特徴抽出層11に対する対照学習が行われる。(1)式に例示する対照学習においては、ある正常データxiに基づく特徴データz2i-1とその拡張正常データx´iに基づく特徴データz2iとのコサイン類似度が大きくなるように学習され、当該正常データxiに基づく特徴データz2i-1とそれに関連しないミニバッチ内のデータの特徴データzj(ただしj≠2i,2i-1)とのコサイン類似度が小さくなるように学習されることとなる。すなわち、ある正常データxiに基づく特徴データz2i-1とその拡張正常データx´iに基づく特徴データz2iとの組合せが正例、当該正常データxiに基づく特徴データz2i-1とそれに関連しないミニバッチ内のデータの特徴データzjとの組合せが負例として用いられる。なお、特徴データzjは、当該正常データxiに関連しない他の正常データに基づく特徴データz2i-1と当該正常データxiに関連しない拡張正常データx´iに基づく特徴データz2iとを含む。
【0037】
ステップS302が行われると第2学習部213は、ステップS301において取得された正常データxiに、ステップS302において生成された学習済みの特徴抽出層11を適用して正常特徴データΦ(xi)を生成する(ステップS303)。
【0038】
ステップS303が行われると第2学習部213は、ステップS301において取得された正常データxiとステップS303において生成された正常特徴データΦ(xi)とに基づいて、再構成層12の学習パラメータWを訓練する(ステップS304)。再構成層12は、線形回帰モデルであるとする。
【0039】
ステップS304において第2学習部213は、まず、正常特徴データΦ(xi)を未学習の再構成層12に適用して正常再構成データyi=WΦ(xi)を生成する。次に第2学習部213は、正常データxiと正常再構成データyiとの誤差を最小化するように学習パラメータWを最適化する。
【0040】
具体的には、(2)式に例示する損失関数Lを最小化するように学習パラメータWが最適化される。損失関数Lは、正常データxiと正常再構成データyiとの2乗誤差の総和と、学習パラメータWの正則化項との和により規定される。λはユーザが設定する正則化強度パラメータである。学習パラメータWの正則化項を付与された損失回数Lを最小化することにより学習パラメータWが決定されるので、再構成層12による再構成はカーネルリッジ再構成と呼ぶことが可能である。
【0041】
【0042】
(2)式を最小化する学習パラメータWは、下記(3)式に示すように、解析的に表現することができる。Xは784×Nの実数値行列で各列に正常データxi(i=1,2,・・・,N)を並べたもので、Φ(X)はH×Nの実数値行列で各列に上記正常データの特徴Φ(xi)を並べたものである。
【0043】
【0044】
図4は、再構成層12の学習パラメータWを模式的に示す図である。
図4に示すように、学習パラメータWの横列数は入力データ(又は正常データ)の次元数Dに等しく、縦列数は特徴データの次元数Hに等しい。次元数Hは、正常データxiの個数Nよりも小さい。(3)式から分かるように、学習パラメータWは、H個の代表ベクトルVh(hは代表ベクトルを表す添字)を縦列に並べたものと考えることができる。各代表ベクトルVhは、事前に用意したN個の正常データxiの重みつき和に相当する。各重みは、N個の正常特徴データに基づく値を有する。より詳細には、各重みは、xi(3)式に示すΦ(X)
T[Φ(X)Φ(X)
T+λI]
-1のうちの各正常データxiに対応する成分に対応する。
【0045】
図5は、代表ベクトルVhの画像表現例を示す図である。
図5は、12個の代表ベクトルV1~V12を例示している。すなわち、
図5において次元数H=12である。
図5に示すように、各代表ベクトルVhは、正常データxiと同一の、24×24の画像サイズを有する画像データである。各代表ベクトルVhは、「1」~「9」までの数字画像の重み付き和であり、「1」~「9」までの数字のストローク等の特徴を備えていることが分かる。
【0046】
ここで、特徴抽出層11と再構成層12との学習の詳細について説明する。入力データxと再構成データyとの2乗誤差は、下記(4)式により表現することが可能である。
【0047】
【0048】
(4)式によれば、高い異常検知精度を達成するためには、下記2つの性質を有することが望ましいことが分かる。
【0049】
1.入力データxが正常データの場合、入力データxとその再構成データyとの誤差が小さい。
2.入力データxが異常データの場合、入力データxとその再構成データyとの誤差が大きい。
【0050】
(4)式の右辺第3項に注目すると、上記2つの性質は次のように言い換えられる。
【0051】
1.入力データxが正常データの場合、入力データの内積が大きい(又は小さい)なら特徴データの内積も大きい(又は小さい)。つまり、入力データの内積と特徴データの内積とは正の相関を有する。なお、入力データの内積は、(4)式のxTXであり、特徴データの内積は、(4)式のφ(X)T{φ(X)φ(X)T+λI}-1φ(x)である。その計量は、共分散の逆行列である。
2.入力データxが異常データの場合、入力データの内積が大きい(又は小さい)なら特徴データの内積も小さい(又は大きい)。つまり、入力データの内積と特徴データの内積とは負の相関を有する。
【0052】
本実施例においては、特徴抽出層11が上記1.の性質を有するように学習パラメータΘが訓練される。すなわち、第1学習部212は、学習データが正常データ(厳密には、正常データ及び拡張正常データ)のみを含む場合、2個の正常データの内積と当該2個の正常データに対応する2個の特徴データの内積との正の相関が高くなるように特徴抽出層11の学習パラメータを訓練する。なぜなら、学習時においては異常データを用意できないのが通常だからである。他の理由として、正常データとそれの拡張正常データとの内積が大きく、対照学習においては、正常データに基づく特徴データと当該正常データの拡張正常データに基づく特徴データとの対の内積が大きくなるように学習し、正常データに基づく特徴データとそれに関連しないミニバッチ内のデータの特徴データとの対の内積が小さくなるように学習しているからである。
【0053】
ステップS304が行われると過検出率算出部214は、ステップS303において生成された正常特徴データΦ(xi)に、ステップS304において生成された学習済みの再構成層12を適用して正常再構成データyiを生成する(ステップS305)。
【0054】
ステップS305が行われると過検出率算出部214は、ステップS301において取得された正常データxiとステップS305において生成された正常再構成データyiとに基づいて、閾値毎に過検出率を算出する(ステップS306)。過検出率は、正常データを異常データであると判定する比率を意味する。
【0055】
ステップS306において過検出率算出部214は、まず、正常データxiと正常再構成データyiとの誤差の確率分布pを算出する。誤差は、正常データxiと正常再構成データyiとの相違を評価可能な指標であれば、2乗誤差やL1損失、L2損失等の指標でもよい。以下の説明では、誤差は2乗誤差であるとする。次に過検出率算出部214は、複数の閾値r各々について、確率分布pにおいて2乗誤差が当該閾値r以上になる確率(||xi-yi||>r)を算出する。閾値rは取り得る範囲の中から任意の値に設定されればよい。算出された確率が過検出率として用いられる。
【0056】
ステップS306が行われると表示制御部216は、閾値毎の過検出率を表すグラフを表示する(ステップS307)。閾値毎の過検出率を表すグラフは、表示機器25等に表示される。
【0057】
図6は、閾値毎の過検出率を表すグラフの表示例を示す図である。
図6に示すように、グラフの縦軸は過検出率を表し、横軸は閾値を表す。
図6において閾値rと過検出率pとは、閾値rが高いほど過検出率pが小さくなる関係にある。
【0058】
ステップS307が行われると閾値設定部215は、判定層14で利用する異常検知閾値を設定する(ステップS308)。例えば、操作者は、
図6に示すグラフを観察して適切な閾値rを決定する。操作者は、決定された閾値rを、入力機器23を介して指定する。指定方法としては、例えば、
図6に示すグラフにおいて、閾値rをカーソル等で指定すればよい。あるいは、キーボード等で閾値rの数値が入力されてもよい。閾値設定部215は、指定された閾値rを、判定層14で利用する異常検知閾値に設定する。
【0059】
ステップS301~S308が行われることにより、特徴抽出層11の学習パラメータ、再構成層12の学習パラメータ及び判定層14の異常検知閾値が決定される。これら特徴抽出層11の学習パラメータ、再構成層12の学習パラメータ及び判定層14の異常検知閾値は機械学習モデル1に設定される。これにより学習済みの機械学習モデル1が完成することとなる。学習済みの機械学習モデル1は記憶装置22に保存される。また、学習済みの機械学習モデル1は通信機器24を介して、第2実施形態に係る異常検知装置に送信される。
【0060】
以上により、機械学習モデル1の学習処理が終了する。
【0061】
なお、上記の実施例は、一例であって、本実施形態はこれに限定されず、種々の変形が可能である。例えば、ステップS306において過検出率算出部214は、特徴抽出層11及び再構成層12の訓練に利用した正解データを用いて過検出率を算出することとした。しかしながら、過検出率算出部214は、特徴抽出層11及び再構成層12の訓練に利用していない他の正解データを用いて過検出率を算出してもよい。
【0062】
ここで、非特許文献1に示すニューラルネットワーク近傍法を比較例に挙げて本実施例の重みパラメータWの利点について説明する。ニューラルネットワーク近傍法においては、DTM(data transformation matrix)を利用して再構成データが生成される。DTMのデータサイズは、学習データの個数と入力データの次元数とに依存する。学習データの個数は膨大である。従ってニューラルネットワーク近傍法においては、再構成データを生成するため、大きなメモリ容量が要求される。
【0063】
本実施形態に係る重みパラメータWのデータサイズは、特徴データの次元数Hと入力データの次元数とに依存する。特徴データの次元数Hは、学習に利用する正常データの個数Nに比して少ない。よって、本実施形態に係る重みパラメータWのデータサイズは、比較例に示すDTMのデータサイズに比して小さい。よって本実施形態によれば、再構成データの生成に必要なメモリ容量を、比較例に比して低減することが可能になる。
【0064】
(第2実施形態)
図7は、第2実施形態に係る異常検知装置7の構成例を示す図である。
図7に示すように、異常検知装置7は、処理回路71、記憶装置72、入力機器73、通信機器74及び表示機器75を有するコンピュータである。処理回路71、記憶装置72、入力機器73、通信機器74及び表示機器75間のデータ通信はバスを介して行われる。
【0065】
処理回路71は、CPU等のプロセッサとRAM等のメモリとを有する。処理回路71は、取得部711、特徴抽出部712、再構成部713、誤差算出部714、判定部715及び表示制御部716を有する。処理回路71は、本実施形態に係る機械学習モデルを利用した異常検知に関する異常検知プログラムを実行することにより、上記各部711~716の各機能を実現する。異常検知プログラムは、記憶装置72等の非一時的コンピュータ読み取り可能な記録媒体に記憶されている。異常検知プログラムは、上記各部711~716の全ての機能を記述する単一のプログラムとして実装されてもよいし、幾つかの機能単位に分割された複数のモジュールとして実装されてもよい。また、上記各部711~716はASIC等の集積回路により実装されてもよい。この場合、単一の集積回路に実装されても良いし、複数の集積回路に個別に実装されてもよい。
【0066】
取得部711は、診断用データを取得する。診断用データは、異常検知対象のデータであって、学習済みの機械学習モデルへの入力データを意味する。
【0067】
特徴抽出部712は、診断用データを、機械学習モデル1の特徴抽出層11に適用して、当該診断用データに対応する特徴データ(以下、診断用特徴データと呼ぶ)を生成する。
【0068】
再構成部713は、診断用特徴データを、機械学習モデル1の再構成層12に適用して、診断用データを再現した再構成データ(以下、診断用再構成データと呼ぶ)を生成する。
【0069】
誤差算出部714は、診断用データと診断用特徴データとの誤差を算出する。より詳細には、誤差算出部714は、診断用データと診断用特徴データとを、機械学習モデル1の誤差演算層13に適用して、誤差を算出する。
【0070】
判定部715は、診断用データと診断用特徴データとの誤差を異常判定閾値に対して比較して診断用データの異常の有無、換言すれば、異常又は正常を判定する。より詳細には、判定部715は、誤差を機械学習モデル1の判定層14に適用して異常の有無の判定結果を出力する。
【0071】
表示制御部716は、種々の情報を表示機器75に表示する。一例として、表示制御部716は、異常の有無の判定結果を所定の表示形態で表示する。
【0072】
記憶装置72は、ROMやHDD、SSD、集積回路記憶装置等により構成される。記憶装置72は、第1実施形態に係る機械学習装置2により生成された学習済みの機械学習モデルや異常検知プログラム等を記憶する。
【0073】
入力機器73は、ユーザからの各種指令を入力する。入力機器73としては、キーボードやマウス、各種スイッチ、タッチパッド、タッチパネルディスプレイ等が利用可能である。入力機器73からの出力信号は処理回路71に供給される。なお、入力機器73としては、処理回路71に有線又は無線を介して接続されたコンピュータの入力機器であってもよい。
【0074】
通信機器74は、異常検知装置7にネットワークを介して接続された外部機器との間でデータ通信を行うためのインタフェースである。例えば、診断用データの生成機器や保管機器等から学習データを受信する。また、機械学習装置2から学習済みの機械学習モデルを受信する。
【0075】
表示機器75は、種々の情報を表示する。一例として、表示機器75は、表示制御部716による制御に従い異常の有無の判定結果を表示する。表示機器75としては、CRTディスプレイや液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイ、プラズマディスプレイ又は当技術分野で知られている他の任意のディスプレイが適宜利用可能である。また、表示機器75は、プロジェクタでもよい。
【0076】
以下、第2実施形態に係る異常検知装置7による診断用データに対する異常検知処理について説明する。異常検知処理は、第1実施形態に係る機械学習装置2により生成された学習済みの機械学習モデル1を利用して行われる。学習済みの機械学習モデル1は、記憶装置72等に記憶されているものとする。
【0077】
図8は、異常検知処理の流れの一例を示す図である。
図8に示す異常検知処理は、処理回路71が記憶装置72等から異常検知プログラムを読み出して当該異常検知プログラムの記述に従い処理を実行することにより実現される。また、処理回路71は、記憶装置72等から学習済みの機械学習モデル1を読み出しているものとする。
【0078】
図8に示すように、取得部711は、診断用データを取得する(ステップS801)。診断用データは、異常検知対象のデータであり、異常か正常かは不明である。
【0079】
ステップS801が行われると特徴抽出部712は、ステップS801において取得された診断用データを、特徴抽出層11に適用して、診断用特徴データを生成する(ステップS802)。特徴抽出層11には、第1実施形態に係るステップS302において最適化された学習パラメータが割り当てられている。
【0080】
ステップS802が行われると再構成部713は、ステップS802において生成された診断用特徴データを、再構成層12に適用して、診断用再構成データを生成する(ステップS803)。再構成層12には、ステップS304において最適化された学習パラメータWが割り当てられている。再構成層12は、診断用特徴データΦ(x)に学習パラメータWを乗算することにより再構成データy=WΦ(x)を出力する。上記の通り、学習パラメータWは、診断用特徴データΦ(x)の次元数H個の代表ベクトルを有している。再構成層12における演算は、各代表ベクトルの、当該代表ベクトルに対応する診断用特徴データΦ(x)の成分を重みとする重み付き和に帰着される。
【0081】
図9は、再構成層12における演算の数式表現を模式的に示す図である。上記の通り、学習パラメータWは、診断用特徴データΦ(x)の次元数H個の代表ベクトルVhを有している。診断用再構成データyは、代表ベクトルVhの、当該代表ベクトルVhに対応する診断用特徴データΦ(x)の成分φhを重み(係数)とする重み付き和(線型結合)により算出される。成分φhは、代表ベクトルVhに対する重みとして機能する。代表ベクトルVhは、再構成層12の機械学習に利用したN個の正常データxiの重み付き和に相当する。ここでの重みは、上記の通り、(3)式に示すΦ(X)
T[Φ(X)Φ(X)
T+λI]
-1のうちの各正常データxiに対応する成分に対応する。
【0082】
図10は、再構成層12における演算の画像表現を模式的に示す図である。
図10に示すように、再構成層12においては、診断用特徴データに、代表ベクトルの重み付き和を作用させることにより、診断用再構成データが生成される。
図10に示すように、各代表ベクトルは、診断用データ(又は入力データ)と同等の数字画像である。各代表ベクトルには、「1」~「9」までの数字の重み付け和で表されるオブジェクトが描画されている。
【0083】
ステップS803が行われると誤差算出部714は、ステップS801において取得された診断用データとステップS803において生成された診断用再構成データとの誤差を算出する(ステップS804)。より詳細には、誤差算出部714は、診断用データと診断用再構成データとを誤差演算層13に適用して誤差を算出する。誤差としては、ステップS606において算出された誤差、上記実施例においては、2乗誤差が用いられるとよい。
【0084】
ステップS804が行われると判定部715は、ステップS804において算出された誤差を、判定層14に適用して、診断用データの異常の有無の判定結果を出力する(ステップS805)。判定層14には、ステップS607で設定された異常検知閾値が割り当てられている。誤差が異常検知閾値より大きい場合、診断用データが異常であると判定される。誤差が異常検知閾値より小さい場合、診断用データが正常であると判定される。
【0085】
ステップS805が行われると表示制御部716は、ステップS805において出力された判定結果を表示する(ステップS806)。例えば、判定結果として、診断用データが異常であるか正常であるかが表示機器75に表示されるとよい。
【0086】
ここで、本実施形態に係る機械学習モデル1の異常検知性能について説明する。異常検知性能は、正常データである入力データを正しく再現し、異常データである入力データを正しく再現しない能力である。
【0087】
図11は、機械学習モデル1の異常検知性能を示すグラフである。
図11の縦軸は異常検知性能を示す平均AUCを表し、横軸は特徴データの次元数Hを表す。なお、平均AUCは、一例として、ROC曲線のAUC(曲線下面積)の平均値により算出される。平均AUCは、異常データを正しく再現しない比率である真陽性率と正常データを正しく再現する比率である真陰性率との比率に相当する。KRR(IDFD)は、本実施形態に係る機械学習モデル1であり、カーネルリッジ再構成を実現する特徴抽出層11及び再構成層12を有し、特徴抽出層11の学習パラメータΘが本実施形態に係る対照学習により訓練されている。KRR(IDFD)は、カーネルリッジ再構成であり、特徴抽出層の学習パラメータがGANにより訓練されている。KRR(IDFD)は、カーネルリッジ再構成であり、特徴抽出層の学習パラメータがSimCLRにより訓練されている。N4は、一般的なニューラルネットワーク近傍法である。N4[Kato+,2020]は、非特許文献1に示すニューラルネットワーク近傍法である。
【0088】
図11に示すように、本実施形態に係るKRR(IDFD)では、N4の約1.5%のメモリ量で同程度の異常検知性能を発揮することが可能である。また、その他の手法と比較して、本実施形態に係るKRR(IDFD)は、同等のメモリ量で、高い異常検知性能を発揮することが分かる。
【0089】
以上により、異常検知処理が終了する。
【0090】
なお、上記の実施例は、一例であって、本実施形態はこれに限定されず、種々の変形が可能である。例えば、ステップS806において表示制御部716は、判定結果を表示することとした。しかしながら、判定結果は、他のコンピュータに転送され表示されてもよい。
【0091】
(変形例1)
上記の説明においては、学習データは正常データのみを含むものとした。しかしながら、本実施形態はこれに限定されない。変形例1に係る学習データは正常データと異常データとを含むものとする。
【0092】
変形例1に係る第1学習部212は、特徴抽出層11が上記2.の性質(入力データxが異常データの場合、入力データの内積が大きい(又は小さい)なら特徴データの内積も小)を有するように学習パラメータΘが対照学習により訓練される。すなわち、第1学習部212は、学習データが正常データと異常データとを含む場合、正常データと異常データとの内積と、当該正常データに対応する特徴データと当該異常データに対応する特徴データとの内積と、の負の相関が高くなるように特徴抽出層11の学習パラメータΘを訓練する。
【0093】
異常データを学習データとして利用することにより、特徴抽出層11による正常データと異常データとの識別性能が向上し、ひいては、機械学習モデル1による異常検知性能の向上が期待される。
【0094】
(変形例2)
変形例2に係る第1学習部212は、正常データの特徴データに基づく対照学習及び無相関化により学習パラメータΘを訓練してもよい。無相関化により、ある正常データと他の正常データとの相関を略ゼロにすることが可能になる。この場合、対照損失関数Lには、特徴データを無相関化する正規化項が追加されるとよい。無相関化のための正規化項Rは、一例として、下記(5)式のように規定される。正規化項Rは、(1)式の対照損失関数Lに加算される。ただし、(5)式のHは特徴ベクトルzの次元数、r{i,j}はベクトルのi,j要素の相関係数、τは温度パラメータである。
【数5】
【0095】
無相関化を行うことにより、特徴抽出層11による正常データと異常データとの識別性能が向上し、ひいては、機械学習モデル1による異常検知性能の向上が期待される。
【0096】
(変形例3)
上記の実施例において次元数Hは、予め決定されるものとした。変形例3に係る次元数Hは、機械学習モデル1を実装する異常検知装置7の記憶装置72に対して割り当てられる、機械学習モデル1に要する記憶容量に応じて決定されてもよい。一例として、機械学習モデル1のための記憶容量に十分な余裕がない場合、次元数Hは比較的小さい値に設定されるとよい。他の例として、機械学習モデル1のための記憶容量に十分な余裕がある場合、機械学習モデル1の性能を重視して、次元数Hは比較的大きい値に設定されるとよい。機械学習モデル1に要する記憶容量は、操作者により指定されるとよい。処理回路21は、指定された記憶容量と、次元数1個あたりに要する記憶容量とに基づいて次元数Hを算出することが可能である。
【0097】
(変形例4)
上記の実施例において機械学習モデル1は、
図1に示すように、特徴抽出層11、再構成層12、誤差演算層13及び判定層14を有するものとした。しかしながら、本実施形態に係る機械学習モデル1は、少なくとも特徴抽出層11と再構成層12とを有していればよい。すなわち、入力データと再構成データとの誤差の計算と、異常検知閾値を利用した異常の有無の判定は、機械学習モデルに組み込まれる必要はない。この場合、変形例4に係る機械学習モデル1とは異なる、プログラム等に従い、入力データと再構成データとの誤差の計算と、異常検知閾値を利用した異常の有無の判定とが行われればよい。
【0098】
(付言)
上記の通り、第1実施形態に係る機械学習装置2は、入力データから当該入力データの特徴データを抽出する特徴抽出層11と、当該特徴データから当該入力データの再構成データを生成する再構成層12と、を学習する。機械学習装置2は、第1学習部212と第2学習部213とを有する。第1学習部212は、N個の学習データに基づいて特徴抽出層11の第1の学習パラメータΘを訓練する。第2学習部213は、N個の学習データに学習済みの特徴抽出層11を適用して得られるN個の学習特徴データに基づいて、前記再構成層の第2の学習パラメータWを訓練する。学習パラメータWは、特徴データの次元数個の代表ベクトルを表す。次元数個の代表ベクトルは、複数個の学習データの重み付き和で規定される。
【0099】
上記の通り、第2実施形態に係る異常検知装置7は、特徴抽出部712、再構成部713及び判定部715を有する。特徴抽出部712は、診断用データから特徴データを抽出する。再構成部713は、特徴データから再構成データを生成する。ここで、再構成部713は、特徴データと特徴データの次元数個の代表ベクトルとの重み付き和に基づいて、再構成データを生成する。判定部715は、診断用データと再構成データとに基づき診断用データの異常の有無を判定する。
【0100】
上記の構成によれば、省メモリ容量且つ高性能な異常検知性能を達成することができる。
【0101】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0102】
1…機械学習モデル、2…機械学習装置、7…異常検知装置、11…特徴抽出層、12…再構成層、13…誤差演算層、14…判定層、21…処理回路、22…記憶装置、23…入力機器、24…通信機器、25…表示機器、26…表示制御部、71…処理回路、72…記憶装置、73…入力機器、74…通信機器、75…表示機器、211…取得部、212…第1学習部、213…第2学習部、214…過検出率算出部、215…閾値設定部、216…表示制御部、711…取得部、712…特徴抽出部、713…再構成部、714…誤差算出部、715…判定部、716…表示制御部。