Cycle GAN Unpaired Image to Image Translation
前回の記事で解説したPix2PixGANの発展形
Pix2PixGANではある画像Xとある画像Yがセットとなっており、XからYへの変換を学ぶためのGANであった。
しかしこのようにある画像Xに直接対応する画像Yが存在するデータ群を揃えることは難しい。
そこで考案されたのがCycleGANである。
ある種類の画像xのデータの集合をドメインXと呼ぶ(ガッキーの写真の集合はガッキードメイン)
またある画像yのデータの集合をドメインYと呼ぶ(女性の写真の集合は女性ドメイン)
このドメインXからドメインYへの写像、変換を行うのがCycleGANである。
つまり、ガッキーと同じポーズをしている女性の画像がなくても、変換を学ぶということである。
このためにまず元来のGANのように、ターゲットとなるデータの集合と分布が同じようになるようにGeneratorを学習させ、
さらにGeneratorが作った画像を元の画像に直すものを学習させ、データが矛盾しないようにする。
具体的にどのようなことを行なっているか??
XとYというのは対となる画像でーたセットではないが、XドメインとYドメインの間の関係を学習させようという試み。
個々のinput xがうまくYドメインのy dataのように変換されるためにcycle consistantという考えを用いている。
イメージとしては
英語の文章をフランス語に翻訳するというときに、翻訳されたフランス語を再度英語に翻訳し直し、その英語が元の文章の意味を保っているか??という工夫である。
Generatorについて
Discriminatorについて
損失関数について
実装について
参考
元の論文
[1703.10593] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks