IntroVAE: Introspective Variational Autoencoders for Photographic Image Synthesis
はじめに
IntroVAE: Introspective Variational Autoencoders for Photographic Image Synthesisを読んだのでメモ.
stackGANやPGGANと違ってVAEのEncoderをGANのdiscriminatorとして扱うことでシンプルながらも高解像度の画像を生成することに成功した.
IntroVAE
さっくりと中身を紹介.
基本的にはVAEなので以下のELBOを最小化することを考える.
ここにGANの考えを取り入れる.具体的にはVAEのdecoderによって生成された画像をとするとこのを入力とした事後分布はを最大化するように学習される.すなわちVAEのencoderにdiscriminatorの役割をさせるというもの.
上記の考えを取り入れた目的関数を考えると以下のようなものが考えられる.
ここでを表し,は正の値を持つハイパーパラメータ.triplet lossなど距離学習に使われる目的関数と似通った形になっている.この目的関数を用いてencoder とdecoder(generator) の間でmin-max gameを解く.つまりencoderは真の画像に対しては推定された分布のパラメータがpriorである標準ガウス分布に近くなるように,decoder(generator)により作られた画像に対しては標準ガウスから遠くなるように学習する.逆にdecoder(generator)は作った画像の分布をencoderに推定させた時,標準ガウス分布に近くなるように学習する.
オリジナルのGANの論文のnotationを使って整理すると,encoder はを最小化,decoder はを最小化するように学習される.
上記の目的関数をELBOと組み合わせることで最終的なintroVAEの目的関数は以下のように記述される.
学習の細かいパラメータ
VAEの事前分布としてはユニットガウスを使い,reconstruction errorはMSEを使ったとのこと.さらにの第2項目との第1項目に重みパラメータをかけてロスのバランスをとったとのこと.実験の設定ではは0.5では0.0025から0.5のレンジで実験している.またモデルの構造はPGGANとほぼ同様だがresidual blockを導入している.
まとめ
顔の生成は綺麗だがLSUNのBEDROOMの生成結果はPGGANのが綺麗かなあ.ただ学習の安定性がその他の手法に比べれば格段に良さそう.