ココアのお勉強ブログ

技術職の一般人です。趣味でコード書いたりソフト触ったり。

Augmented CycleGAN: Learning Many-to-Many Mappings from Unpaired Data

Augmented CycleGAN: Learning Many-to-Many Mappings from Unpaired Dataのメモです。超適当です。

どんなもの?

従来CycleGANはある画像を与えたら決まった画像が出力される。
(例えば以下の図のようにhorse→zebraの変換を行った時、1枚のhorseの画像からは決まったzebraの画像が出てくる。縞模様が多少変化して出力されるとかは起きたりしない)

本論文ではタイトルにもあるようにCycleGANに多数対多数の変換を学習させることに成功したというものである。

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

以下はエッジ→靴の変換の結果だが、様々な色の靴の画像が生成されていて、従来の一対一の変換ではなく多様な画像の生成ができている。

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

多様な画像を生成するなら、単純にCycleGANにノイズを加えればいいじゃ~んというノリでやると

Cycle-consistency lossが邪魔をしてうまくいかない時がある。

Augmented CycleGANでは潜在変数を用いる。  (a,z_b) (b,z_a) のペアのマッピングを学習させる(潜在変数の推論を行う)。

Let Z be a latent space with a standard Gaussian prior p(z) over its elements.

 (a,z_b) (\tilde{b},\tilde{z}_a)マッピングを行い、
以下の損失関数(論文ではMarginal Matching Lossと呼んでいる)に入れる

さらに以下のようにマッピングを行い

以下の Cycle-consistency lossに入れる。

逆の変換も同様に行う。

最終的には以下の損失関数を最適化することになる。

\gamma_1\gamma_2 はハイパーパラメーター

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

議論はある?

次に読むべき論文は?

参考

http://proceedings.mlr.press/v80/almahairi18a/almahairi18a.pdf Augmented CycleGAN: Learning Many-to-Many Mappings from Unpaired Data on Vimeo

その他

著者実装(pytorch)がある。
https://github.com/aalmah/augmented_cyclegan