PGGAN

概要

高解像度な顔画像の生成を達成したProgressive Growing of GANに関して紹介します.これまで256x256ほどのサイズだった画像生成を1024x1024の高解像度でかつ精度よく行えていることが特徴です.
Facebookシェア Twitterツイート LINEで送る このエントリーをはてなブックマークに追加
この章を学ぶ前に必要な知識
0
条件
  • 隠れ変数を入力、顔を生成
  • ベースはもちろんGAN
効果
  • 1024x1024の高解像度な生成モデルを学習
  • 学習したデータの一部のみを使って表現してしまい学習しても表現の幅が狭いのをminibatch discriminationで解消
ポイント
  • はじめは4x4ほどの画像を生成するが、次第に生成する解像度を上げていく
  • 解像度をあげるときは、GeneratorもDescriminatorも同様に解像度をあげる
  • どのパラメータも訓練中は常に可変の状態で固定化しない
  • Batch Normalization層は不要

解 説

論文は右にリンクしておきます. 気になる方はご参照ください.
PGGANはProgressive Growing of GANsの略称. この論文では ・高解像な画像生成を行うこと   段階的に学習する解像度を上げて、タスクを簡単に学習が安定するようにした ・画像生成する表現の幅が狭いのを解消 minibatch discriminationを適用し、またそれをノンパラになるように改良 がポイントになります. 他様々な工夫のポイントが論文に乗っています.
PGGANとは
PGGANの学習の様子
これまでGANは小さい画像(ex. 256x256)でしか安定して画像を生成できませんでした. ところが今回、これを解像度4x4, 8x8 ..... 1024x1024と徐々に解像度が高くなるように層を追加しながら学習したことで学習を安定させて高解像度な画像を生成することを可能にしています. いきなり高解像度で学習を試みるとDiscriminatorの方が有利になりがちでGeneratorが不利なため学習が進みにくいのですが、 4x4から始めた場合はどちらも安定して学習しやすくなります. また、もう一つ工夫があります. 今まで4x4だったネットワークで突然層を追加して8x8になるとネットワークに急激な変化が入ってしまうため、学習が進みにくそうです. そこで、いきなり8x8の層を加えるのではなく、 4x4を素直に8x8に拡大したものと8x8の層のネットワークをブレンディングしていく方法を採用しています.それを徐々に8x8の層のみにしていくことで安定させながら学習させています.
学習を安定させた方法
徐々に慣らしていき新しい層に完全に置き換える.
GANの生成する表現の幅は学習するデータより小さくなりがちだった問題を解消するためにminibatch discriminationを採用. Discriminatorの最終層にminibatch層を追加して、ミニバッチの統計量を参考にしながら学習をする. また筆者らはこのminibatch discriminationからパラメータを除去する形を提案している.
表現の幅を広くする工夫
この章を学んで新たに学べる
Comments

Reasons
>>隠す