(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】学習装置、学習方法および学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20230426BHJP
【FI】
G06N20/00 160
(21)【出願番号】P 2019014036
(22)【出願日】2019-01-30
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】岩本 和樹
(72)【発明者】
【氏名】上村 健人
(72)【発明者】
【氏名】安富 優
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2018-192264(JP,A)
【文献】栗原 慧至,画像補完技術を用いた眼底画像の異常検出,電気学会研究会資料,日本,一般社団法人電気学会,2018年09月26日,pp.105-109
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00
G06N 20/00
G06N 99/00
G06T 7/00
G06V 10/00
(57)【特許請求の範囲】
【請求項1】
画像データを生成する生成器と、
本物の画像データ
と生成された画像データとを識別する識別器と、
学習過程において、前記識別器が前記識別器の識別誤差を最小化するように学習するとともに前記生成器が前記識別誤差を最大化するように学習する第1の学習段階と、前記第1の学習段階より後の学習段階であって、前記識別器が前記識別誤差を最小化するように学習するとともに前記生成器が前記識別誤差を最小化するように学習する第2の学習段階と、を実行する学習部と、
を有することを特徴とする学習装置。
【請求項2】
前記生成器は、前記識別器に正常データと識別させるための第1の画像データを生成し、一定の割合で、前記識別器に異常データと識別させるための第2の画像データを生成し、
前記識別器は、前記生成器から入力される前記第1の画像データ、または、前記第2の画像データが、予め保持される正常データであるか否かを識別し、
前記学習部は、前記第1の画像データが生成された場合は、
前記第1の学習段階を実行し、前記第2の画像データが生成された場合は、
前記第2の学習段階を実行することを特徴とする請求項1に記載の学習装置。
【請求項3】
前記
第1の学習段階は、前記第1の画像データを異常データと識別するように前記識別器
の学習を実行するとともに、前記識別器が前記第1の画像データを正常データと識別するように前記生成器
の学習を実行する学習段階であり、
前記第2の学習段階は、前記第2の画像データを異常データと識別するように前記識別器
の学習を実行するとともに、前記識別器が前記第2の画像データを異常データと識別するように前記生成器
の学習を実行する学習段階であることを特徴とする請求項2に記載の学習装置。
【請求項4】
前記画像データの生成元である種の空間に関し、第1の種を含む第1の領域と、前記第1の種の近傍に存在するが前記第1の領域に含まれない第2の種を含む第2の領域とを設定する設定部をさらに有し、
前記生成器は、前記第1の種を用いて、前記第1の画像データを生成し、前記第2の種を用いて、前記第2の画像データを生成することを特徴とする請求項2に記載の学習装置。
【請求項5】
前記画像データの生成元である種の空間に関し、第1の種を含む第1の領域と、前記第1の種の近傍に存在するが前記第1の領域に含まれない第2の種を含む第2の領域とを設定し、前記正常データを前記第1の種として前記第1の領域に登録する設定部をさらに有し、
前記生成器は、前記第1の領域に含まれる前記正常データを用いて、前記第1の画像データを生成し、前記第2の種を用いて、前記第2の画像データを生成することを特徴とする請求項2に記載の学習装置。
【請求項6】
学習済みの
前記識別器に、識別対象の画像データを複数領域に分割して入力して、前記学習済みの
前記識別器により異常が検出された場合に、前記学習済みの
前記識別器が異常と示す領域を提示する検出部をさらに有することを特徴とする請求項1に記載の学習装置。
【請求項7】
学習過程において、本物の画像データと生成された画像データとを識別する識別器が前記識別器の識別誤差を最小化するように学習するとともに、画像データを生成する生成器が前記識別誤差を最大化するように学習する第1の学習段階と、前記第1の学習段階より後の学習段階であって、前記識別器が前記識別誤差を最小化するように学習するとともに、前記生成器が前記識別誤差を最小化するように学習する第2の学習段階と、を実行する
処理を
コンピュータが実行することを特徴とする学習方法。
【請求項8】
学習過程において、本物の画像データと生成された画像データとを識別する識別器が前記識別器の識別誤差を最小化するように学習するとともに、画像データを生成する生成器が前記識別誤差を最大化するように学習する第1の学習段階と、前記第1の学習段階より後の学習段階であって、前記識別器が前記識別誤差を最小化するように学習するとともに、前記生成器が前記識別誤差を最小化するように学習する第2の学習段階と、を実行する
処理を
コンピュータに実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法および学習プログラムに関する。
【背景技術】
【0002】
近年、医療画像分析の分野等で、画像データを用いて、病変等の異常を検出することが行われている。特に、医療等の分野では、訓練データに用いる異常状態の画像データの入手が困難なことが多いことから、正常状態の画像データのみを利用した機械学習が求められるとともに、大量かつ精密な大容量のデータを扱うことから、検出速度の高速化も求められている。
【0003】
このような状況下で、機械学習を使用した異常検知に手法として、正常データの分布を推定して、その分布から外れたデータを異常データと検知する敵対的生成ネットワーク(GAN:Generative Adversarial Networks)が知られている。
図15は、GANを説明する図である。
図15に示すように、GANは、生成器と識別器とを有し、生成器を学習するネットワークと識別器を学習するネットワークとが互いに成長していく教師なし学習の学習モデルである。
【0004】
GANでは、生成器がノイズなどの入力データから本物データに近い偽物データを生成するように学習し、識別器が生成器により生成されたデータが本物データか偽物データかを識別できるように学習する。このGANを用いた異常検出としては、学習済みの生成器が与えられたサンプルを生成する能力が存在するか否かを判定して、能力が無ければ異常データとみなす手法や、学習済みの識別器が偽物データと判定したデータを異常データとみなす手法が利用されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】Schlegl,Thomas,et al.“Unsupervised anomaly detection with generative adversarial networks to guide marker discovery.”,International Conference on Information Processing in Medical Imaging.Springer,Cham,2017.
【文献】M.Sabokrou,et al.“Adversarially Learned One-Class Classifier for Novelty Detection”,Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記技術では、識別器の異常検知の能力が低下する場合がある。具体的には、識別器を使用する場合、識別器の特性が学習終了時の生成器が誤って生成する正常データ以外のデータに依存するので、検出漏れが大きくなる場合がある。例えば、識別器は、正常データと生成器の出力の違いを見分ける能力があると期待できるが、その一方で、生成器の出力に含まれず、正常データにも含まれないものは、学習できないので、特定の出力を期待できない。なお、生成器を用いる手法は、検出コストが高いので、高速性が求められる異常検知には不向きである。
【0007】
一つの側面では、識別器の異常検知の能力低下を抑制することができる学習装置、学習方法および学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
第1の案では、学習装置は、画像データを生成する生成器と、前記画像データの真偽を識別する識別器とを有する。学習装置は、前記生成器により生成される前記画像データごとに、前記識別器を識別誤差の最大化または最小化のいずれか一方の学習指標に従い学習させ、前記生成器を他方の学習指標に従い学習させる学習部を有する。
【発明の効果】
【0009】
一実施形態によれば、識別器の異常検知の能力低下を抑制することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1にかかる異常検出装置を説明する図である。
【
図5A】
図5Aは、学習後の識別器と一般技術の問題点とを説明する図である。
【
図5B】
図5Bは、学習後の識別器と一般技術の問題点とを説明する図である。
【
図6】
図6は、実施例1にかかる異常検出装置の機能構成を示す機能ブロック図である。
【
図7】
図7は、実施例1にかかる学習処理を説明する図である。
【
図8】
図8は、検出結果の一例を説明する図である。
【
図9】
図9は、実施例1にかかる学習処理の流れを示すフローチャートである。
【
図10】
図10は、実施例1にかかる検出処理の流れを示すフローチャートである。
【
図11】
図11は、実施例2にかかる学習処理を説明する図である。
【
図12】
図12は、実施例2にかかる学習処理の流れを示すフローチャートである。
【
図13】
図13は、実施例3にかかる学習処理を説明する図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する学習装置、学習方法および学習プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0012】
[異常検出装置10の説明]
図1は、実施例1にかかる異常検出装置10を説明する図である。
図1に示すように、異常検出装置10は、学習フェーズにおいて、GANにより生成器と識別器とを学習し、予測フェーズにおいて、学習済みの識別器を用いて、予測対象の画像データに対して異常検知を実行する学習装置の一例である。
【0013】
ところで、一般的なGANによる学習では、識別器の異常検知の能力が低下する場合がある。ここで、
図2から
図5を用いて、一般的なGANの問題点を説明する。ここでは、
図2から
図5では、一般的なGANによる学習に関し、学習開始前から学習終了後の各段階を例示して説明する。
図2は、学習前を説明する図である。
図3は、学習開始後を説明する図である。
図4は、学習の進行中を説明する図である。
図5Aと
図5Bは、学習後の識別器と一般技術の問題点とを説明する図である。
【0014】
図2に示すように、学習前では、生成器は、正常データとは異なる分布のデータを生成し、識別器は、正常データに分布と生成器が生成したデータの分布との違いを学習する。すなわち、識別器は、正常データの分布と生成器が生成するデータの分布とを明確に区別して識別する。
【0015】
続いて、
図3に示すように、学習が開始されると、識別器に正常と識別されるデータが多く、異常と識別されるデータが少なくなるように、生成器の学習が進む。すなわち、生成器は、識別器が識別を間違えるようなデータの生成を学習するので、生成器が生成するデータの分布が、識別器が正常と判断できる範囲を含むように学習される。その一方で、識別器は、学習開始に伴って生成器が生成するデータの分布が変更されると、正常であると識別する識別結果の確率が変化していくが、正常データの分布と生成器が生成したデータの分布との違いを学習する。
【0016】
続いて、
図3の時点よりも学習が進むと、
図4に示すように、生成器が生成するデータの分布は、
図3において識別器が正常と識別できる範囲を含むように学習される。すなわち、生成器が生成するデータの分布が、識別器が正常と識別できる範囲により多く含まれるように更新される。一方で、識別器は、更新された生成器が生成データの分布と、正常データの分布とを識別するように学習する。
【0017】
さらに学習が進むと、
図5Aに示すように、生成器は、
図4の状態から、識別器が正常と識別できる範囲のデータを模倣して識別器を間違わせるように学習するので、生成器が生成するデータの分布が、
図4において識別器が識別できる範囲を含むように更新される。学習が完了すると、学習後の識別器は、生成器が生成したデータと正常データ(本物データ)とを識別できるように学習されている。
【0018】
しかし、一般的なGANでは、識別器の特性が学習終了時の生成器が誤って生成する正常データ以外のデータに依存するので、検出漏れが大きくなる場合がある。つまり、
図5Bに示すように、学習後の識別器が異常と判断できる範囲に存在する異常データに対しては正しく異常を検出できるが、それ以外の範囲に存在する異常データを検出できない。言い換えると、一般的なGANでは、検出が期待される異常データの範囲まで識別器を学習できないことがある。
【0019】
この原因の一つは、通常のGANの学習方法では、生成器が、正常データと期待できるデータのみを生成するように学習を進行するので、生成器が生成するデータの分布が正常データの分布と一致しない状態を維持することは困難だからである。すなわち、生成器は、識別器が正常データと判断するデータのみを作ろうとするからである。
【0020】
そこで、異常検出装置10は、生成器が出力する画像データごとに、識別誤差の最大化または最小化を決定する。そして、異常検出装置10は、生成される画像データごと、識別器を決定された最大化または最小化のいずれか一方の学習指標に従い学習させ、生成器を他方の学習指標に従い学習させる。
【0021】
すなわち、正常なデータの周辺に存在すると期待される異常データを網羅的に生成可能な生成器を用いることで、一般技術では見落とされる異常データの検出を実現する。具体的には、一定の割合で、識別器が正常データと判断するデータを生成した場合に生成器に損失を発生させることで、
図5Bに示すように、生成器が生成するデータの分布が、検出が期待される異常データの範囲を含むように制御する。このようにして、識別器の学習範囲を広げることで、識別器の異常検知の能力低下を抑制することができる。
【0022】
[機能構成]
図6は、実施例1にかかる異常検出装置10の機能構成を示す機能ブロック図である。
図6に示すように、異常検出装置10は、通信部11、記憶部12、制御部20を有する。
【0023】
通信部11は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者端末から各種処理の開始指示、正常データ、予測対象データなどを受信し、管理者端末に学習結果や予測結果などを送信する。
【0024】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、正常データDB13、元情報DB14、学習結果DB15などを記憶する。
【0025】
正常データDB13は、正常な状態の内臓等が撮像された画像データを記憶するデータベースである。例えば、正常データDB13は、GANによる識別器の学習において使用される正常データを記憶する。
【0026】
元情報DB14は、生成器によるデータ生成の元となる情報を記憶するデータベースである。例えば、元情報DB14は、乱数、ランダムノイズ、潜在変数などであり、いわゆる種と呼ばれる情報を記憶する。
【0027】
学習結果DB15は、生成器および識別器の学習結果を記憶するデータベースである。例えば、学習結果DB15は、学習処理部30による生成器および識別器の学習結果として、学習が完了した学習済みの生成器や識別器を生成できる各種パラメータを記憶する。
【0028】
制御部20は、異常検出装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、学習処理部30と検出部40を有し、識別精度のよい識別器を学習し、入力される予測対象の画像データに対して異常検知を実行する。
【0029】
学習処理部30は、生成器学習部31と識別器学習部32を有し、GANを用いた生成器および識別器の学習を実行する処理部である。例えば、学習処理部30は、識別器の識別誤差を最大化または最小化のいずれの学習をさせるかを決定する。そして、学習処理部30は、識別器が識別誤差を最大化するように学習させる場合は、識別誤差が最小化するように生成器を学習させ、識別器が識別誤差を最小化するように学習させる場合は、識別誤差が最大化するように生成器を学習させる。
【0030】
生成器学習部31は、GANの生成器の学習を実行する処理部である。具体的には、生成器学習部31は、一般的なGANによる生成器の学習を実行しつつ、一定の割合で、識別器が正常データと判断するデータを生成した場合に生成器に損失を発生させるように、生成器を学習させる。
【0031】
例えば、生成器学習部31は、元情報DB14に記憶される種を用いて、生成器により画像データを生成する。そして、生成器学習部31は、生成された画像データ(以下では、生成データと記載する場合がある)を識別器に入力し、識別器の識別結果を取得する。そして、生成器学習部31は、識別結果を用いて、生成データが識別器により正常データと識別されるように、生成器を学習する。
【0032】
ここで、生成器学習部31は、所定回数ごとのように一定の割合で、識別器が異常と識別するデータを生成して、生成器を学習する。例えば、通常通り、生成器は、生成した生成データが識別器によって異常と識別された場合に報酬を受けて学習を行うが、一定の割合で、識別器が正しく異常と識別できるデータを生成し、識別器によって正しく異常と識別された場合に報酬を受けて学習を行う。つまり、生成器学習部31は、一定の割合で、
図5Bに示す検出が期待される異常データを生成器により生成して、識別器および生成器の学習を実行する。
【0033】
より詳細には、生成器は、識別器に異常と見破られないように、識別器を混乱させるデータを生成して学習を行う。その一方で、生成器は、一定の割合で、識別器に異常と見破られるように、識別器を混乱させないデータの生成を行って、識別器が当該異常データを正確に異常と識別できるよう生成器を学習する。学習手法としては、一定の割合で、生成器の損失関数などを反転させて学習を行う手法を用いることができる。
【0034】
識別器学習部32は、GANの識別器の学習を実行する処理部である。具体的には、識別器学習部32は、一般的なGANと同様、正常データDB13に記憶される正常データと、生成器により生成される生成データとを区別できるように生成器を学習する。すなわち、識別器は、識別誤差を最小化するように学習する。
【0035】
例えば、識別器学習部32は、生成器から生成データを取得して識別器に入力し、識別器の出力結果を取得する。そして、識別器学習部32は、出力結果に含まれる正常データである正常確率と、生成データである異常確率とのうち、異常確率が高くなり、正常確率が低くなるように、識別器を学習する。
【0036】
すなわち、識別器学習部32は、生成器が生成する生成データの分布と正常データの分布との違いを識別器に学習させる。学習が完了すると、識別器学習部32は、学習済みの識別器に関する情報を学習結果DB15に格納する。
【0037】
ここで、学習処理を具体的に説明する。
図7は、実施例1にかかる学習処理を説明する図である。通常、生成器は、種を用いてデータを生成して識別器に入力し、識別器の識別結果に基づいて、生成データが識別器を欺いて正常データと識別されるように学習する。
【0038】
実施例1では、
図7に示すように、一定の割合で、生成器が、生成データをデータ1とデータ2に分割して、各データを識別器に入力する。識別器は、正常データは正常データであると識別し、生成データ(データ1、データ2)は異常データであると識別するように学習する。さらに、生成器は、識別器が、データ1を正常と識別し、データ2を異常と識別するように学習する。
【0039】
検出部40は、入力される画像データから異常検出を実行する処理部である。例えば、検出部40は、学習処理部30による学習が完了すると、学習済みの識別器に関するパラメータなどを学習結果DB15から読み出して、識別器を構築する。そして、検出部40は、予測対象である画像データを受信すると、当該画像データを構築した識別器に入力し、出力結果を取得する。
【0040】
ここで、検出部40は、出力結果に含まれる正常データである正常確率と、生成データである異常確率とのうち、正常確率の方が高い場合は入力された画像データを正常な画像データと識別し、異常確率の方が高い場合は入力された画像データを異常な画像データと識別する。そして、検出部40は、識別結果を管理者端末に送信したり、ディスプレイなどの表示部に表示したり、記憶部12に格納したりする。
【0041】
図8は、検出結果の一例を説明する図である。
図8に示すように、検出部40は、予測対象である入力画像を小領域に分割後、学習済みの識別器に入力して、識別結果を取得する。そして、検出部40は、識別器が異常と判定した領域をユーザに提示することができる。
【0042】
[学習処理の流れ]
図9は、実施例1にかかる学習処理の流れを示すフローチャートである。
図9に示すように、学習処理が指示されると、学習処理部30は、生成器と識別器を初期化する(S101)。
【0043】
そして、学習処理部30は、所定のタイミングではない場合(S102:No)、生成器でデータ(生成データ)を生成して識別器に入力し(S103)、正常データと生成データとを識別できるように識別器を学習する(S104)。また、学習処理部30は、生成データが識別器に正常データと識別されるように、生成器を学習する(S105)。
【0044】
その後、学習処理部30は、学習を継続する間は(S106:No)、S102以降を繰り返す。一方、学習を完了する場合は(S106:Yes)、学習処理部30は、識別器を保存する(S107)。
【0045】
一方、S102において、学習処理部30は、所定のタイミングと判定した場合(S102:Yes)、生成器でデータ(生成データ)を生成し、生成データをデータ1とデータ2に分割する(S108)。
【0046】
続いて、学習処理部30は、データ1およびデータ2を識別器に入力し、正常データと生成データ(データ1、データ2)とを識別できるように識別器を学習する(S109)。そして、学習処理部30は、データ1が識別器に正常データとして識別され、データ2が識別器に異常データとして識別されるように生成器を学習する(S110)。その後、学習処理部30は、S106とS107を実行する。
【0047】
[検出処理の流れ]
図10は、実施例1にかかる検出処理の流れを示すフローチャートである。
図10に示すように、検出処理が指示されると、検出部40は、保存された識別器を読み込む(S201)。続いて、検出部40は、対象データを識別器に入力して、対象データの異常を判定(識別)する(S202)。
【0048】
ここで、検出部40は、正常と判定された場合(S203:Yes)、処理を終了し、正常と判定されなかった場合(S203:No)、対象データを異常データとして出力する(S204)。
【0049】
[効果]
上述したように、異常検出装置10は、例えば医療における検出したい異常データが正常データの分布から大きく外れたところには出現しないことに着目し、通常のGANによる生成器の学習に加えて、通常の学習とは逆に、識別器が正常に異常と識別できるような学習を一定の割合で組み込む。例えば、識別器は、学習が進むにつれて損失が増加した後、生成器の学習に追従していくので、損失が低下していく。その一方で、一定の割合で生成器の損失を発生させることで、生成器が生成するデータの分布が、正常データの分布から離れることになる。つまり、生成器が、正常データの分布の近くにある異常データを一定の割合で生成することができるので、識別器の学習範囲を拡張することができる。この結果、識別器の異常検知の能力低下を抑制することができる。
【実施例2】
【0050】
ところで、実施例1では、生成器が生成データを分割してデータ1とデータ2を生成する例を説明したが、生成器に損失を発生させるためのデータの生成手法は、これに限定されるものではない。例えば、損失を発生させる割合を、生成器が使用するデータ生成の元となる種の値によって変化させることで、発生させる異常データの範囲を制御することもできる。例えば、種として0から1の乱数を用いる場合に、0.2から0.8を用いてデータ1を生成し、残りを用いてデータ2を生成する。
【0051】
図11は、実施例2にかかる学習処理を説明する図である。
図11に示すように、学習処理部30は、元情報DB14に記憶される種のうち、正常データの生成に利用する種1の範囲と、異常データの生成に使用する種2の範囲を設定する。なお、種2の範囲は、種1の近傍に設定する。また、種の空間は、一次元、二次元、多次元のいずれであってもよい。
【0052】
そして、学習処理部30は、通常のGANの学習を実行しつつ、一定の割合で、種1を用いてデータ1を生成するとともに、種2を用いてデータ2を生成し、データ1とデータ2のそれぞれを識別器に入力する。その後は、実施例1と同様の学習を実行する。
【0053】
図12は、実施例2にかかる学習処理の流れを示すフローチャートである。なお、通常のGANの学習処理の流れは、
図9のS101からS107と同様なので、詳細な説明は省略し、実施例1と異なる処理の流れの部分について説明する。すなわち、実施例2では、
図9のS101、S102(Yes)、S108からS110、S106、S107の流れに該当する処理を説明する。
【0054】
図12に示すように、学習処理が指示されると、学習処理部30は、生成器と識別器を初期化する(S301)。そして、学習処理部30は、元情報DB14に記憶される種の一定の領域から種1をサンプリングし、種1からデータ1を生成する(S302)。また、学習処理部30は、元情報DB14に記憶される情報のうち、種1とは別の領域から種2をサンプリングし、種2からデータ2を生成する(S303)。
【0055】
続いて、学習処理部30は、データ1およびデータ2を識別器に入力し、正常データと生成データ(データ1、データ2)とを識別できるように識別器を学習する(S304)。そして、学習処理部30は、データ1が識別器に正常データとして識別され、データ2が識別器に異常データとして識別されるように生成器を学習する(S305)。
【0056】
その後、学習処理部30は、学習を継続する間は(S306:No)、S302以降を繰り返す。一方、学習を完了する場合は(S306:Yes)、学習処理部30は、識別器を保存する(S307)。
【0057】
上述したように、学習処理部30は、通常通りに識別器を混乱させるように学習させるデータ1の生成元と、識別器を混乱させないように学習させるデータ2の生成元とを予め設定しておくことで、データ2の精度を向上させることができる。例えば、異常データは、正常データの分布から大きく外れたところに存在せず、正常データの近傍に存在すると予想できる。また、近い種同士からは同種のデータが生成されると期待できる。
【0058】
したがって、正常データの種の近傍であるが、異常データに該当すると予想できる種から異常データを生成することで、最終的に検出したい異常データを用いた識別器の学習が実行できる。このため、学習処理部30は、生成器に対して、識別器を騙すためのデータ1に対応する種1の近傍であるが、種1には含まれない種2の範囲を種1の範囲の近傍に設定し、種2を用いてデータ2を生成することで、識別器の精度向上を図ることができる。特に、通常のGANが使用する種の分布の周辺を新たな種に使用し、それらの上記割合を増加させることができるので、正常データの種類が少数である場合に特に有効である。
【実施例3】
【0059】
ところで、実施例2では、乱数などを種として使用する例を説明したが、これに限定されるものではない。例えば、実施例2で使用する種として、学習に使用する正常データを使用することができる。正常データおよび異常データが共に多様性がある場合に特に有効である。
【0060】
図13は、実施例3にかかる学習処理を説明する図である。
図13に示すように、学習処理部30は、正常データDB13に予め格納される各正常データを種1として、元情報DB14に格納する。そして、学習処理部30は、元情報DB14に格納された各種1の近傍の範囲を各種2として設定する。すなわち、学習処理部30は、識別器を混乱させる正常データの生成に使用する種1と、識別器を混乱させない異常データの生成に使用する種2とを設定する。
【0061】
そして、学習処理部30は、通常のGANの学習を実行しつつ、一定の割合で、種1を用いてデータ1を生成するとともに、種2を用いてデータ2を生成し、データ1とデータ2のそれぞれを識別器に入力する。その後は、実施例1と同様の学習を実行する。
【0062】
このようにすることで、学習処理部30は、正常データの近傍にあると予想される、最終的に検出したい異常データを正確に生成することができるので、当該異常データを用いて識別器を学習することができ、識別器の精度向上を図ることができる。
【実施例4】
【0063】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0064】
[学習]
例えば、学習処理を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や識別器の損失が閾値未満となった時点など、任意に設定することができる。また、医療用の画像データに限らず、不正侵入や危険物持ち込みなどを判定する各種分野に適用することができる。
【0065】
[一定の割合]
例えば、学習処理部30は、10回に1回や、100回などと学習回数が予め設定されている場合には学習回数の1割などのように、任意に設定変更することができる。また、学習処理部30は、識別器の損失が上がった後に下がったタイミングで、上記データ1およびデータ2の生成を行って各学習を行うことができる。
【0066】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0067】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習処理部30と検出部40とを別々の装置で実現することもできる。
【0068】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0069】
[ハードウェア]
図14は、ハードウェア構成例を説明する図である。
図14に示すように、異常検出装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図14に示した各部は、バス等で相互に接続される。
【0070】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図6に示した機能を動作させるプログラムやDBを記憶する。
【0071】
プロセッサ10dは、
図6に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図6等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、異常検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、学習処理部30と検出部40等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、学習処理部30と検出部40等と同様の処理を実行するプロセスを実行する。
【0072】
このように異常検出装置10は、プログラムを読み出して実行することで異常検出方法を実行する情報処理装置として動作する。また、異常検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、異常検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0073】
10 異常検出装置
11 通信部
12 記憶部
13 正常データDB
14 元情報DB
15 学習結果DB
20 制御部
30 学習処理部
31 生成器学習部
32 識別器学習部
40 検出部