この記事の読者
「Conditional GAN」の基本的な内容について知りたい.
この記事では、Conditional GANの基礎概念のまとめる.
キーワード・知ってると理解がしやすい
- GAN
- GAN
GAN
- GAN まとめ編
Index
Conditional GAN とは
深層学習を用いた生成アルゴリズム GAN の応用手法.
従来の GAN の枠組みに、条件付き確率の概念を導入した手法.
- 条件付き確率
Architecture
従来のGANと同様、Generator と Discriminator の2つで構成されている.
改善点としては、Generator と Discriminator の入力の情報としてラベル情報 が追加される点.
Generator
従来の GAN 同様、ランダムなベクトル (潜在変数) を利用する.
改善点として、クラスの情報 も Generator に加える.
- 入力1 : (ランダムなノイズ) ベクトル
- 入力2 : ラベル情報
- 出力 : 生成されたデータ
クラス情報の連結
(ランダムなノイズ) ベクトル と ラベル情報 の連結の方法の1つとしては、
ラベル情報 をone-hotベクトルとして連結する方法がある.
- One-Hot Encoding
ベクトルが 次元、ラベルの種類が 種類だとすると、入力は 次元のベクトルになる.
Discriminator
Discriminator も Generator 同様、入力にラベル情報 を加える.
- 入力1 : データ (本物 or 偽物)
- 入力2 : ラベル情報
- 出力 : 本物である確率値
クラス情報の連結
入力データとラベル情報の連結の方法の1つとしては、
ラベル情報 をone-hot ベクトルとして、入力データと連結する方法がある.
例えば、入力が画像だとする.
画像のサイズが (256 x 256 x 3) で、ラベルの種類が10種類だとすると
(256 x 256 x 10) のテンサーを用意して、対応するラベルの行列の値を1、その他の行列を0に設定する.
その後、画像と連結することで (256 x 256 x 13) のテンサーを入力とする方法などが考えられる.
損失関数
従来の GAN の損失関数の枠組みに、条件付き確率を導入する.
画像の例
mnist の画像を例として考える.
従来のGANのでは、以下のように作用.
- Generator は、(ランダムノイズ)ベクトル から0 ~ 9のどれかの画像を生成
- Discriminator は、mnist の画像かどうかを判別
対して、Conditional GAN では、以下のように作用.
- Generator は、(ランダムノイズ)ベクトルとラベル情報から、ラベルに対応する画像を生成
- Discriminator は、ラベル情報をもとに、mnist の画像かどうかを判別
まとめ
参考
- Conditional Generative Adversarial Nets
- [2014]
- Abstract
- 3 Conditional Adversarial Nets
- 3.2 Conditional Adversarial Nets
- arxiv.org
Web サイト
今さら聞けないGAN(6) Conditional GANの実装
CGAN (Conditional GAN):条件付き敵対的生成ネットワーク