paper_readings
paper_readings copied to clipboard
Progressive Growing of GANs for Improved Quality, Stability, and Variation
低解像度から徐々に育てていくアイディアで高解像度なGANを達成
論文本体・著者
- http://research.nvidia.com/publication/2017-10_Progressive-Growing-of
- https://arxiv.org/abs/1710.10196
- ICLR 2018 under review
- Tero Karras, Timo Aila, Samuli Laine, Jaakko Lehtinen
- NVIDIA
- ラストオーサーはAalto Universityの准教授
解きたい問題
- 高解像度なGAN
新規性
- 低解像度から徐々に学習すると言うアイディア、そのための学習方法
- その他既存のテクニックを改良したGANの学習手法複数
実装
メインのテクニック
![]() |
---|
論文 Fig. 1 より |
- 低解像度から徐々に学習する
- 何epochか毎に増やす
![]() |
---|
論文 Fig. 2 より |
- 増やす時に、前のステップの結果と混合させる!
その他のテクニック
-
INCREASING VARIATION USING MINIBATCH STANDARD DEVIATION
- featureの分散をrealとfakeで近づけたい
- ミニバッチ内で計算された分散をconcatすることで、discriminatorが手がかりとできるようにする。
- https://github.com/pfnet-research/chainer-gan-lib/blob/master/progressive/net.py#L55
- featureの分散をrealとfakeで近づけたい
-
NORMALIZATION IN GENERATOR AND DISCRIMINATOR
- GANにおいてはBNまで使う必要はない。
- [Pixelwise normalization] ただし、全ピクセルについて分散を計算して正規化はする
- https://github.com/pfnet-research/chainer-gan-lib/blob/2b2dd086c8c831ebf8f345bd2b4d184f0819821e/progressive/net.py#L14
- あれ、結局backwardしない以外にBNと何が違うんだっけ。。
- [Equalized learning rate]
- convolutionの出力に、チャンネル数とカーネルサイズを固定でかける
- そうすると、backward時に、各パラメタが均等に更新されるっぽい(チャンネル数が多いとパラメタがちょっとずつしか更新されないのを防げる)
- 通常は、random / ksize / ksize / channel で 初期化 する。それは、そのスケールに収束させるから。でも、それだと、更新量がしょぼくなるので、そのスケール項はforward時に固定で掛けるようにするってこと。
- convolutionの出力に、チャンネル数とカーネルサイズを固定でかける
実験・議論
![]() |
---|
- Sliced Wasserstein distanceで性能比較してる!
- progressive growingとequalized learning rateがかなり役に立ってる感じ
読んだ中での不明点などの感想
関連論文
- Tim Salimans, Ian J. Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, and Xi Chen. Improved techniques for training GANs. In NIPS, 2016.
- ミニバッチdiscriminationのアイディア