この記事の読者
深層学習・ディープラーニングが用いられている
「CycleGAN」の基本的な内容について知りたい.
この記事では、CycleGANの基礎概念のまとめる.
- キーワード・知ってると理解がしやすい
- GAN
- ResNet / U-Net
- FCN (Fully Convolutional Network)
- Patch GAN
Index
Cycle GAN とは
深層学習を用いた生成アルゴリズム GAN の応用手法.
画像のスタイル変換の手法.
- GAN を用いたスタイル変換 #まとめ編
構成要素
Cycle GAN は、通常のGAN 同様 Generator と Discriminator の2つで構成されてます。
しかし、通常のGAN と異なる点は、Generator と Discriminator が 2つずつあることです。
それぞれのネットワークのアーキテクチャにおけるポイントを記していきます。
Generator
- 入力 : 画像 (どちらかのドメインの画像)
- 出力 : 画像 (変換後の画像)
- アーキテクチャ
- 元論文では、ResNet ですが参考にした書籍では U-Net も1つの手法として挙げられてました
- 役割
Discriminator
- 入力 : 画像 (あるドメインの画像 or あるドメインに変換された画像)
- 出力 : 画像 (16 x 16 x 1 の画像、各ピクセルにはどれだけそのドメインであるかを推定した値が含まれている)
- アーキテクチャ
- FCN (Fully Convolutional Network) : 画像をダウンサンプリングしていく
- 最終的な出力は、画像のように行列で、値は各場における本物である確率(Patch GAN と呼ばれている Discriminator の工夫)
Normalization
Cycle GAN の Normalizationには、Batch Normalization ではなく、Instance Normalization を採用している
Loss
最適化するためのロスは6つ (3 種類 x 2パターン)
Discriminator / Generator
- Discriminator の識別に対するロス (= adversarial loss)
Generator
- 入力画像 (A) と 再変換した画像 (A -> B -> A) の差分
- 入力画像 (A) と 同スタイルに変換した画像 (A -> A) の差分
この3種類のロスに対して、加重平均をとった値を全体的なロスとします。
まとめ
この記事では、以下の点をまとめました。
- Cycle GANの基本的な構成
- ネットワークアーキテクチャの工夫
- Generator : ResNet (or U-Net)
- Discriminator : Patch GAN
- Normalization : Instance Normalization
参考
- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
- [2017]
- arxiv.org
書籍
- 生成 Deep Learning / オライリー
- 5 描く