オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Cycle GAN

この記事の読者

深層学習・ディープラーニングが用いられている
「CycleGAN」の基本的な内容について知りたい.



この記事では、CycleGANの基礎概念のまとめる.

  • キーワード・知ってると理解がしやすい
    • GAN
    • ResNet / U-Net
    • FCN (Fully Convolutional Network)
    • Patch GAN

Index

Cycle GAN とは

深層学習を用いた生成アルゴリズム GAN の応用手法.

画像のスタイル変換の手法.

構成要素

Cycle GAN は、通常のGAN 同様 Generator と Discriminator の2つで構成されてます。
しかし、通常のGAN と異なる点は、Generator と Discriminator が 2つずつあることです。






  • Discriminator :


それぞれのネットワークのアーキテクチャにおけるポイントを記していきます。

Generator

  • 入力 : 画像 (どちらかのドメインの画像)
  • 出力 : 画像 (変換後の画像)
  • アーキテクチャ
    • 元論文では、ResNet ですが参考にした書籍では U-Net も1つの手法として挙げられてました
  • 役割

Discriminator

  • 入力 : 画像 (あるドメインの画像 or あるドメインに変換された画像)
  • 出力 : 画像 (16 x 16 x 1 の画像、各ピクセルにはどれだけそのドメインであるかを推定した値が含まれている)
  • アーキテクチャ
    • FCN (Fully Convolutional Network) : 画像をダウンサンプリングしていく
    • 最終的な出力は、画像のように行列で、値は各場における本物である確率(Patch GAN と呼ばれている Discriminator の工夫)

yhayato1320.hatenablog.com

Normalization

Cycle GAN の Normalizationには、Batch Normalization ではなく、Instance Normalization を採用している



Loss

最適化するためのロスは6つ (3 種類 x 2パターン)

  • Discriminator / Generator

    1. Discriminator の識別に対するロス (= adversarial loss)
  • Generator

    1. 入力画像 (A) と 再変換した画像 (A -> B -> A) の差分
    2. 入力画像 (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

書籍