オムライスの備忘録

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

【深層学習】Conditional GAN

  • こんな方におすすめ

深層学習・ディープラーニングの手法として使われている「Conditional GAN」の基本的な内容について知りたい。



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

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



  • キーワード・知ってると理解がしやすい
    • GAN

目次

Conditional GAN とは

2014年にarXivで公開された論文
条件付きGANという意味合いで、GANアーキテクチャの応用です。
元論文は「Conditional Generative Adversarial Nets

GANについての記事はこちらです。

yhayato1320.hatenablog.com

構成要素

オリジナルのGANと同様、Generator と Discriminator の2つで構成されています。
大きな違いとしては、入力の情報としてラベル情報も含まれるという点です。
以下、ネットワークアークティックです。

アーキテクチャ

Generator

  • 入力1 : ノイズ
  • 入力2 : ラベル情報
  • 出力 : 画像


ノイズベクトルとラベル情報の連結の方法の1つとしては、
ラベル情報をone-hotベクトルとして連結する方法があります。

ノイズベクトルが100次元、ラベルの種類が10種類だとすると、入力は110次元のベクトルになります。

Discriminator

  • 入力1 : 画像 (本物画像 or 偽物画像)
  • 入力2 : ラベル情報
  • 本物である確率値


画像とラベル情報の連結の方法の1つとしては、
ラベル情報を画像サイズのone-hot ベクトル形式として連結する方法です。

画像のサイズが(256 x 256 x 3)で、ラベルの種類が10種類だとすると
(256 x 256 x 10)のテンサーを用意して、対応するラベルの行列の値を1、その他の行列を0に設定します。
その後、画像と連結することで(256 x 256 x 13)のテンサーを入力とする方法です。

mnist の画像を例として考えます。

オリジナルのGANのでは、以下のように作用。

  • Generator は、ノイズから0 ~ 9のどれかの画像を生成
  • Discriminator は、mnistの画像かどうかを判別



対して、Conditional GAN では、以下のように作用。

  • Generator は、ノイズとラベル情報からラベルに対応する画像を生成
  • Discriminator は、ラベル情報をもとにmnistの画像かどうかを判別

まとめ

参考

qiita.com blog.negativemind.com

f:id:yhayato1320:20210327223009j:plain