オムライスの備忘録

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

【スタイル変換】CycleGAN

  • こんな方におすすめ

深層学習・ディープラーニングでも必要な「CycleGAN」の基本的な内容について知りたい。



この記事では、CycleGANの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるCycleGANの理解を深めたい」という方に向けた記事になります。



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

目次

CycleGAN とは

GAN については別の記事にてまとめてます。

yhayato1320.hatenablog.com

構成要素

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

参考

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

  • 作者:David Foster
  • 発売日: 2020/10/05
  • メディア: 単行本(ソフトカバー)