Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved Techniques for Training GANs #25

Open
Gin5050 opened this issue May 17, 2019 · 0 comments
Open

Improved Techniques for Training GANs #25

Gin5050 opened this issue May 17, 2019 · 0 comments
Labels
2016 Submitted on 2016 GAN GAN's paper

Comments

@Gin5050
Copy link
Owner

Gin5050 commented May 17, 2019

0. 論文

[Improved Techniques for Training GANs](https://arxiv.org/pdf/1606.03498

著者
Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, Xi Chen

1. どんなもの?

  • GANの訓練の不安定さを解消するテクニックが紹介されている。
  • しかし、これらのテクニックはヒューリスティックなもの

2. 先行研究と比べてどこがすごい?

  • GANの安定した有効な訓練方法を提示したこと。
  • 評価指標となるISスコアを提案したこと

3. 技術や手法のキモはどこ?

  • 不安定さを解消する5つのテクニック
  1. Feature matching
    識別器のOvertrainingを防ぐために、新しい目的関数を生成器に指定することによって,GANの不安定さに対処するもの。
    新しい目的関数では、識別器の出力を直接最大化するのではなく、生成器に実データの統計情報に一致するデータを生成するように訓練する。ここでは、識別機は識別に使用する価値があると判断する統計情報のみを指定します。
    具体的には、識別器の中間層上の特徴の期待値と一致するように生成器をトレーニングを行う。識別器は実際のデータと生成されたデータを識別できるような特徴を見つけるように学習していくので、生成器を学習する際にその識別するための特徴を用いるのは考えられなくもない。

  2. Minibatch discrimination
    モード崩壊を解消する手法。モード崩壊を起こすときは識別器の勾配が似たような方向を指す。
    これは、識別機の学習がそれぞれ独立に行われるためだ。生成器に対してもっと多様性のあるものを生成しろと伝える機構がない。
    これを解決するためには識別器に様々なサンプルをミニバッチ内でみれるようにすればよい。
    ミニバッチの中では異なる入力が与えられるのだから出力も異なることを保証するような制約を設けるのが minibatch discrimination で、ミニバッチごとの G の出力における多様性を D にヒントとして入力を与える. G はこれを騙すには多様な出力をする必要がある.
    (参考:http://cympfh.cc/paper/improved-GAN.html)

ここでも識別器の中間層の出力を使う

Screenshot from 2019-05-18 16-26-57
)

  1. Historical averaging

  2. One-side label smppthing
    正解ラベルを1、0とするのではなく、0.9、0.1のようにしたほうがいい

  3. Virtual batch normalizaton
    出力はミニバッチ内の他の入力に強く依存する。
    そこで、全ての入力xで、自身の最初の統計情報を用いて正規化する。
    ただし、この手法は計算が重くなる

4. どうやって有効だと検証した?

  • Amazon Mechanical Tulkで生成されたものか否かアノテーションした
  • Inspection Scoreを導入し、それで評価した

5. 議論はある?

けっこうわからないところがある。BNとVBNの違いなど。
あと、ぱっと調べた感じこれらで劇的によくなったという例がみつからない

6. 次に読むべき論文は?

DCGAN

@Gin5050 Gin5050 added GAN GAN's paper 2016 Submitted on 2016 labels May 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2016 Submitted on 2016 GAN GAN's paper
Projects
None yet
Development

No branches or pull requests

1 participant