(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 2019014035
(22)【出願日】2019-01-30
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】岩本 和樹
(72)【発明者】
【氏名】上村 健人
(72)【発明者】
【氏名】安富 優
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2018-192264(JP,A)
【文献】国際公開第2019/169594(WO,A1)
【文献】坂本 俊之,Chainerで作る コンテンツ自動生成AIプログラミング入門,第1版,株式会社シーアンドアール研究所,2017年12月22日,第68ページ、第85-第95ページ,ISBN:978-4-86354-234-1
【文献】栗原 慧至,画像補完技術を用いた眼底画像の異常検出,電気学会研究会資料,日本,一般社団法人電気学会,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の状態よりも前の状態である第2の状態の前記生成器が生成するデータを用いて、
前記第1の状態の前記生成器が生成したデータで学習した前記識別器の再学習を実行する再学習部と
を有することを特徴とする学習装置。
【請求項2】
前記
第2の状態は、前記第1の状態より前の状態であって、前記識別器の損失が閾値以上になった後、再び前記閾値未満となったときの
状態であることを特徴とする請求項1に記載の学習装置。
【請求項3】
前記識別器は、第1の識別器と、前記第1の識別器よりも学習速度が速い第2の識別器とを含み、
前記学習
処理は、前記生成器が前記第1の識別器の識別誤差を最大化するように
学習するとともに、
前記生成器が生成するデータを用いて、前記第1の識別器が前記第1の識別器の前記識別誤差
を最小化するように
学習するとともに前記第2の識別器が前記第2の識別器
の識別誤差
を最小化するように
学習する学習処理であって、
前記第2の状態は、前記第1の状態より前の状態であって、前記第2の識別器の損失が増加した後に低下し始めるとともに、前記第1の識別器の損失が閾値以上のときの状態であって、
前記
再学習部は、
前記第2の状態の前記生成器が生成するデータを用いて、前記第1の状態の前記生成器が生成したデータで学習した前記第2の識別器の再学習を実行することを特徴とする請求項1に記載の学習装置。
【請求項4】
前記再学習部は、前記学習部による前記学習
処理が完了した後に、前記再学習を開始することを特徴とする請求項1に記載の学習装置。
【請求項5】
前記再学習部は、前記学習部による前記学習
処理が完了する前に、前記再学習を開始することを特徴とする請求項1に記載の学習装置。
【請求項6】
前記
再学習部によって再学習された
再学習済みの前記識別器に、識別対象の画像データを複数領域に分割して入力して、
前記再学習済みの前記識別器により異常が検出された場合に、前記
再学習済みの前記識別器が異常と示す領域を提示する検出部をさらに有することを特徴とする請求項1に記載の学習装置。
【請求項7】
学習過程において、画像データを生成する生成器が、
本物の画像データと生成された画像データとを識別する識別器の識別誤差を最大化するように
学習するとともに、
前記生成器が生成するデータを用いて、前記識別器が
前記識別誤差を最小化するように学習
する学習処理を実行し、
前記学習過程における第1の状態よりも前の状態である第2の状態の前記生成器が生成するデータを用いて、
前記第1の状態の前記生成器が生成したデータで学習した前記識別器の再学習を実行する
処理を
コンピュータが実行することを特徴とする学習方法。
【請求項8】
学習過程において、画像データを生成する生成器が、
本物の画像データと生成された画像データとを識別する識別器の識別誤差を最大化するように
学習するとともに、
前記生成器が生成するデータを用いて、前記識別器が
前記識別誤差を最小化するように学習
する学習処理を実行し、
前記学習過程における第1の状態よりも前の状態である第2の状態の前記生成器が生成するデータを用いて、
前記第1の状態の前記生成器が生成したデータで学習した前記識別器の再学習を実行する
処理を
コンピュータに実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法および学習プログラムに関する。
【背景技術】
【0002】
近年、医療画像分析の分野等で、画像データを用いて、病変等の異常を検出することが行われている。特に、医療等の分野では、訓練データに用いる異常状態の画像データの入手が困難なことが多いことから、正常状態の画像データのみを利用した機械学習が求められるとともに、大量かつ精密な大容量のデータを扱うことから、検出速度の高速化も求められている。
【0003】
このような状況下で、機械学習を使用した異常検知に手法として、正常データの分布を推定して、その分布から外れたデータを異常データと検知する敵対的生成ネットワーク(GAN:Generative Adversarial Networks)が知られている。
図17は、GANを説明する図である。
図17に示すように、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にかかる異常検出装置を説明する図である。
【
図5】
図5は、学習後の識別器を説明する図である。
【
図6】
図6は、実施例1にかかる異常検出装置の機能構成を示す機能ブロック図である。
【
図7】
図7は、検出結果の一例を説明する図である。
【
図8】
図8は、実施例1にかかる学習処理の流れを示すフローチャートである。
【
図9】
図9は、実施例1にかかる検出処理の流れを示すフローチャートである。
【
図12】
図12は、実施例2にかかる学習処理を説明する図である。
【
図13】
図13は、実施例2にかかる学習処理の流れを示すフローチャートである。
【
図14】
図14は、実施例3にかかる学習処理を説明する図である。
【
図15】
図15は、実施例3にかかる学習処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
以下に、本願の開示する学習装置、学習方法および学習プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0012】
[異常検出装置10の説明]
図1は、実施例1にかかる異常検出装置10を説明する図である。
図1に示すように、異常検出装置10は、学習フェーズにおいて、GANにより生成器と識別器とを学習し、予測フェーズにおいて、学習済みの識別器を用いて、予測対象の画像データに対して異常検知を実行する学習装置の一例である。
【0013】
ところで、一般的なGANによる学習では、識別器の異常検知の能力が低下する場合がある。ここで、
図2から
図5を用いて、一般的なGANの問題点を説明する。ここでは、
図2から
図5では、一般的なGANによる学習に関し、学習開始前から学習終了後の各段階を例示して説明する。
図2は、学習前を説明する図である。
図3は、学習開始後を説明する図である。
図4は、学習の進行中を説明する図である。
図5は、学習後の識別器を説明する図である。
【0014】
図2に示すように、学習前では、生成器は、正常データとは異なる分布のデータを生成し、識別器は、正常データに分布と生成器が生成したデータの分布との違いを学習する。すなわち、識別器は、正常データの分布と生成器が生成するデータの分布とを明確に区別して識別する。
【0015】
続いて、
図3に示すように、学習が開始されると、識別器に正常と識別されるデータが多く、異常と識別されるデータが少なくなるように、生成器の学習が進む。すなわち、生成器は、識別器が識別を間違えるようなデータの生成を学習するので、生成器が生成するデータの分布が、識別器が正常と判断できる範囲を含むように学習される。その一方で、識別器は、学習開始に伴って生成器が生成するデータの分布が変更されると、正常であると識別する識別結果の確率が変化していくが、正常データの分布と生成器が生成したデータの分布との違いを学習する。
【0016】
続いて、
図3の時点よりも学習が進むと、
図4に示すように、生成器が生成するデータの分布は、
図3において識別器が正常と識別できる範囲を含むように学習される。すなわち、生成器が生成するデータの分布が、識別器が正常と識別できる範囲により多く含まれるように更新される。一方で、識別器は、更新された生成器が生成データの分布と、正常データの分布とを識別するように学習する。
【0017】
さらに学習が進むと、
図5に示すように、生成器は、
図4の状態から、識別器が正常と識別できる範囲のデータを模倣して識別器を間違わせるように学習するので、生成器が生成するデータの分布が、
図4において識別器が識別できる範囲を含むように更新される。学習が完了すると、学習後の識別器は、生成器が生成したデータと正常データ(本物データ)とを識別できるように学習されている。
【0018】
しかし、一般的なGANでは、識別器の特性が学習終了時の生成器が誤って生成する正常データ以外のデータに依存するので、検出漏れが大きくなる場合がある。つまり、学習後の識別器が異常と判断できる範囲に存在する異常データに対しては正しく異常を検出できるが、それ以外の範囲に存在する異常データを検出できない。言い換えると、一般的なGANでは、検出が期待される異常データの範囲まで識別器を学習できないことがある。
【0019】
そこで、実施例1にかかる異常検出装置10は、医療における検出したい異常データが正常データの分布から大きく外れたところには出現しないことに着目する。そして、異常検出装置10は、学習の過程で、生成器の生成するデータの分布が一時的に正常データの分布を逸脱することがありうることから、一定の間隔で学習途中の生成器を保存し、保存された生成器すべてを用いて識別器を学習する。
【0020】
具体的には、
図1に示すように、異常検出装置10は、GANによる生成器と識別器とを学習する一方で、一定間隔で、学習途中の生成器に関する情報を取得する。そして、異常検出装置10は、GANによる識別器の学習が完了すると、学習済みの識別器に対して、途中に保存した各生成器を用いて再学習を実行する。再学習の完了後、異常検出装置10は、予測対象の画像データを再学習済みの識別器に入力して、異常検出を実行する。
【0021】
[機能構成]
図6は、実施例1にかかる異常検出装置10の機能構成を示す機能ブロック図である。
図6に示すように、異常検出装置10は、通信部11、記憶部12、制御部20を有する。
【0022】
通信部11は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者端末から各種処理の開始指示、正常データ、予測対象データなどを受信し、管理者端末に学習結果や予測結果などを送信する。
【0023】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、正常データDB13、途中情報DB14、学習結果DB15などを記憶する。
【0024】
正常データDB13は、正常な状態の内臓等が撮像された画像データを記憶するデータベースである。例えば、正常データDB13は、GANによる識別器の学習において使用される正常データを記憶する。
【0025】
途中情報DB14は、GANによる生成器の学習過程における学習途中の生成器に関する情報を記憶するデータベースである。例えば、途中情報DB14は、学習途中の生成器を再現(構築)できる、学習途中の各種パラメータを記憶する。
【0026】
学習結果DB15は、生成器および識別器の学習結果を記憶するデータベースである。例えば、学習結果DB15は、GANを用いた生成器および識別器の学習結果や、識別器の再学習結果として、学習が完了した学習済みの生成器や識別器を生成できる各種パラメータを記憶する。
【0027】
制御部20は、異常検出装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、学習処理部30、再学習部40、検出部50を有し、識別精度のよい識別器を学習し、入力される予測対象の画像データに対して異常検知を実行する。
【0028】
学習処理部30は、生成器学習部31、識別器学習部32、一時保存部33を有し、GANを用いた生成器および識別器の学習を実行する処理部である。
【0029】
生成器学習部31は、GANの生成器の学習を実行する処理部である。具体的には、生成器学習部31は、一般的なGANと同様、識別器に正常と判定されるデータが多く、異常と判定されるデータが少なくなるように生成器を学習する。すなわち、生成器は、識別器の識別誤差を最大化するように学習する。
【0030】
例えば、生成器学習部31は、乱数やランダムノイズなどであり、いわゆる種などと呼ばれる潜在変数を用いて、生成器により画像データを生成する。そして、生成器学習部31は、生成された画像データ(以下では、生成データと記載する場合がある)を識別器に入力し、識別器の識別結果を取得する。そして、生成器学習部31は、識別結果を用いて、生成データが識別器により正常データと識別されるように、生成器を学習する。
【0031】
すなわち、生成器学習部31は、生成器が生成する生成データの分布が正常データの分布と一致するように、生成器を学習する。学習が完了すると、生成器学習部31は、学習済みの生成器に関する情報を学習結果DB15に格納する。
【0032】
識別器学習部32は、GANの識別器の学習を実行する処理部である。具体的には、識別器学習部32は、一般的なGANと同様、正常データDB13に記憶される正常データと、生成器により生成される生成データとを区別できるように生成器を学習する。すなわち、識別器は、識別誤差を最小化するように学習する。
【0033】
例えば、識別器学習部32は、生成器から生成データを取得して識別器に入力し、識別器の出力結果を取得する。そして、識別器学習部32は、出力結果に含まれる正常データである正常確率と、生成データである異常確率とのうち、異常確率が高くなり、正常確率が低くなるように、識別器を学習する。
【0034】
すなわち、識別器学習部32は、生成器が生成する生成データの分布と正常データの分布との違いを識別器に学習させる。学習が完了すると、識別器学習部32は、学習済みの識別器に関する情報を学習結果DB15に格納する。
【0035】
一時保存部33は、学習途中の生成器を保存する処理部である。例えば、一時保存部33は、生成器学習部31による生成器の学習過程において、一定時間ごと、または、一定学習回数ごとに、学習途中の生成器の状態を示す各種パラメータを、生成器から取得して途中情報DB14に格納する。
【0036】
再学習部40は、GANにより学習された識別器の再学習を実行する処理部である。具体的には、再学習部40は、一時保存部33により保存された、学習途中の生成器すべてを用いて、識別器の再学習を実行する。
【0037】
例えば、再学習部40は、学習処理部30による学習が完了すると、途中情報DB14からパラメータなどの情報を読み出して、学習途中である各生成器を生成する。同様に、再学習部40は、学習結果DB15から識別器のパラメータなどを読み出して、学習済みの識別器を生成する。
【0038】
ここで、学習途中の識別器が4つ生成されたとする。すると、再学習部40は、1つ目の生成器を用いて生成データを生成して、学習済みの識別器に入力して、当該識別器を学習させる。続いて、再学習部40は、2つ目の生成器を用いて生成データを構築して、1つの識別器により学習された識別器に入力して、当該識別器を学習させる。このようにして、再学習部40は、学習途中の各生成器を順次用いて、識別器の再学習を実行する。そして、再学習部40は、再学習が完了すると、再学習済みの識別器に関する情報を学習結果DB15に格納する。
【0039】
検出部50は、入力される画像データから異常検出を実行する処理部である。例えば、検出部50は、再学習部40による再学習が完了すると、再学習済みの識別器に関するパラメータなどを学習結果DB15から読み出して、識別器を構築する。そして、検出部50は、予測対象である画像データを受信すると、当該画像データを構築した識別器に入力し、出力結果を取得する。
【0040】
ここで、検出部50は、出力結果に含まれる正常データである正常確率と、生成データである異常確率とのうち、正常確率の方が高い場合は入力された画像データを正常な画像データと識別し、異常確率の方が高い場合は入力された画像データを異常な画像データと識別する。そして、検出部50は、識別結果を管理者端末に送信したり、ディスプレイなどの表示部に表示したり、記憶部12に格納したりする。
【0041】
図7は、検出結果の一例を説明する図である。
図7に示すように、検出部50は、予測対象である入力画像を小領域に分割後、再学習部40により学習された識別器に入力して、識別結果を取得する。そして、検出部50は、識別器が異常と判定した領域をユーザに提示することができる。
【0042】
[学習処理の流れ]
図8は、実施例1にかかる学習処理の流れを示すフローチャートである。
図8に示すように、学習処理が指示されると、学習処理部30は、生成器と識別器を初期化する(S101)。
【0043】
続いて、生成器学習部31は、生成器でデータ(生成データ)を生成し(S102)、識別器学習部32は、正常データと生成データとを区別できるように識別器を学習する(S103)。そして、生成器学習部31は、生成データが識別器に正常データと識別されるように、生成器を学習する(S104)。
【0044】
その後、一時保存部33は、生成器が保存されていない時間や反復数(学習回数)が一定以上である場合(S105:Yes)、学習途中である生成器を保存する(S106)。なお、生成器が保存されていない時間や反復数が一定未満であれば(S105:No)、S106を実行することなく、S107が実行される。
【0045】
その後、学習が終了するまで(S107:No)、S102以降が繰り返される。一方、学習が終了すると(S107:Yes)、再学習部40は、正常データと、保存された生成器で生成されたデータ(生成データ)とを識別できるように、識別器を再学習する(S108)。そして、再学習部40は、再学習が完了すると、識別器を保存する(S109)。
【0046】
[検出処理の流れ]
図9は、実施例1にかかる検出処理の流れを示すフローチャートである。
図9に示すように、検出処理が指示されると、検出部50は、保存された識別器を読み込む(S201)。続いて、検出部50は、対象データを識別器に入力して、対象データの異常を判定(識別)する(S202)。
【0047】
ここで、検出部50は、正常と判定された場合(S203:Yes)、処理を終了し、正常と判定されなかった場合(S203:No)、対象データを異常データとして出力する(S204)。
【0048】
[効果]
上述したように、異常検出装置10は、例えば医療における検出したい異常データが正常データの分布から大きく外れたところには出現しないことに着目し、学習途中の生成器を用いて識別器の再学習を実行する。この結果、異常検出装置10は、正常なデータの周辺に存在すると期待される異常データを網羅的に生成可能な生成器を用いて識別器を再学習することができるので、識別器の識別範囲を拡張することができる。
【0049】
図10は、一時保存と再学習を説明する図である。学習途中の生成器を保存することは、生成器の学習途中の状態を保存することであり、正常データの分布と一致するように、学習している途中の生成器が生成する生成データの分布を保存することとなる。つまり、
図10に示すように、学習初期から学習完了までに、生成器が生成する各生成データの分布の学習過程を保存しておくことができる。したがって、保存しておいたすべての生成器を用いて再学習することで、各生成器の生成データの各分布を学習することができるので、GANによる学習が完了した識別器が網羅できない範囲を学習することができる。
【0050】
図11は、効果を説明する図である。
図11に示すように、一般的なGANでは、識別器の特性が学習終了時の生成器が誤って生成する正常データ以外のデータに依存するので、異常検出が期待される範囲を網羅するように識別器の学習を行うことが難しく、検出漏れが多い。
図11の例では、識別器は、生成器のデータ分布の範囲外にあるデータAについては、異常と検出できない。
【0051】
これに対して、実施例1による識別器の学習では、途中保存される生成器により生成される生成データの分布を再学習することができるので、学習完了後の生成器の状態に依存せず、正常データの周辺をより多く網羅することができる。この結果、再学習後の識別器は、一般的なGANによる識別器では検出できなかったデータAについても異常データとして検出することができる。
【実施例2】
【0052】
ところで、実施例1では、学習途中の生成器を一定間隔で保存する例を説明したが、一定間隔ではなく、保存する間隔を制御することで、識別器の性能を向上させることができる。そこで、実施例2では、一定間隔ではなく、識別器の損失が一時的に閾値以上に上がった後、再び閾値未満に下がるタイミングで生成器を保存する例を説明する。
【0053】
図12は、実施例2にかかる学習処理を説明する図である。
図12では、GANによる学習において、識別器の損失の時間変化、すなわち識別器が識別に失敗する割合の時間変化を図示している。
図12に示すように、GANによる生成器の学習が進むと、生成器が生成するデータの分布が、識別器がカバーしていない領域へ逸脱し始め(
図12の(a))、識別器の損失が増加する(
図12の(b))。その後、識別器の学習が進み、識別器が生成器の学習に追従するので、識別器の損失が低下していき(
図12の(c))、逸脱が解消されていく(
図12の(d))。
【0054】
そこで、一時保存部33は、識別器の損失が増加していき、当該損失が低下し始めたときの生成器の状態を保存する。なお、一時保存部33は、このタイミングの生成器を複数保存したい場合、識別器の損失が低下し始めてから一定時間の間隔で生成器を保存することもできる。このようにすることで、生成器が生成するデータの分布と正常データの分布との差が大きい時点を保存することができるので、識別器が学習できる範囲を広くすることができる。この結果、識別器の性能を向上させることができる。
【0055】
図13は、実施例2にかかる学習処理の流れを示すフローチャートである。
図13に示すように、学習処理が指示されると、学習処理部30は、生成器と識別器を初期化する(S301)。
【0056】
続いて、生成器学習部31は、生成器でデータ(生成データ)を生成し(S302)、識別器学習部32は、正常データと生成データとを区別できるように識別器を学習する(S303)。そして、生成器学習部31は、生成データが識別器に正常データと識別されるように、生成器を学習する(S304)。
【0057】
その後、一時保存部33は、生成器が保存されていない時間や反復数が一定以上(S305:Yes)、かつ、識別器の損失が減少している場合(S306:Yes)、学習途中である生成器を保存する(S307)。なお、生成器が保存されていない時間や反復数が一定未満(S305:No)、または、識別器の損失が減少していない場合(S306:No)、S307を実行することなく、S308が実行される。
【0058】
その後、学習が終了するまで(S308:No)、S302以降が繰り返される。一方、学習が終了すると(S308:Yes)、再学習部40は、正常データと、保存された生成器で生成されたデータ(生成データ)とを識別できるように、識別器を再学習する(S309)。そして、再学習部40は、再学習が完了すると、識別器を保存する(S310)。なお、検出処理は、実施例1と同様なので、詳細な説明を省略する。
【実施例3】
【0059】
ところで、実施例2では、生成器が異常データを生成し始めると、すぐに識別器が追従するので、生成器による生成データの分布の識別器がカバーしていない領域への逸脱の範囲が限定され、また、どの程度逸脱が進行しているかを見極めにくいことが考えられる。
【0060】
そこで、実施例3では、学習速度の異なる識別器を2つ使用し、逸脱が進んだ状態の生成器を正確に保存することで、識別器の性能を向上させる。具体的には、生成器は、遅い識別器を用いて学習を行い、速い識別器を用いて逸脱の進行度を測る。実施例2では、速い識別器により生成データであると識別可能な生成データの割合を指標とする。また、逸脱が一定以上に進行した段階で、生成器を保存し、それ以上逸脱が起きないように、遅い識別器に速い生成器をコピーする。
【0061】
図14は、実施例3にかかる学習処理を説明する図である。
図14に示すように、
図14では、学習速度の遅い識別器A(以下では、識別器Aや遅い識別器Aなどと記載する場合がある)と学習速度の速い識別器B(以下では、識別器Bや速い識別器Bなどと記載する場合がある)の2つを用いたGANによる学習において、各識別器の損失の時間変化を図示している。
【0062】
図14に示すように、GANによる生成器の学習が進むと、生成器が生成するデータの分布が、速い識別器Bがカバーしていない領域へ逸脱し始め(
図14の(a))、速い識別器Bの損失が増加する(
図14の(b))。しかし、遅い識別器Aは、学習速度が遅いことから、速い識別器Bよりも損失の増加は少ない。
【0063】
その後、両方の識別器の学習が進むが、特に速い識別器Bの学習が進んで、生成器の学習に追従するので、速い識別器Bの損失が低下し、遅い識別器Aは逸脱を許容できない(
図14の(c))。すなわち、遅い識別器Aは、生成器の学習に追従することができず、識別の補正が進まない。
【0064】
このとき、一時保存部33は、学習途中の生成器を保存する。つまり、一時保存部33は、速い識別器Bの逸脱が一定以上進行した段階で、遅い識別器Aを用いて学習する生成器を保存する。言い換えると、一時保存部33は、速い識別器Aの損失が増加した後に低下し始める一方で、遅い識別器Bの損失が増加しているときの生成器の状態を保存する。なお、損失が一定値以上か否かの閾値は、識別器Aと識別器Bとで共通の値を用いることができる。
【0065】
そして、一時保存部33は、速い識別器の重みなどのパラメータを、遅い識別器Aにコピーして、2つの学習速度を用いた学習を再開する(
図14の(d))。すなわち、2つの識別器のいずれも速い識別器の状態に変更し、その状態から、遅い学習と速い学習を行う。
【0066】
このようにして、2つの識別器を用いた学習が完了すると、再学習部40は、一時的に保存された学習途中の生成器を用いて、識別器Bの再学習を実行する。
【0067】
図15は、実施例3にかかる学習処理の流れを示すフローチャートである。
図15に示すように、学習処理が指示されると、学習処理部30は、生成器、識別器A、識別器Bを初期化する(S401)。
【0068】
続いて、生成器学習部31は、識別器Aの学習速度が識別器Bより小さくなるように設定する(S402)。例えば、生成器学習部31は、学習率を低くしたり、学習頻度を下げたりすることで、学習速度を遅くする。
【0069】
そして、生成器学習部31は、生成器でデータ(生成データ)を生成し(S403)、識別器学習部32は、正常データと生成データとを区別できるように識別器Aと識別器Bを学習する(S404)。そして、生成器学習部31は、生成データが識別器Aに正常データと識別されるように、生成器を学習する(S405)。
【0070】
その後、一時保存部33は、生成器が保存されていない時間や反復数が一定以上(S406:Yes)、かつ、識別器Bの損失が減少している場合(S407:Yes)、学習途中である生成器を保存する(S408)。続いて、一時保存部33は、識別器Bの重みなどのパラメータを識別器Aにコピーする(S409)。
【0071】
なお、生成器が保存されていない時間や反復数が一定未満(S406:No)、または、識別器の損失が減少していない場合(S407:No)、S408とS409を実行することなく、S410が実行される。
【0072】
その後、学習が終了するまで(S410:No)、S403以降が繰り返される。一方、学習が終了すると(S410:Yes)、再学習部40は、正常データと、保存された生成器で生成されたデータ(生成データ)とを識別できるように、識別器Bを再学習する(S411)。そして、再学習部40は、再学習が完了すると、識別器Bを保存する(S412)。なお、検出処理は、実施例1と同様なので、詳細な説明を省略する。
【実施例4】
【0073】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0074】
[学習]
例えば、学習処理を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や識別器の損失が閾値未満となった時点など、任意に設定することができる。また、医療用の画像データに限らず、不正侵入や危険物持ち込みなどを判定する各種分野に適用することができる。
【0075】
[再学習のタイミング]
上記実施例では、学習完了後に、識別器を再学習する例を説明したが、これに限定されるものではない。例えば、識別器は、通常のGANによる学習と、一時的に保存された学習途中の生成器を用いて学習とを並行して実行することもできる。つまり、保存した生成器がすでに生成可能な異常データを再び生成する生成器の保存を抑制するために、学習途中でも、識別器の学習に保存した生成器を用いる。このようにすることで、学習時間を短縮できるとともに、識別器の学習を補正しながら学習できるので、識別器の識別性能の向上を図ることもできる。
【0076】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0077】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習処理部30と再学習部40と検出部50とを別々の装置で実現することもできる。
【0078】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0079】
[ハードウェア]
図16は、ハードウェア構成例を説明する図である。
図16に示すように、異常検出装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図16に示した各部は、バス等で相互に接続される。
【0080】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図6に示した機能を動作させるプログラムやDBを記憶する。
【0081】
プロセッサ10dは、
図6に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図6等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、異常検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、学習処理部30と再学習部40と検出部50等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、学習処理部30と再学習部40と検出部50等と同様の処理を実行するプロセスを実行する。
【0082】
このように異常検出装置10は、プログラムを読み出して実行することで異常検出方法を実行する情報処理装置として動作する。また、異常検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、異常検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0083】
10 異常検出装置
11 通信部
12 記憶部
13 正常データDB
14 途中情報DB
15 学習結果DB
20 制御部
30 学習処理部
31 生成器学習部
32 識別器学習部
33 一時保存部
40 再学習部
50 検出部