LoginSignup
1
2

More than 3 years have passed since last update.

CycleGAN

Posted at

pix2pixの欠点とCycleGANの登場

pix2pixの登場によって高精度なスタイル変換が可能となったが、pix2pixの学習データは変換前後のペアである必要があり、タスクによっては学習データをペアで準備することは難しいという現実があった。
image.png

その問題を解決したのがcycleGANである。生成器と識別器を二組用いることにより、学習データがペアでなくてもスタイル変換を可能にしたのである。

↓生成器と識別器が2つずつ!ループしている!
スクリーンショット 2020-06-24 8.57.56.png
↓スタイル変換の学習に対して、pix2pixだと左のような変換前後のペアが必要だったが、CycleGANでは右のようにペアである必要がなくなった!

スクリーンショット 2020-06-24 9.21.47.png

具体的なCycleGANの仕組み

スクリーンショット 2020-06-24 8.57.56.png
発想としては、

F(G(x))≒x
G(F(y))≒y

と表される、循環による一貫性を満たすような写像(生成器)

F,G

を考えてあげれば、二つの写像が互いに逆写像でかつ全単射となる。これはつまり、二つのドメイン内の要素

x∈X, y∈Y

がお互いに意味のある対(スタイル変換)になっていることを示している。
じゃあこのような二つの写像(生成器)をどうやって学習するのか?

様々な損失

二つの写像を学習するために、3つの損失関数を導入する。

・サイクル一貫性損失
・敵対性損失
・同一性損失

1.サイクル性損失

スクリーンショット 2020-06-24 9.28.04.png

CyclsGANの特徴的な損失関数。

F(G(x))≒x
G(F(y))≒y

この関係を満たすような、

F,G

になるように学習する。
そのためには、
スクリーンショット 2020-06-24 9.32.05.png
上式の通り、

変換前のデータx, Gで変換後にFで再構築したF(G(x))\\
変換前のデータy, Fで変換後にGで再構築したG(F(y))

の二組についてそれぞれL1ノルムを取る。

2.敵対性損失

スクリーンショット 2020-06-24 9.32.58.png
これは一般的なGAN(ex. DCGAN)などの損失関数と同じ。

(G, Dy,X, Y)

と同様に、

(F,Dx,X,Y)

についても考える。

3. 同一性損失

(ここでは紹介程度にとどめる。)
正規化のための項を導入して生成画像の色合いが元画像と一貫したものになるようにするもの。
画像に対する不要な変更にペナルティを課す。
具体的にシマウマ⇄ウマのスタイル変換で考える。
ウマ→シマウマの写像に、シマウマの画像を入れた時にシマウマをさらにシマウマにスタイル変換させるような不要な変換に対してペナルティを課す、ということである。
これにより、CycleGANが画像全体の色構造を保存できるようになる。
この損失関数がなくてもCyclaGANは動作する。

最終的な目的関数

スクリーンショット 2020-06-24 9.33.52.png

λは、敵対性損失とサイクル一貫性パラメータのバランスを決めるハイパーパラメータ。
論文中では、λ=10が使用されている。
最終的に、下式を考えることで生成器を学習する。
スクリーンショット 2020-06-25 12.53.02.png

CycleGANの成功例

apple⇄orange
スクリーンショット 2020-06-25 12.55.56.png
zebra⇄horse
スクリーンショット 2020-06-25 12.56.51.png
winter⇄summer
スクリーンショット 2020-06-25 12.57.37.png

CycleGANの失敗例

スクリーンショット 2020-06-25 12.59.03.png
cat⇄dogで失敗している:CycleGANは入力画像の小さな変更しかできない。
horse⇄zebraで失敗している:訓練画像に、人が乗っている画像がなかったからだと考えられる。

他の例も見たい方は、こちらのWebSiteへGO!!!

参考文献

https://arxiv.org/pdf/1703.10593.pdf
https://www.slideshare.net/yoheiokawa/cyclegan-88149870
https://qiita.com/hikaru-light/items/98d06b21b4f3e2bb6ca4

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2