(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】異常判定プログラム、装置、及び方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240214BHJP
【FI】
G06N20/00 160
(21)【出願番号】P 2022550312
(86)(22)【出願日】2020-09-18
(86)【国際出願番号】 JP2020035559
(87)【国際公開番号】W WO2022059194
(87)【国際公開日】2022-03-24
【審査請求日】2023-01-13
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】鎌田 裕一
(72)【発明者】
【氏名】中川 章
(72)【発明者】
【氏名】加藤 圭造
【審査官】北川 純次
(56)【参考文献】
【文献】特開2019-207561(JP,A)
【文献】中国特許出願公開第112702329(CN,A)
【文献】GUO Dongyan et al.,Improving auto-encoder novelty detection using channel attention and entropy minimization,arXiv [online],v1,2020年07月03日,pp. 1-6,[検索日 2023.12.20], インターネット:<URL: https://arxiv.org/pdf/2007.01682v1.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/02- 3/10
G06F 18/00-18/40
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
入力データを符号化して得られる前記入力データよりも次元数の低い低次元特徴量を、前記入力データにおける注目データの周辺領域のデータに基づく条件を用いた条件付き確率分布として推定し、
前記低次元特徴量にノイズを加算した特徴量を復号化した出力データと、前記入力データとの誤差と、前記条件付き確率分布のエントロピーとを含むコストに基づいて、前記符号化、前記推定、及び前記復号化の各々のパラメータを調整する、
ことを含む処理をコンピュータに実行させ、
調整後の前記パラメータを用いた、判定対象の入力データが正常であるか否かの判定において、前記判定対象の入力データの周辺領域のデータに基づく前記条件付き確率分布に基づいて、前記判定が実行される
ことを特徴とする異常判定プログラム。
【請求項2】
前記条件として、前記低次元特徴量を符号化して得られる前記低次元特徴量よりも次元数の低い上位低次元特徴量を復号化した上位出力データをさらに用いて、前記条件付き確率分布を推定する請求項1に記載の異常判定プログラム。
【請求項3】
前記コストを、前記誤差と前記エントロピーとの重み付き和とし、前記コストを最小化するように、前記パラメータを調整する請求項1又は請求項2に記載の異常判定プログラム。
【請求項4】
前記ノイズを、各次元が互いに無相関、かつ平均が0である分布に基づく乱数とする請求項1~請求項3のいずれか1項に記載の異常判定プログラム。
【請求項5】
前記判定対象の入力データについての前記条件付き確率分布のエントロピーと、前記条件付き確率分布の推定時に得られるパラメータを用いて算出されるエントロピーの期待値との差分を判定基準と比較することにより、前記判定が実行される請求項1~請求項4のいずれか1項に記載の異常判定プログラム。
【請求項6】
入力データを符号化して得られる前記入力データよりも次元数の低い低次元特徴量を、前記入力データにおける注目データの周辺領域のデータに基づく条件を用いた条件付き確率分布として推定する推定部と、
前記低次元特徴量にノイズを加算した特徴量を復号化した出力データと、前記入力データとの誤差と、前記条件付き確率分布のエントロピーとを含むコストに基づいて、前記符号化、前記推定、及び前記復号化の各々のパラメータを調整する調整部と、を含み、
調整後の前記パラメータを用いた、判定対象の入力データが正常であるか否かの判定において、前記判定対象の入力データの周辺領域のデータに基づく前記条件付き確率分布に基づいて、前記判定が実行される
ことを特徴とする異常判定装置。
【請求項7】
入力データを符号化して得られる前記入力データよりも次元数の低い低次元特徴量を、前記入力データにおける注目データの周辺領域のデータに基づく条件を用いた条件付き確率分布として推定し、
前記低次元特徴量にノイズを加算した特徴量を復号化した出力データと、前記入力データとの誤差と、前記条件付き確率分布のエントロピーとを含むコストに基づいて、前記符号化、前記推定、及び前記復号化の各々のパラメータを調整する、
ことを含む処理をコンピュータが実行し、
調整後の前記パラメータを用いた、判定対象の入力データが正常であるか否かの判定において、前記判定対象の入力データの周辺領域のデータに基づく前記条件付き確率分布に基づいて、前記判定が実行される
ことを特徴とする異常判定方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、異常判定プログラム、異常判定装置、及び異常判定方法に関する。
【背景技術】
【0002】
従来、教師なし学習により正常データの確率分布を学習し、判定対象のデータの確率分布と正常データの確率分布とを比較することにより、異常データを検出することが行われている。
【0003】
例えば、潜在変数のエントロピーを最小化するRate-Distortion理論を応用したオートエンコーダにより、実空間での確率分布に比例した潜在空間の確率分布を獲得し、潜在空間の確率分布の相違から異常データを検出する技術が提案されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Rate-Distortion Optimization Guided Autoencoder for Isometric Embedding in Euclidean Latent Space(ICML2020)
【文献】“Fujitsu Develops World's First AI technology to Accurately Capture Characteristics of High-Dimensional Data Without Labeled Training Data”、[online]、2020年7月13日、[2020年9月13日検索]、インターネット<URL:https://www.fujitsu.com/global/about/resources/news/press-releases/2020/0713-01.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、入力データの特徴が様々な確率分布となる場合、異常データが示す確率分布の特徴が、様々な確率分布の差に埋もれてしまい、精度良く正常又は異常を判定することができない場合がある、という問題がある。
【0006】
一つの側面として、開示の技術は、入力データの特徴が様々な確率分布となる場合でも、精度良く正常又は異常を判定することを目的とする。
【課題を解決するための手段】
【0007】
一つの態様として、開示の技術は、入力データを符号化して得られる前記入力データよりも次元数の低い低次元特徴量を、前記入力データにおける注目データの周辺領域のデータに基づく条件を用いた条件付き確率分布として推定する。また、開示の技術は、前記低次元特徴量にノイズを加算した特徴量を復号化した出力データと、前記入力データとの誤差と、前記条件付き確率分布のエントロピーとを含むコストに基づいて、前記符号化、前記推定、及び前記復号化の各々のパラメータを調整する。そして、開示の技術は、調整後の前記パラメータを用いた、判定対象の入力データが正常であるか否かの判定において、前記判定対象の入力データの周辺領域のデータに基づく前記条件付き確率分布に基づいて、前記判定が実行される。
【発明の効果】
【0008】
一つの側面として、入力データの特徴が様々な確率分布となる場合でも、精度良く正常又は異常を判定することができる、という効果を有する。
【図面の簡単な説明】
【0009】
【
図1】低次元特徴量の確率分布を用いて異常判定する場合の問題点を説明するための図である。
【
図3】第1実施形態における学習時の機能について説明するための図である。
【
図4】注目画素の周辺領域を説明するための図である。
【
図5】注目画素の周辺領域を説明するための図である。
【
図6】第1実施形態における判定時の機能について説明するための図である。
【
図7】異常判定装置として機能するコンピュータの概略構成を示すブロック図である。
【
図8】第1実施形態における学習処理の一例を示すフローチャートである。
【
図9】第1実施形態における判定処理の一例を示すフローチャートである。
【
図10】第2実施形態における学習時の機能について説明するための図である。
【
図11】第2実施形態における判定時の機能について説明するための図である。
【
図12】第2実施形態における学習処理の一例を示すフローチャートである。
【
図13】第2実施形態における判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。
【0011】
まず、各実施形態の詳細を説明する前に、入力データから抽出される低次元特徴を示す確率分布を用いて正常又は異常を判定する場合において、入力データの特徴が様々な確率分布となる場合における問題点について説明する。
【0012】
ここでは、入力データを人体等の臓器を撮影した医療画像とする場合を例に説明する。
図1の下部に、入力データとなる医療画像の一例を概略的に示す。
図1の例では、空胞が生じていない状態を正常、空胞が生じている状態を異常と判定するものとする。この場合、
図1に示す「その他」の医療画像のように、空胞が生じていない医療画像から抽出される低次元特徴のエントロピーを基準として、対象の医療画像から抽出される低次元特徴のエントロピーを評価し、正常又は異常を判定する。具体的には、
図1の上部に示すように、正常を示す「その他」のエントロピーと、「その他(空胞)」のエントロピーとの相違から、「その他(空胞)」の医療画像を異常であると判定することができる。
【0013】
しかし、
図1の下部に示すように、医療画像には、糸球体、尿細管、血液等の組織や、背景が含まれている場合もあり、それぞれ含まれる組織や背景によって、エントロピーに高低が生じる。したがって、正常を示す「その他」のエントロピーを基準とした場合、上記のような組織等毎のエントロピーの差に、異常データのエントロピーが埋もれてしまい、精度良く正常又は異常を判定することができない。
【0014】
そこで、以下の各実施形態では、入力データから抽出される低次元特徴を示す確率分布が様々な確率分布となる場合でも、精度良く正常又は異常を判定することができるように制御する。
【0015】
<第1実施形態>
【0016】
第1実施形態に係る異常判定装置10は、機能的には、
図2に示すように、オートエンコーダ20と、推定部12と、調整部14と、判定部16とを含む。オートエンコーダ20の学習時には、推定部12及び調整部14が機能し、オートエンコーダ20を用いた異常の判定時には、推定部12及び判定部16が機能する。以下、学習時及び判定時のそれぞれについて、オートエンコーダ20のより詳細な構成と共に、各機能部の機能について説明する。
【0017】
まず、
図3を参照して、学習時に機能する機能部について 説明する。
【0018】
オートエンコーダ20は、
図3に示すように、符号化部22と、ノイズ生成部24と、加算部26と、復号化部28とを含む。
【0019】
符号化部22は、多次元の入力データを符号化することにより、入力データよりも次元数の低い低次元特徴量である潜在変数yを抽出する。具体的には、符号化部22は、パラメータθを含む符号化関数fθ(x)により、入力データxから潜在変数yを抽出する。例えば、符号化部22は、符号化関数fθ(x)として、CNN(Convolutional Neural Network)のアルゴリズムを適用することができる。符号化部22は、抽出した潜在変数yを加算部26へ出力する。
【0020】
ノイズ生成部24は、潜在変数yと同じ次元数で、各次元が互いに無相関、かつ平均が0、分散がσ2であるガウス分布に基づく乱数であるノイズεを生成する。ノイズ生成部24は、生成したノイズεを加算部26へ出力する。
【0021】
加算部26は、符号化部22から入力された潜在変数yと、ノイズ生成部24から入力されたノイズεとを加算した潜在変数y^(図中では「y」の上に「^(ハット)」)を生成して、復号化部28へ出力する。
【0022】
復号化部28は、加算部26から入力された潜在変数y^を復号することにより、入力データxと同じ次元数の出力データx^(図中では「x」の上に「^(ハット)」)を生成する。具体的には、復号化部28は、パラメータφを含む復号化関数gφ(y^)により、潜在変数y^から出力データx^を生成する。例えば、復号化部28は、復号化関数gφ(y^)として、transposed CNNのアルゴリズムを適用することができる。
【0023】
推定部12は、符号化部22で抽出された潜在変数yを取得し、潜在変数yを、潜在変数yのコンテクストの下での条件付き確率分布として推定する。本実施形態におけるコンテクストとは、注目データについての関連情報である。例えば、コンテクストは、入力データが画像データのように2次元の場合には、注目データの周辺のデータが持つ情報であり、入力データが1次元の時系列データの場合には、注目データの前後のデータが持つ情報である。
【0024】
具体的には、推定部12は、パラメータψ2を含む抽出関数hψ2により、潜在変数yからコンテクストyconを抽出する。そして、推定部12は、パラメータψ1を含む抽出関数hψ1により、多次元ガウス分布で表される、コンテクストyconの下での潜在変数yの条件付き確率分布Pψy(y|ycon)=N(μ(y), σ(y)
2)のパラメータμ(y)及びσ(y)を推定する。抽出関数hψ2及び推定関数hψ1は、例えば、masked CNN等のようなAR(Auto-Regressive:自己回帰)モデルを用いたアルゴリズムを適用することができる。ARモデルは、その直前までのフレームから次のフレームを予測するモデルである。
【0025】
例えば、入力データを画像データとした場合において、カーネルサイズ2k+1(kは任意の整数)のmasked CNNを利用する場合、推定部12は、下記(1)式により、パラメータμ(y)及びσ(y)を推定する。
【0026】
【0027】
例えば、k=1とした場合、推定部12は、
図4に示すように、注目画素
m,nyの周辺領域の画素
m-1,n-1y、
m-1,ny、
m-1,n+1y、及び
m,n-1yの情報をコンテクストとして抽出する。なお、周辺領域としては、
図5に示すように、注目画素
m,nyの周辺領域の全てを利用してもよい。
【0028】
また、推定部12は、推定したμ(y)及びσ(y)を用いて、条件付き確率分布Pψy(y|ycon)のエントロピーR=-log(Pψy(y|ycon))を算出する。エントロピーRの算出の別の形態として、(2)式を用いることもできる。なお、(2)式において、iは潜在変数yの持つ各次元の要素(上記画像データの例では、m,ny)を識別する変数である。
【0029】
【0030】
調整部14は、入力データxと、その入力データに対応する出力データx^との誤差と、推定部12により算出されたエントロピーRとを含む学習コストに基づいて、符号化部22、復号化部28、及び推定部12の各々のパラメータθ、φ、ψ1、ψ2を調整する。例えば、調整部14は、下記(3)式に示すような、xとx^との誤差と、エントロピーRとの重み付き和で表される学習コストL1を最小化するように、パラメータθ、φ、ψ1、ψ2を更新しながら、入力データxから出力データx^を生成する処理を繰り返す。これにより、オートエンコーダ20及び推定部12のパラメータが学習される。
【0031】
【0032】
なお、(3)式において、λは重み係数であり、Dはxとx^との誤差、例えば、D=(x-x^)2である。
【0033】
次に、
図6を参照して、判定時に機能する機能部について 説明する。なお、判定時における入力データは、開示の技術の「判定対象の入力データ」の一例である。
【0034】
符号化部22は、調整部14で調整されたパラメータθが設定された符号化関数fθ(x)に基づいて入力データxを符号化することにより、入力データxから潜在変数yを抽出する。
【0035】
推定部12は、符号化部22で抽出された潜在変数yを取得し、調整部14で調整されたパラメータψ1及びψ2が設定された抽出関数hψ2及び推定関数hψ1により、潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。また、推定部12は、推定したμ(y)及びσ(y)から(2)式により算出されるエントロピーRと、推定したσ(y)から算出されるエントロピーの期待値との差分ΔRを、下記(4)式により算出する。
【0036】
【0037】
判定部16は、調整後のパラメータθ、ψ1、ψ2を用いた、判定対象の入力データが正常であるか否かの判定において、条件付き確率分布Pψy(y|ycon)のエントロピーを評価する。具体的には、判定部16は、判定対象の入力データxについて、推定部12により算出されたエントロピーの差分ΔRと、予め定めた判定基準とを比較することにより、入力データxが正常か又は異常かを判定し、判定結果を出力する。判定基準は、実験的又は経験的に決定することができる。
【0038】
異常判定装置10は、例えば
図7に示すコンピュータ40で実現することができる。コンピュータ40は、CPU(Central Processing Unit)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶部43とを備える。また、コンピュータ40は、入力部、表示部等の入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部45とを備える。また、コンピュータ40は、インターネット等のネットワークに接続される通信I/F(Interface)46を備える。CPU41、メモリ42、記憶部43、入出力装置44、R/W部45、及び通信I/F46は、バス47を介して互いに接続される。
【0039】
記憶部43は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部43には、コンピュータ40を、異常判定装置10として機能させ、後述する学習処理及び判定処理を実行するための異常判定プログラム50が記憶される。異常判定プログラム50は、オートエンコーダプロセス60と、推定プロセス52と、調整プロセス54と、判定プロセス56とを有する。
【0040】
CPU41は、異常判定プログラム50を記憶部43から読み出してメモリ42に展開し、異常判定プログラム50が有するプロセスを順次実行する。CPU41は、オートエンコーダプロセス60を実行することで、
図2に示すオートエンコーダ20として動作する。また、CPU41は、推定プロセス52を実行することで、
図2に示す推定部12として動作する。また、CPU41は、調整プロセス54を実行することで、
図2に示す調整部14として動作する。また、CPU41は、判定プロセス56を実行することで、
図2に示す判定部16として動作する。これにより、異常判定プログラム50を実行したコンピュータ40が、異常判定装置10として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0041】
なお、異常判定プログラム50により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0042】
次に、第1実施形態に係る異常判定装置10の作用について説明する。オートエンコーダ20及び推定部12のパラメータの調整時に、異常判定装置10に学習用の入力データxが入力されると、異常判定装置10において、
図8に示す学習処理が実行される。また、正常又は異常の判定時に、異常判定装置10に判定対象の入力データxが入力されると、異常判定装置10において、
図9に示す判定処理が実行される。なお、学習処理及び判定処理は、開示の技術の異常判定方法の一例である。
【0043】
【0044】
ステップS12で、符号化部22が、パラメータθを含む符号化関数fθ(x)により、入力データxから潜在変数yを抽出し、加算部26へ出力する。
【0045】
次に、ステップS14で、推定部12が、パラメータψ2を含む抽出関数hψ2により、潜在変数yから、潜在変数yのコンテクストyconを抽出する。そして、推定部12が、パラメータψ1を含む推定関数hψ1により、コンテクストyconの下での潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。
【0046】
次に、ステップS16で、推定したμ(y)及びσ(y)を用いて、(2)式により、条件付き確率分布Pψy(y|ycon)のエントロピーR=-log(Pψy(y|ycon))を算出する。
【0047】
次に、ステップS18で、ノイズ生成部24が、潜在変数yと同じ次元数で、各次元が互いに無相関、かつ平均が0、分散がσ2であるガウス分布に基づく乱数であるノイズεを生成し、加算部26へ出力する。そして、加算部26が、符号化部22から入力された潜在変数yと、ノイズ生成部24から入力されたノイズεとを加算した潜在変数y^を生成して、復号化部28へ出力する。さらに、復号化部28が、パラメータφを含む復号化関数gφ(y^)により、潜在変数y^を復号して、出力データx^を生成する。
【0048】
次に、ステップS20で、調整部14が、入力データxと、上記ステップS18で生成された出力データx^との誤差を、例えば、D=(x-x^)2のように算出する。そして、調整部14が、例えば(3)式に示すような、算出した誤差Dと、上記ステップS16で推定部12により算出されたエントロピーRとの重み付き和で表される学習コストL1を算出する。
【0049】
次に、ステップS22で、調整部14が、学習コストL1が小さくなるように、符号化部22のパラメータθ、復号化部28のパラメータφ、及び推定部12のパラメータψ1、ψ2を更新する。
【0050】
次に、ステップS24で、調整部14が、学習が収束したか否かを判定する。例えば、パラメータの更新の繰り返し回数が所定回数に達した場合、学習コストL1の値が変化しなくなった場合等に、学習が収束したと判定することができる。学習が収束していない場合には、処理はステップS12に戻り、次の入力データxについて、ステップS12~S22の処理を繰り返す。学習が収束した場合には、学習処理は終了する。
【0051】
次に、
図9を参照して、判定処理について詳述する。判定処理は、符号化部22及び推定部12の各々に、学習処理により調整されたパラメータθ、ψ1、ψ2がそれぞれ設定された状態で開始する。
【0052】
ステップS32で、符号化部22が、調整されたパラメータθを含む符号化関数fθ(x)により、入力データxから潜在変数yを抽出する。
【0053】
次に、ステップS34で、推定部12が、調整されたパラメータψ2を含む抽出関数hψ2により、潜在変数yから、潜在変数yのコンテクストyconを抽出する。そして、推定部12が、調整されたパラメータψ1を含む推定関数hψ1により、コンテクストyconの下での潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。
【0054】
次に、ステップS36で、推定部12が、推定したμ(y)及びσ(y)から(2)式により算出されるエントロピーRと、推定したσ(y)から算出されるエントロピーの期待値との差分ΔRを、(4)式により算出する。
【0055】
次に、ステップS38で、判定部16が、上記ステップS36で推定部12により算出されたエントロピーの差分ΔRと、予め定めた判定基準とを比較することにより、入力データxが正常か又は異常かを判定する。
【0056】
次に、ステップS40で、判定部16が、正常か異常かの判定結果を出力し、判定処理は終了する。
【0057】
以上説明したように、第1実施形態に係る異常判定装置は、入力データを符号化して得られる入力データよりも次元数の低い潜在変数を、入力データの大局的特徴を表すコンテクストの下での条件付き確率分布として推定する。コンテクストは、潜在変数の注目データの周辺データの情報である。また、異常判定装置は、潜在変数にノイズを加算した特徴量を復号化した出力データと、入力データとの誤差と、条件付き確率分布のエントロピーとを含むコストに基づいて、符号化、推定、及び復号化の各々のパラメータを調整する。そして、異常判定装置は、調整後のパラメータを用いた、判定対象の入力データが正常であるか否かの判定において、条件付き確率分布のエントロピーを評価する。これにより、潜在変数のコンテクストが示す大局的な特徴の下、潜在変数が示す局所的な特徴を評価して、正常又は異常を判定することができる。すなわち、潜在変数の大局的な特徴により、入力データの種類(
図1の例では組織等の種類)に応じた特徴による条件下で、潜在変数の局所的な特徴を評価することができる。したがって、入力データの特徴が様々な確率分布となり、正常と異常との相違が局所的特徴にある場合でも、正常と異常との区別が困難になることを抑制し、精度良く正常又は異常を判定することができる。
【0058】
<第2実施形態>
【0059】
次に、第2実施形態について説明する。なお、第2実施形態に係る異常判定装置において、第1実施形態に係る異常判定装置10と共通する部分については、詳細な説明を省略する。
【0060】
第2実施形態に係る異常判定装置210は、機能的には、
図2に示すように、オートエンコーダ220と、推定部212と、調整部214と、判定部16とを含む。オートエンコーダ220の学習時には、推定部212及び調整部214が機能し、オートエンコーダ220を用いた異常の判定時には、推定部212及び判定部16が機能する。以下、学習時及び判定時のそれぞれについて、オートエンコーダ220のより詳細な構成と共に、各機能部の機能について説明する。
【0061】
まず、
図10を参照して、学習時に機能する機能部について 説明する。
【0062】
オートエンコーダ220は、
図10に示すように、下位符号化部221と、上位符号化部222と、下位ノイズ生成部223と、上位ノイズ生成部224と、下位加算部225と、上位加算部226と、下位復号化部227と、上位復号化部228とを含む。
【0063】
下位符号化部221は、パラメータθyを含む符号化関数fθy(x)により、入力データxから下位潜在変数yを抽出する。下位潜在変数yは、入力データの局所的な特徴を表す。下位符号化部221は、抽出した下位潜在変数yを下位加算部225及び上位符号化部222へ出力する。上位符号化部222は、パラメータθzを含む符号化関数fθz(y)により、下位潜在変数yから、より低次元の上位潜在変数zを抽出する。上位潜在変数zは、入力データの大局的な特徴を表す。上位符号化部222は、抽出した下位潜在変数zを上位加算部226へ出力する。符号化関数fθy(x)及びfθz(y)としては、CNNのアルゴリズムを適用することができる。
【0064】
下位ノイズ生成部223は、下位潜在変数yと同じ次元数のノイズεyを生成し、下位加算部225へ出力する。上位ノイズ生成部224は、上位潜在変数zと同じ次元数のノイズεzを生成し、上位加算部226へ出力する。ノイズεy及びεzは、各次元が互いに無相関、かつ平均が0、分散がσ2であるガウス分布に基づく乱数である。
【0065】
下位加算部225は、下位符号化部221から入力された下位潜在変数yと、下位ノイズ生成部223から入力されたノイズεyとを加算した下位潜在変数y^を生成して、下位復号化部227へ出力する。上位加算部226は、上位符号化部222から入力された上位潜在変数zと、上位ノイズ生成部224から入力されたノイズεzとを加算した上位潜在変数z^(図中では「z」の上に「^(ハット)」)を生成して、上位復号化部228へ出力する。
【0066】
下位復号化部227は、下位加算部225から入力された下位潜在変数y^を、パラメータφyを含む復号化関数gφy(y^)により復号することにより、入力データxと同じ次元数の下位出力データx^を生成する。上位復号化部228は、上位加算部226から入力された上位潜在変数z^を、パラメータφzを含む復号化関数gφz(z^)により復号することにより、下位潜在変数yと同じ次元数の上位出力データy^’を生成する。復号化関数gφy(z^)及びgφz(z^)としては、transposed CNNのアルゴリズムを適用することができる。
【0067】
推定部212は、上位符号化部222で抽出された上位潜在変数zを取得し、上位潜在変数zを確率分布として推定する。具体的には、推定部212は、パラメータψzを含み、複数の分布が混合された確率分布のモデルにより、確率分布Pψz(z)を推定する。本実施形態では、確率分布のモデルが、GMM(Gaussian mixture model)である場合について説明する。この場合、推定部212は、下記(5)式のパラメータπ、Σ、μを、最尤推定法等で計算することにより、確率分布Pψz(z)を推定する。
【0068】
【0069】
(5)式において、KはGMMに含まれる正規分布の数、μkはk番目の正規分布の平均ベクトル、Σkはk番目の正規分布の分散共分散行列、πkはk番目の正規分布の重み(混合係数)であり、πkの総和は1である。また、推定部212は、確率分布Pψz(z)のエントロピーRz=-log(Pψz(z))を算出する。
【0070】
また、推定部212は、第1実施形態における推定部12と同様に、下位潜在変数yを、下位潜在変数yのコンテクストyconの下での条件付き確率分布Pψy(y|ycon)として推定する。第2実施形態では、下位潜在変数yの注目データの周辺データの情報に加え、上位復号化部228から出力される上位出力データy^’から抽出されるコンテクストも用いる。
【0071】
具体的には、推定部212は、パラメータψ2yを含む抽出関数hψ2yにより、下位潜在変数y及び上位出力データy^’からコンテクストyconを抽出する。そして、推定部212は、パラメータψ1yを含む抽出関数hψ1yにより、多次元ガウス分布で表される、コンテクストyconの下での下位潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。
【0072】
例えば、入力データを画像データとした場合において、カーネルサイズ2k+1(kは任意の整数)のmasked CNNを利用する場合、推定部212は、下記(6)式により、パラメータμ(y)及びσ(y)を推定する。
【0073】
【0074】
また、推定部212は、第1実施形態における推定部12と同様に、推定したμ(y)及びσ(y)を用いて、(2)式により、条件付き確率分布Pψy(y|ycon)のエントロピーRy=-log(Pψy(y|ycon))を算出する。
【0075】
調整部214は、入力データxと、その入力データに対応する出力データx^との誤差と、推定部212により算出されたエントロピーRz及びRyとを含む学習コストL2を算出する。調整部214は、学習コストL2に基づいて、下位符号化部221、上位符号化部222、下位復号化部227、上位復号化部228、及び推定部212の各々のパラメータθy、θz、φy、φz、ψz、ψ1y、ψ2yを調整する。例えば、調整部214は、下記(7)式に示すような、xとx^との誤差Dと、エントロピーRz及びRyとの重み付き和で表される学習コストL2を最小化するように、パラメータθy、θz、φy、φz、ψz、ψ1y、ψ2yを更新しながら、入力データxから出力データx^を生成する処理を繰り返す。これにより、オートエンコーダ220及び推定部212のパラメータが学習される。
【0076】
【0077】
次に、
図11を参照して、判定時に機能する機能部について 説明する。
【0078】
下位符号化部221は、調整部214で調整されたパラメータθyが設定された符号化関数fθy(x)に基づいて入力データxを符号化することにより、入力データxから下位潜在変数yを抽出し、上位符号化部222へ入力する。
【0079】
上位符号化部222は、調整部214で調整されたパラメータθzが設定された符号化関数fθz(y)に基づいて下位潜在変数yを符号化することにより、下位潜在変数yから上位潜在変数zを抽出し、上位復号化部228へ入力する。
【0080】
上位復号化部228は、上位符号化部222から入力された上位潜在変数zを、調整部214で調整されたパラメータφzを含む復号化関数gφz(z)により復号することにより、下位潜在変数」yと同じ次元数の上位出力データy’を生成する。
【0081】
推定部212は、下位符号化部221で抽出された下位潜在変数y、及び上位復号化部228で生成された上位出力データy’を取得する。そして、推定部212は、調整部214で調整されたパラメータψ2yを含む抽出関数hψ2yにより、潜在変数y及び上位出力データy’からコンテクストyconを抽出する。また、推定部212は、パラメータψ1yを含む抽出関数hψ1yにより、多次元ガウス分布で表される、コンテクストyconの下での潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。なお、推定部212は、判定時においては、(6)式の「y^’」を「y’」に読み替えた式により、パラメータμ(y)及びσ(y)を推定する。
【0082】
また、推定部212は、第1実施形態における推定部12と同様に、推定したμ(y)及びσ(y)から(2)式により算出されるエントロピーRyと、推定したσ(y)から算出されるエントロピーの期待値との差分ΔRを(4)式により算出する。
【0083】
異常判定装置210は、例えば
図7に示すコンピュータ40で実現することができる。コンピュータ40の記憶部43には、コンピュータ40を、異常判定装置210として機能させ、後述する学習処理及び判定処理を実行するための異常判定プログラム250が記憶される。異常判定プログラム250は、オートエンコーダプロセス260と、推定プロセス252と、調整プロセス254と、判定プロセス56とを有する。
【0084】
CPU41は、異常判定プログラム250を記憶部43から読み出してメモリ42に展開し、異常判定プログラム250が有するプロセスを順次実行する。CPU41は、オートエンコーダプロセス260を実行することで、
図2に示すオートエンコーダ220として動作する。また、CPU41は、推定プロセス252を実行することで、
図2に示す推定部212として動作する。また、CPU41は、調整プロセス254を実行することで、
図2に示す調整部214として動作する。また、CPU41は、判定プロセス56を実行することで、
図2に示す判定部16として動作する。これにより、異常判定プログラム250を実行したコンピュータ40が、異常判定装置210として機能することになる。
【0085】
なお、異常判定プログラム250により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
【0086】
次に、第2実施形態に係る異常判定装置210の作用について説明する。オートエンコーダ220及び推定部212のパラメータの調整時に、異常判定装置210に学習用の入力データxが入力されると、異常判定装置210において、
図12に示す学習処理が実行される。また、正常又は異常の判定時に、異常判定装置210に判定対象の入力データxが入力されると、異常判定装置210において、
図13に示す判定処理が実行される。
【0087】
まず、
図12を参照して、学習処理について詳述する。
【0088】
ステップS212で、下位符号化部221が、パラメータθyを含む符号化関数fθy(x)により、入力データxから下位潜在変数yを抽出し、下位加算部225及び上位符号化部222へ出力する。また、上位符号化部222が、パラメータθzを含む符号化関数fθz(y)により、下位潜在変数yから上位潜在変数zを抽出し、上位加算部226へ出力する。
【0089】
次に、ステップS213で、推定部212が、パラメータψzを含むGMMにより、上位潜在変数zの確率分布Pψz(z)を推定する。また、推定部212が、確率分布Pψz(z)のエントロピーRz=-log(Pψz(z))を算出する。
【0090】
次に、ステップS214で、下位ノイズ生成部223が、下位潜在変数yと同じ次元数で、各次元が互いに無相関、かつ平均が0、分散がσ2であるガウス分布に基づく乱数であるノイズεyを生成し、下位加算部225へ出力する。そして、下位加算部225が、下位符号化部221から入力された下位潜在変数yと、下位ノイズ生成部223から入力されたノイズεyとを加算した下位潜在変数y^を生成して、下位復号化部227へ出力する。さらに、下位復号化部227が、パラメータφyを含む復号化関数gφy(y^)により、下位潜在変数y^を復号して、下位出力データx^を生成する。
【0091】
次に、ステップS215で、上位ノイズ生成部224が、上位潜在変数zと同じ次元数で、各次元が互いに無相関、かつ平均が0、分散がσ2であるガウス分布に基づく乱数であるノイズεzを生成し、上位加算部226へ出力する。そして、上位加算部226が、上位符号化部222から入力された上位潜在変数zと、上位ノイズ生成部224から入力されたノイズεzとを加算した上位潜在変数z^を生成して、上位復号化部228へ出力する。さらに、上位復号化部228が、パラメータφzを含む復号化関数gφz(z^)により、上位潜在変数z^を復号して、上位出力データy^’を生成する。
【0092】
次に、ステップS216で、推定部212が、パラメータψ2yを含む抽出関数hψ2yにより、下位潜在変数y及び上位出力データy^’からコンテクストyconを抽出する。そして、推定部212が、パラメータψ1yを含む抽出関数hψ1yにより、多次元ガウス分布で表される、コンテクストyconの下での下位潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。
【0093】
次に、ステップS217で、推定部212が、推定したμ(y)及びσ(y)を用いて、(2)式により、条件付き確率分布Pψy(y|ycon)のエントロピーRy=-log(Pψy(y|ycon))を算出する。
【0094】
次に、ステップS218で、調整部214が、入力データxと、上記ステップS214で生成された出力データx^との誤差を、例えば、D=(x-x^)2のように算出する。そして、調整部214が、例えば(7)式に示すような、算出した誤差Dと、上記ステップS213及びS217で算出されたエントロピーRz及びRyとの重み付き和で表される学習コストL2を算出する。
【0095】
次に、ステップS219で、調整部214が、学習コストL2が小さくなるように、パラメータを更新する。更新するパラメータは、下位符号化部221、上位符号化部222、下位復号化部227、上位復号化部228、及び推定部212の各々のパラメータθy、θz、φy、φz、ψz、ψ1y、ψ2yである。
【0096】
次に、ステップS24で、調整部214が、学習が収束したか否かを判定する。学習が収束していない場合には、処理はステップS212に戻り、次の入力データxについて、ステップS212~S219の処理を繰り返す。学習が収束した場合には、学習処理は終了する。
【0097】
次に、
図13を参照して、判定処理について詳述する。判定処理は、下位符号化部221、上位符号化部222、上位復号化部228、及び推定部212の各々に、学習処理により調整されたパラメータθy、θz、φz、ψ1y、ψ2yがそれぞれ設定された状態で開始する。
【0098】
ステップS232で、下位符号化部221が、調整されたパラメータθyを含む符号化関数fθy(x)により、入力データxから下位潜在変数yを抽出し、下位加算部225及び上位符号化部222へ出力する。また、上位符号化部222が、調整されたパラメータθzを含む符号化関数fθz(y)により、下位潜在変数yから上位潜在変数zを抽出し、上位加算部226へ出力する。
【0099】
次に、ステップS233で、上位復号化部228が、調整されたパラメータφzを含む復号化関数gφz(z)により、上位潜在変数zを復号して、上位出力データy’を生成する。
【0100】
次に、ステップS234で、推定部212が、パラメータψ2yを含む抽出関数hψ2yにより、下位潜在変数y及び上位出力データy’からコンテクストyconを抽出する。そして、推定部212が、パラメータψ1yを含む抽出関数hψ1yにより、多次元ガウス分布で表される、コンテクストyconの下での下位潜在変数yの条件付き確率分布Pψy(y|ycon)のパラメータμ(y)及びσ(y)を推定する。
【0101】
次に、ステップS236で、推定部212が、上記ステップS234で推定したμ(y)及びσ(y)から(2)式により算出されるエントロピーRyと、推定したσ(y)から算出されるエントロピーの期待値との差分ΔRを、(4)式により算出する。
【0102】
以下、第1実施形態と同様に、ステップS38及びS40で、判定部16が、エントロピーの差分ΔRと、予め定めた判定基準とを比較することにより、入力データxが正常か又は異常かを判定し、判定結果を出力して、判定処理は終了する。
【0103】
以上説明したように、第2実施形態に係る異常判定装置は、下位潜在変数を符号化した、より低次元の上位潜在変数に基づくコンテクストをさらに用いて、コンテクストの下での下位潜在変数の条件付き確率分布を推定する。そして、異常判定装置は、推定した条件付き確率分布のエントロピーと判定基準とを用いて、判定対象の入力データが正常であるか否かを判定する。これにより、第1実施形態に比べ、より大局的な特徴をコンテクストとして用いることができるため、より精度良く正常又は異常を判定することができる。
【0104】
なお、上記第1実施形態において、潜在変数y^を生成するために潜在変数yに加算するノイズεを一様分布U(-1/2,1/2)としてもよい。また、上記第2実施形態において、下位潜在変数y^を生成するために下位潜在変数yに加算するノイズεyを一様分布U(-1/2,1/2)としてもよい。この場合、学習時において推定される条件付き確率分布Pψy(y|ycon)は下記(8)式となる。また、推定時において算出されるエントロピーの差分ΔRは下記(9)式となる。なお、(9)式におけるCは、設計したモデルに応じて経験的に決定される定数である。
【0105】
【0106】
また、上記第2実施形態では、上位潜在変数の確率分布をGMMにより推定する場合について説明したが、これに限定されない。例えば、累積確率関数を合成関数の形で表し、連鎖律によって因数分解された導関数群として、各次元が独立な確率分布を推定する手法を用いてもよい。
【0107】
また、上記各実施形態では、入力データが画像データである場合を主に例示して説明したが、入力データは、心電図や脳波等の波形データであってもよい。その場合、符号化等のアルゴリズムには、1次元変換したCNN等を用いればよい。
【0108】
また、上記各実施形態では、1つのコンピュータに、学習時及び判定時の各機能部を含む判定制御装置について説明したが、これに限定されない。パラメータが調整される前のオートエンコーダ、推定部、及び調整部を含む学習装置と、パラメータが調整されたオートエンコーダ、推定部、及び判定部を含む判定装置とを、それぞれ別のコンピュータで構成するようにしてもよい。
【0109】
また、上記各実施形態では、異常判定プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【符号の説明】
【0110】
10、210 異常判定装置
12、212 推定部
14、214 調整部
16 判定部
20、220 オートエンコーダ
22 符号化部
24 ノイズ生成部
26 加算部
28 復号化部
221 下位符号化部
222 上位符号化部
223 下位ノイズ生成部
224 上位ノイズ生成部
225 下位加算部
226 上位加算部
227 下位復号化部
228 上位復号化部
40 コンピュータ
41 CPU
42 メモリ
43 記憶部
49 記憶媒体
50、250 異常判定プログラム