論文読み:Improved Techniques for Training GANs (2016, 605sited)
Improved Techniques for Training GANs (2016, 605sited)
概要
openAIが出した論文で、Inception Scoreなど、
Deep Learningを学習する上でのテクニックをまとめた論文
以下、抜粋しつつ翻訳(編集中)
1. Introduction
近年のGANは優れた実験例を生み出している。
しかし、GANを学習させるには、多数のパラメータからなる非凸関数上の、ナッシュ均衡点を見つけ無くてはならない。
GANの学習にはGDなどの手法が取られているが、うまく学習できずに発散してしまうこともある。
この研究では、GANの学習が収束するような複数のテクニックを紹介する
これらのテクニックは非凸関数の問題の経験的な理解から発案された。
これらのテクニックは、半教師学習のパフォーマンスと、サンプルの生成の向上につながる。
本研究のすべてのコードは以下のサイトに掲載されている。
https://github.com/openai/improved-gan
2. Related work
本研究の目的の一つは、GANの半教師あり学習の有効性を改善することである。
(教師あり学習のタスクを、ラベルのない追加データを学習することで、改善すること)
▼紹介されている主な研究
GANの安定性と質向上の論文: [2,3,5,6]
feature matching: [7,8,9], [10,11]
virtual batch normalization: 先行研究batch normalization[12]
半教師あり学習 の先行研究: [13,14]
拡張したGANで画像にラベリングを行った例: [15]
3. Toward Convergent GAN Training
GANの学習は、2者の非協力ゲームnナッシュ均衡を見つけることから成り立っている。
2者ともそれぞれのコスト関数を最小化しようとしている。しかしながら、ナッシュ均衡を見つけることは非常に難しい。特定のケースに特化したアルゴリズムは存在するが、非凸関数でパラメータが連続で、かつ、パラメータ空間が非常に高次元な任意のGANでも可能という状態ではない。
Generatorのコスト関数を小さくするような修正は、Descriminatorのコスト関数を大きくすることもあり、その逆もまた然りである。Gradient Descentはこのように多くのゲームで収束しないことになる。これから紹介するテクニックは、収束するように経験則から導かれたものである。
3.1 Feature matching
Feature matching は 現在のDiscriminatorにoverfittingしないような目的を指定することで GANの安定性を追求するものである。直接Discriminatorのoutputを最大化するのでなく、Generatorは実データの統計に合うようなデータを生み出すような目的を設定し、Descriminatorは、ただ単に実データと合っていると考えられるような統計量と合致しているかを特定するのみである。具体的には、Discriminatorの中間層の特徴の期待される値に合致するように、Generatorを学習させる。これはGeneratorに合致させる統計量として自然である。というのも、Discriminatorを学習させることによって、実データと現在のモデルによって生成されたデータをもっとも識別できるDiscriminatorの特徴量を見つけ出そうとしているからである。
f(x)をDiscriminatorの中間層の出力とし、Generatorの目的を次のように定義する。
Discriminatorは通常の方法で学習を行う。通常のGANの学習では、目的として、学習データの分布に厳密に合うような、固定された点をもつ。実際にはそのような固定された1点に達する保証は無いが、実験的な結果から、通常のGANが不安定になるようなシチュエーションに於いて、feature matchingは実に効果的である。
3.2 Minibatch discrimination
GANのよくある失敗例として、Generatorがどのような入力を与えても同じ出力を発してしまうように崩壊してしまうことである。1つの出力に対して崩壊することは起こりそうなことであり、DiscriminatorのGradientは似たようなポイントでは、似たような方向にありそうなためである。
4. Assessment of image quality
GANには目的関数が欠けている。このことは、モデル間でのパフォーマンスの比較を難しくしている。直感的なパフォーマンスの測り方が、人の評価者にサンプルのクオリティを判断してもらうことで得ることができる。[2] 我々はこの手順をAmazon Mechanical Turkで自動化した。我々は、評価者に生成されたデータか、実データかを評価させた。
評価者を利用することの欠点は、評価基準が評価者のタスクとモチベーションによってかわるということである。我々はさらに評価者に間違いについてフィードバックをしたときに結果が劇的に変わることを発見した。
つまり、フィードバックから学習することによって、より生成された画像の欠点を指摘することができるようになり、評価者はより悲観的な評価をするようになる。
▼Amazon Mechanical Turkでの作業内容
人間の評価者の代替として、我々はサンプルを自動的に評価する方法を提案する。それは、人間の評価とよく召喚する方法である.
Inception model[20]をそれぞれの生成された画像に適用し、条件付きラベル分布p(y|x)を得る。画像が意味のあるオブジェクトを持っているのであれば、条件付きラベル分布p(y|x)は低いエントロピーとなっているはずである。さらに、我々は、モデルにたくさんの画像を作ることを期待している。
つまり、以下の値は高いエントロピーとなっているべきである。
この2つの要求を組み合わせて、我々が提案する評価指標(Inception Score)は以下の値である。
指数関数に入れることで、結果を比較しやすくしている。
Inception score はCatGAN[14]の生成モデルの学習に使われている目的関数と高い関連がある。我々は、Inception Scoreのような目的関数は学習にはあまりうまく行かなかったが、それが人間の判断とよく相関している良い評価指標であることを発見した。重要な点としては、Inception Scoreを使って多様性を評価するためには、50kなどの十分に大きなサンプル数を評価し無くてはならない。