GANZOOとかって形でGANまとまっているけど、GANの名前を見せられても困るでしょってのが正直なところ。初めてGANを見る人はどういうことができるのかで見たいのだと思う.
https://github.com/hindupuravinash/the-gan-zoo
ので、何ができるのかベースでGANを以下に列挙していく.
GANは確かに多すぎるので、適宜更新してGANを追加していきます.
にしてもGANの増え方は凄まじいですよね… 以下画像は上記アドレスより引用.
間違っているかもしれないので、鵜呑みにはせずどういった技術かは改めて確認してください.
あと,分類はアカデミックなものでなく直感的にわかりやすい形で分類していますので、悪しからず.
ぼんやりとお探しのGANが決まっている方にそれを絞り込むThothnatorを作りました↓
どうぞ使ってみてください!
ベースのシンプルなGAN
GAN
概要
適当なベクトルから学習した画像を生成. GeneratorとDiscriminatorの二つのネットワークを勝負させて学習.Generatorは画像を生成するネットワーク、Discriminatorは画像が生成されたものか本物の画像かを判定するネットワーク.
ノイズを入力としてGeneratorにて画像を生成し、本物の画像と混ぜながらDiscriminatorに本物かGeneratorで生成したものかを判定させる.
ネットワーク構造
このときには全結合層ですべてのネットワークが組まれている.
結果
論文
https://arxiv.org/abs/1406.2661
画像を変換するGAN
一対一に対応してそうな画像間を変換するGAN
pix2pix
概要
画像の対応のペアを入力としてそれがペアとして正しいかどうかを判定することで、汎用的な画像の変換を行う GANを作成. 通常のGANはベクトルを入力に一枚の画像を判定していたのに対して、pix2pixでは画像を入力に(条件に)出力画像を得て、入力画像と出力画像のペアを本物かどうか判定しているのが特徴.画像を条件に画像を生成しているため、ConditionalGANの一種.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1611.07004
参考
pix2pixHD
概要
2048×1024の高解像な画像を生成することができるGAN. Generatorでは以下のように二段構造になっていて、1024×512を生成するGeneratorとそれを囲むようにしてさらに解像度を2倍にするGeneratorを用意しています.Residual Blockも挿入されていますね. Discriminatorも複数のスケールを用意し、さらにFeatureMatchingを行うなど学習の工夫も含めて実現しています.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1711.11585
参考
画像のドメインを変換するGAN
CycleGAN
概要
二つの例えばりんごの画像とオレンジの画像を変換するように学習したGAN.特徴的なのは学習時に対応する画像が必要なく、あくまでりんごの画像群とオレンジの画像群があればよい.りんごと同じ姿勢の似たような対応の取れているオレンジの画像が必要ではないということ.
ネットワークがぐるぐる回った形になっており、オレンジ画像からりんご画像を生成して、そのりんご画像を再度オレンジ画像に戻したときの精度が高くなるように学習させる.そのため評価関数もそれらを考慮するように変更している.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1703.10593
StarGAN
概要
CycleGANの複数対応版. 複数のドメイン間を学習するようにAとBのCycleGAN, BとCのCycleGANとやっていると果てしない.そのため、このGANでは一つのGANで複数のGAN間を行き来できるような学習を行っている.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1711.09020
画像を生成するGAN
シンプルに画像を生成するGAN
DCGAN
概要
ネットワーク全体をCNNにしているGAN.他GANの学習を安定させるための手法についてもまとめている.(今はもう行わない、参考にならないものもあるかもだが). 与えられたベクトルから画像を生成できるようになり、学習後はそのベクトルの値を徐々に変えていくことで画像も次第に変わっていくのを確認できる.
ネットワーク構造
(GANと大きくは変わらず)
結果
論文
https://arxiv.org/abs/1511.06434
PGGAN(Progressive Growing of GANs)
概要
GANの学習において段階的に高解像度の学習がするように学習の過程を工夫することで1024×1024という今までからの結果からは想像できない高解像度な画像を生成.
他様々な学習の工夫が論文には記されている.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1710.10196
参考
指定した種類の画像を生成するGAN
ACGAN
概要
Discriminatorに真偽を判定させるだけでなく、クラスも当てるように訓練させてクラスを指定して画像生成することで、今までのDCGANより綺麗な画像生成を実現している.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1610.09585
SAGAN
概要
Spectrum Normalizationを使用し、またSelf Attentionの機構も導入することで指定したクラスの画像生成で今まで最も高画質な生成を実現.局所的な情報だけでなくSelf Attentionで大域的な視野もネットワークが持つようになった.論文ではImageNetの画像で訓練した場合の結果を示している.学習の過程でGeneratorとDiscriminatorで別の学習率を加える等その他工夫に関しても言及.
ネットワーク構造
ネットワーク構造というよりAttention機構の構造
結果
論文
https://arxiv.org/abs/1805.08318
参考
自分で特徴や種類を調整できるGAN(もちろん上と同様にクラスもできる)
ConditionalGAN
概要
生成して欲しい画像のラベルも入力に与えることで指定した画像を生成できる.条件付き画像生成.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1411.1784
InfoGAN
概要
相互情報量を評価関数に導入することで、可能な限り画像の何らかの特徴と意味の取れた関係を持つように学習する.Gの入力にCがありDの出力にも同様のCがあるため、DはCが何かを当てられなくてはならない.zはDCGANの時と同様に通常のノイズでよい.特にCのパラメータにこちらで意味を与えることはしないが、例えばMNISTなら回転に対応したものや線の太さに対応したものが自ずと学習される.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1606.03657
テキストから画像を生成するGAN
StackGAN
概要
pix2pixHDでもありましたが、StackGANも二段のGANで構成されています.一つ目は文章から画像を生成するネットワーク、二つ目は一つ目で大方書かれた画像を高精度にするGANです.かなり高精度に文章から画像を生成できていそうです.
ネットワーク構造
結果
論文
https://arxiv.org/abs/1612.03242
その他のGAN
画像の異常検出を試みるGAN
AnoGAN
概要
GANを学習させることでサンプルデータからの生成モデルを生成することができる.そのとき本物の正常入力画像が与えられたら、それを生成するGeneratorの入力z*がたぶん存在するはず.でももし近しいと見つけたz*を使ってG(z*)したものと入力画像を比較して差があったら異常、そうでなければ正常として異常検出をしている.
ネットワーク構造
DCGANと同様
結果
赤い部分が異常として出ている.
論文
https://arxiv.org/abs/1703.05921
学習の方法を工夫する提案のGAN
WGAN
概要
GANの損失関数を設計し直して、JSダイバージェンスを使っていたところをWasserstein距離に変更することで、学習を高速化及び安定させることができた重要な論文. 大元のGANの作者も注目していてここでいろいろと議論していました. Discriminatorは通常のGANでは本物か偽物かの確率を出力していましたが、WGANではWasserstein距離を計算できるように学習していきます.
このサイトは英語ですが、丁寧にGANの問題点とWGANによる解決等がまとまっています.
ネットワーク構造
通常のGANと特に変わりません.
結果
GANはベッドルームがよく出てきますが、LSUN bedroomsのデータセットを用いているためです.
論文
https://arxiv.org/abs/1701.07875
WGAN-gp
概要
WGANでのクリッピングの問題等を解決するために、評価関数にペナルティ項を加えることで、よりよいWGANの学習を提案した.
ネットワーク構造
通常のGANと変わりません.
結果
論文
https://arxiv.org/abs/1704.00028
SNGAN
概要
Spectrum Normalizationの正則化を損失関数に加えてより学習の精度あげたGAN.上記の導入によって学習が安定する.計算を高速に行う方法に関しても提案.(そこまでGANに特化した話題でもない?)
ネットワーク構造
—-
結果
論文
https://arxiv.org/abs/1802.05957
まだ上記に含められていないGAN
- LAPGAN : 多段にしたGANで高解像度な画像を生成(比較的古い論文 )
- 3DGAN : 画像ではなく3次元のボクセルを生成 (http://3dgan.csail.mit.edu/)
- DRAGAN : WGAN-gpをより表現力を高めるように改良 したGAN(https://arxiv.org/abs/1705.07215)
- CartoonGAN: アニメ調に特化させているGAN
いずれまとめます.
お世話になります。GANがガンガン出てきていますが馬が走ったり、中国人男性女性が話す動画がありますよね。あれはCycleGANが適用していると思いますが2019年5月現在では動画に対する適用事例としてはどのGAN手法が適していると思われますか?