(57)【要約】【課題】敵対的生成ネットワークにおけるモード崩壊を軽減するための技術を提供することである。【解決手段】本開示の一態様は、プロセッサにより実行されるステップからなる学習方法であって、敵対的生成ネットワークに従って生成器と識別器とを学習するステップを有し、前記学習するステップは、前記生成器がサンプルしうる領域における、前記生成器の損失関数を凹化するように、前記識別器のパラメータを更新するステップを含む学習方法に関する。【選択図】図６
2022003423.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより実行されるステップからなる学習方法であって、
敵対的生成ネットワークに従って生成器と識別器とを学習するステップを有し、
前記学習するステップは、前記生成器がサンプルしうる領域における、前記生成器の損失関数を凹化するように、前記識別器のパラメータを更新するステップを含む学習方法。
【請求項２】
前記更新するステップは、前記損失関数の表面上の２点間の線分上の点の前記損失関数の値が前記２点の損失関数の各値の線形結合になるように、前記損失関数を凹化する、請求項１記載の学習方法。
【請求項３】
前記損失関数の凹化は、前記損失関数の勾配ベクトルを拡散させる、請求項１又は２記載の学習方法。
【請求項４】
前記学習するステップは、
前記生成器によって、乱数から画像を生成するステップと、
前記識別器によって、入力画像が前記生成された画像又は訓練画像の何れであるか判別するステップと、
判別結果に応じて前記生成器と前記識別器とのパラメータを更新するステップと、
所定の終了条件が充足されるまで前記生成するステップ、前記判別するステップ及び前記更新するステップを繰り返すステップと、
を含む、請求項１乃至３何れか一項記載の学習方法。
【請求項５】
前記生成器のパラメータは、前記識別器が前記生成された画像を前記訓練画像であると判別するように更新され、
前記識別器のパラメータは、前記識別器が前記入力画像を正しく判別するように更新される、請求項４記載の学習方法。
【請求項６】
前記生成器及び前記識別器は、ニューラルネットワークである、請求項１乃至５何れか一項記載の学習方法。
【請求項７】
メモリと、
前記メモリに結合されるプロセッサと、
を有し、
前記プロセッサは、
敵対的生成ネットワークに従って生成器と識別器とを学習し、
前記プロセッサは、前記生成器がサンプルしうる領域における、前記生成器の損失関数を凹化するように、前記識別器のパラメータを更新する学習装置。
【請求項８】
敵対的生成ネットワークに従って生成器と識別器とを学習する処理をプロセッサに実行させ、
前記学習する処理は、前記生成器がサンプルしうる領域における、前記生成器の損失関数を凹化するように、前記識別器のパラメータを更新する処理を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械学習に関する。
【背景技術】
【０００２】
敵対的生成ネットワーク（以下、GANs (Generative Adversarial Networks)と称する）は、画像生成及び動画生成の分野において驚くべき結果を残している一方、学習が困難であることが知られている。GANsの学習を困難にする現象としてモード崩壊（"mode collapse"）が知られている。
【０００３】
モード崩壊は、モデル分布から生成されるサンプルの多様性が小さくなってしまう現象である。例えば、手書き文字データセットMNISTにあるような手書き文字を生成する際、モデル分布は"0"〜"9"の10個のモードを有する分布になっていると考えられる。しかしながら、GANsの学習の結果として、モデル分布が特定の数字のみサンプルして失敗することがある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"Generative Adversarial Nets", Ian J. Goodfellow, et. al., In NIPS 2014.
【非特許文献２】"Conditional Generative Adversarial Nets", Mehdi Mirza, et. al., arXiv: 1411.1784, Nov. 6, 2014.
【非特許文献３】"Temporal Generative Adversarial Nets with Singular Value Clipping", Masaki Saito, et. al., arXiv: 1611.06624, Aug. 18, 2017.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
モード崩壊を回避する様々な手法が提案されている。例えば、spectral normalizationはGANsの学習不安定性を劇的に改善し、モード崩壊を大きく改善した。
【０００６】
しかしながら、spectral normalizationを用いた場合でも、生成されるサンプルの多様性を測る指標として用いられるinception score及びFID (Frechet Inspection Distance)は、学習に用いたデータのものを有意に下回っている。すなわち、GANsによって学習された生成器は依然として学習データが有する多様性を表現できていないことが分かる。
【０００７】
上述した問題点を鑑み、本開示の課題は、GANsにおけるモード崩壊を軽減するための技術を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本開示の一態様は、プロセッサにより実行されるステップからなる学習方法であって、敵対的生成ネットワークに従って生成器と識別器とを学習するステップを有し、前記学習するステップは、前記生成器がサンプルしうる領域における、前記生成器の損失関数を凹化するように、前記識別器のパラメータを更新するステップを含む学習方法に関する。
【発明の効果】
【０００９】
本開示によると、GANsにおけるモード崩壊を軽減するための技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】損失関数の表面上の凸部分への勾配ベクトル及び生成器の分布を示す概略図である。
【図２】本開示の一実施例による凸部分の凹化による勾配ベクトル及び生成器の分布を示す概略図である。
【図３】本開示の一実施例による学習システムを示す概略図である。
【図４】本開示の一実施例による学習装置のハードウェア構成を示すブロック図である。
【図５】本開示の一実施例によるGANsによる学習処理を示すフローチャートである。
【図６】本開示の一実施例による凸部分の凹化を示す概略図である。
【発明を実施するための形態】
【００１１】
以下の実施例では、GANsによる学習装置及び方法が開示される。
【００１２】
本開示による学習装置及び方法を概略すると、GANsにおける生成器がサンプルしうる領域における、生成器の損失関数を凹化（concavify）又は正則化（regularize）するように識別器のパラメータが更新される。
【００１３】
具体的には、図１に示されるように、生成器の負の損失関数-Lgの表面上で生成器がサンプルしうる領域には、凸な部分が発生する可能性があり、確率勾配法が学習処理に適用される場合、図１（ａ）に示されるように、生成器の損失関数の勾配ベクトルは当該凸領域に移動することなる。この結果、図１（ｂ）に示されるように、生成器の生成分布は凸領域に集中することになり、特定のデータのみが生成されるモード崩壊が発生する。
【００１４】
本開示の学習装置及び方法によると、このような凸領域を凹化又は正則化し、図２に示されるように、生成器の損失関数の表面をスムース化する。この結果、図２（ａ）に示されるように、生成器の損失関数の勾配ベクトルは拡散され、図２（ｂ）に示されるように、生成器の生成分布は拡散され、モード崩壊が軽減又は解消される。
【００１５】
以下の説明において、凹凸は数学的な定義に基づくものであり、具体的には、関数fが凸であるとは、区間内の任意の異なる2点x, yと開区間(0, 1)内の任意のtに対して、
f(tx + (1-t)y) ≦ tf(x) + (1-t)f(y)
を満たすと定義される。また、-fが凸関数のとき、fを凹関数と呼ぶ。凸関数を「下に凸な関数」、凹関数を「上に凸な関数」と称することもある。
【００１６】
まず、図３及び４を参照して、本開示の一実施例によるGANsによる学習装置を説明する。図３は、本開示の一実施例による学習システムを示す概略図である。
【００１７】
図３に示されるように、本開示の一実施例による学習システム１０は、データベース（DB）５０及び学習装置１００を有する。
【００１８】
DB５０は、学習装置１００により利用される訓練データを格納する。具体的には、DB５０は、学習装置１００における生成器による生成対象であると共に、識別器による判別対象であるデータを格納する。例えば、学習装置１００により学習される生成モデルの性能をシミュレートする場合、DB５０には、MNIST, CIFAR-10, CIFAR-100などのシミュレーション用の画像データセットが格納されてもよい。
【００１９】
学習装置１００は、GANsにおける生成器及び識別器と呼ばれる２つのニューラルネットワークを有する。本開示による生成器及び識別器には、任意のニューラルネットワークが適用されてもよい。生成器及び識別器のニューラルネットワークは、学習処理の開始時には何れか適切な初期状態に設定され、学習処理が進捗するに従って、生成器及び識別器の各ニューラルネットワークの各種パラメータが、例えば、以下で詳細に説明されるように順次更新される。
【００２０】
一実施例のGANsによる学習処理では、まず乱数などの入力データzが生成器に入力され、生成器によって出力データが生成される。次に、生成器によって生成された出力データ又はDB５０における訓練データが入力データxとして識別器に入力され、識別器によって入力データxが生成器による出力データ又はDB５０からの訓練データの何れであるかを示す判別結果が出力される。例えば、生成器による出力データである場合には0が出力され、DB５０からの訓練データである場合には1が出力される。当該判別結果に応じて、識別器が正しい判別結果を出力するように、例えば、確率勾配法に基づくバックプロパゲーションに従って識別器のニューラルネットワークのパラメータが更新される。また、生成器の出力データが識別器によって訓練データと判別されるように、例えば、確率勾配法に基づくバックプロパゲーションに従って生成器のニューラルネットワークのパラメータが更新される。
【００２１】
すなわち、GANsでは、
【００２２】
【数１】
2022003423.tif 000003
となるように学習処理が実行される。ここで、gは生成器であり、fは識別器であり、xは入力データであり、Lgは生成器の活性化関数であり、Lrは識別器の活性化関数である。V(g,f)はベースライン目的関数として参照されうる。
【００２３】
また、f,gをそれぞれφ,θによってパラメータ化すると、GANsによる学習処理では、
【００２４】
【数２】
2022003423.tif 000004
に従って生成器及び識別器のパラメータが更新されていく。ここで、zは乱数又はノイズであり、αは学習率である。
【００２５】
また、上記の生成器のパラメータθの更新式の第２項について、
【００２６】
【数３】
2022003423.tif 000005
により書き換え可能である。ターゲット分布
【００２７】
【数４】
2022003423.tif 000006
と共に（ただし、全ての可測集合Aに対して、
【００２８】
【数５】
2022003423.tif 000007
である）、輸送関数を
【００２９】
【数６】
2022003423.tif 000008
として定義する。ここで、
【００３０】
【数７】
2022003423.tif 000009
はシード変数zに依存する分布である。このとき、
【００３１】
【数８】
2022003423.tif 000010
となる。
【００３２】
このことは、
【００３３】
【数９】
2022003423.tif 000011
とg(z)とのL2距離の平方が減少するようにgが更新され続けることを意味し、すなわち、生成器の更新は、
【００３４】
【数１０】
2022003423.tif 000012
を
【００３５】
【数１１】
2022003423.tif 000013
に向かって移動させることを意味する。すなわち、上述したGANsによる学習処理は、関数勾配の観点から以下のように記述できる。
【００３６】
【数１２】
2022003423.tif 000014
本開示によると、上述したfの目的関数（critic's objective）が、
【００３７】
【数１３】
2022003423.tif 000015
により置き換えられ、当該目的関数により識別器のパラメータが更新される。ここで、V(g,f)は上述したベースライン目的関数であり、εは0から1の範囲内の値であり、αは定数である。また、Lregは、生成器の分布から２点x1, x2を独立にサンプリングし、x1, x2の間の生成器の損失関数Lgの表面における凹凸を
【００３８】
【数１４】
2022003423.tif 000016
に従って評価することによって決定される。すなわち、上述したfの目的関数は、生成器の負の損失関数の表面上で生成器がサンプルしうる領域において当該損失関数を凹化するように、識別器のパラメータに正則化を加える。
【００３９】
所定の終了条件が充足されるまで、上述した生成器及び識別器のパラメータが更新され続け、所定の終了条件が充足されると、最終的な生成器が学習済み生成モデルとして取得される。しかしながら、本開示による学習処理は、これに限定されず、他の何れか適切なGANsに基づく学習処理が適用されてもよい。
【００４０】
ここで、学習装置１００は、例えば、図４に示されるように、CPU (Central Processing unit)、GPU (Graphics Processing Unit)などのプロセッサ１０１、RAM (Random Access Memory)、フラッシュメモリなどのメモリ１０２、ハードディスク１０３及び入出力(I/O)インタフェース１０４によるハードウェア構成を有してもよい。
【００４１】
プロセッサ１０１は、学習装置１００の各種処理を実行し、上述したGANsによる生成器及び識別器に対する学習処理、生成器及び識別器の実行、生成器、識別器及びDB５０の間のデータの入出力を含む、学習装置１００の全体制御などの各種処理を実行する。
【００４２】
メモリ１０２は、学習装置１００における各種データ及びプログラムを格納し、特に作業用データ、実行中のプログラムなどのためのワーキングメモリとして機能する。具体的には、メモリ１０２は、ハードディスク１０３からロードされた生成器及び識別器における学習処理を実行及び制御するためのプログラムを格納し、プロセッサ１０１によるプログラムの実行中にワーキングメモリとして機能する。
【００４３】
ハードディスク１０３は、学習装置１００における各種データ及びプログラムを格納し、生成器及び識別器における処理を実行及び制御するための各種データ及び／又はプログラムを格納する。
【００４４】
I/Oインタフェース１０４は、DB５０などの外部装置との間でデータを入出力するためのインタフェースであり、例えば、USB (Universal Serial Bus)、通信回線、キーボード、マウス、ディスプレイなどのデータを入出力するためのデバイスである。
【００４５】
しかしながら、本開示による学習装置１００は、上述したハードウェア構成に限定されず、他の何れか適切なハードウェア構成を有してもよい。例えば、上述した学習装置１００による学習処理は、これを実現するよう配線化された処理回路又は電子回路により実現されてもよい。
【００４６】
次に、図５及び６を参照して、本開示の一実施例によるGANsによる画像生成モデルの学習処理を説明する。図５は、本開示の一実施例によるGANsによる学習処理を示すフローチャートである。
【００４７】
図５に示されるように、ステップＳ１０１において、プロセッサ１０１は、乱数を生成器に入力する。プロセッサ１０１は、何れか適切な擬似乱数発生ルーチンを実行することによって、あるいは、学習装置１００に搭載された乱数発生器を利用することによって乱数を生成し、生成した乱数を生成器に入力してもよい。
【００４８】
ステップＳ１０２において、プロセッサ１０１は、入力された乱数から生成器によって生成された画像を取得する。例えば、生成器は、何れか適切な構造を有するニューラルネットワークであってもよい。
【００４９】
ステップＳ１０３において、プロセッサ１０１は、生成器によって生成された画像又はDB５０に格納されている訓練画像を識別器に入力する。
【００５０】
ステップＳ１０４において、プロセッサ１０１は、入力画像が生成器の出力画像であるか、あるいは、訓練画像であるか識別器に判別させる。例えば、識別器は、何れか適切な構造を有するニューラルネットワークであってもよい。
【００５１】
ステップＳ１０５において、プロセッサ１０１は、識別器による判別結果に応じて識別器及び生成器のパラメータを更新する。すなわち、プロセッサ１０１は、識別器が入力画像を正しく判別するように、確率勾配法に基づくバックプロパゲーションに従って識別器のパラメータを更新し、識別器が生成器によって生成された画像を訓練画像であると判別するように、確率勾配法に基づくバックプロパゲーションに従って生成器のパラメータを更新する。
【００５２】
具体的には、プロセッサ１０１は、生成器がサンプルしうる領域における、生成器の損失関数を凹化又は正則化するように、識別器のパラメータを更新する。例えば、プロセッサ１０１は、上述したように、識別器の目的関数が
【００５３】
【数１５】
2022003423.tif 000017
となるように、生成器がサンプルしうる領域において損失関数を凹化又は正則化してもよい。すなわち、プロセッサ１０１は、図６に示されるように、生成器の損失関数の表面上の２点間の線分上の点の当該損失関数の値が２点の損失関数の各値の線形結合になるように、損失関数を凹化又は正則化してもよい。例えば、図６（ａ）に示されるように、生成器の損失関数の表面上に凸領域がある場合、すなわち、
【００５４】
【数１６】
2022003423.tif 000018
が正値である場合、プロセッサ１０１は、
【００５５】
【数１７】
2022003423.tif 000019
に従って生成器がサンプルしうる領域において損失関数を凹化し、図６（ｂ）に示されるように、損失関数の表面がスムース化されるように正則化を加えながら識別器のパラメータを更新する。
【００５６】
上述したように、このような凸領域は、図１（ａ）に示されるように、生成器の損失関数の勾配ベクトルを凸領域に向かって誘導させ、この結果、図１（ｂ）に示されるように、モード崩壊を発生させる。一方、本開示によると、生成器がサンプルしうる領域において損失関数を凹化することによって、図２（ａ）に示されるように、生成器の損失関数の勾配ベクトルが拡散され、図２（ｂ）に示されるように、生成器の生成モデルにおける分布が拡散され、モード崩壊の発生を回避できる。
【００５７】
その後、プロセッサ１０１は、上述したステップＳ１０１〜Ｓ１０５を繰り返し、所定の終了条件が充足されると、当該学習処理を終了する。例えば、所定の終了条件は、所定の回数の繰り返しを終了したこと、生成器及び／又は識別器の精度が所定の閾値を超えたこと、生成器及び／又は識別器の精度が収束したことなどであってもよい。
【００５８】
なお、上述した実施例では、画像データに対して生成器及び識別器が学習されたが、本開示による学習処理は、これに限定されず、動画データ、音響データなどの他の任意のタイプのデータにも適用可能である。
【００５９】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６０】
５０  データベース（DB）
１００  学習装置
【図１】
2022003423.tif 000020
【図２】
2022003423.tif 000021
【図３】
2022003423.tif 000022
【図４】
2022003423.tif 000023
【図５】
2022003423.tif 000024
【図６】
2022003423.tif 000025