オムライスの備忘録

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

【深層学習】Wasserstein GAN / W GAN #アルゴリズム編 #00

Index

Wasserstein GAN / W GAN

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

学習の安定のための工夫.

真のデータ分布の推定の話

Introduction の話.

内容が脇道にそれるので、別記事に.

分布間の類似度

分布間の類似度を測定する手法を紹介.

  • Total Variation (TV) Distance
  • Kullback Leibler (KL) Divergence
  • Jensen Shannon (JS) Divergence
  • Earth Mover Distance / Wasserstein-1

この論文の意義

  • Generator の学習の収束と生成画像の品質に相関する意味のある損失関数の設定
  • 改善された最適化プロセスによる学習の安定性

損失関数

従来の GAN の目的関数

従来の GAN は目的関数  V を Generator と Discriminator がそれぞれ最適化 (最小化 / 最大化) しようとしていた.

目的関数


\begin{align}
V(D, G)\ =&\ E_{\ x \sim p_{data}(x)}\ [\ \log(D(x))\ ] \\
+&\ E_{\ z\ \sim\ p_{z}(z)}\ [\ \log(\ 1 - D(\ G(z)\ )\ )\ ]
\end{align}

 \displaystyle \min_{G} \max_{D} V(D, G)

Binary Cross Entropy Loss

これは、Binary Cross Entropy Loss として考えれる.

 L\ =\ - \displaystyle \frac{1}{n} \displaystyle \sum_{i=1}^{n} \left(\ y_{i}\ \log(p_{i})\ +\ (1 - y_{i})\ \log(1 - p_{i})\ \right)


  •  n : 本物のデータのバッチサンプルと偽物の生成したデータの総数
  •  y_{i} : Index  i のデータの本物 / 偽物 ラベル
    • 本物 :  y_{i}\ =\ 1
    • 偽物 :  y_{i}\ =\ 0
  •  p_{i} : Index  i のデータを入力したときの Discriminator の予測確率



入力のデータが、「本物の場合」と「偽物の場合」の 2 つ場合で分けられる.

 l\ =\ y_{i}\ \log(p_{i})\ +\ (1 - y_{i})\ \log(1 - p_{i}) \\
\ \ = \left\{
\begin{array}{ll}
\log(p_{i}) & y_{i}=1 \\
\log(1 - p_{i}) & y_{i} = 0
\end{array}
\right.

Discriminator の損失の最小化

 \displaystyle \min_{D}\ -\ \left(\ E_{\ x \sim p_{data}(x)}\ [\ \log(D(x))\ ] + \ E_{\ z\ \sim\ p_{z}(z)}\ [\ \log(\ 1 - D(\ G(z)\ )\ )\ ]\ \right)

Generator の損失の最小化

 \displaystyle \min_{G}\ -\ \left(\ E_{\ z\ \sim\ p_{z}(z)}\ [\ \log(\ D(\ G(z)\ )\ )\ ]\ \right)

Wasserstein Loss

 
\displaystyle \min_{D}\ -\ \left(\ E_{\ x \sim p_{data}(x)}\ [\ D(x)\ ] - \ E_{\ z\ \sim\ p_{z}(z)}\ [\ D(\ G(z)\ )\ ]\ \right) \\
\displaystyle \min_{G}\ -\ \left(\ E_{\ z\ \sim\ p_{z}(z)}\ [\ D(\ G(z)\ )\ ]\ \right)

本物 / 偽物ラベル

 y_i のラベルを、 1 0 でなく、 1 -1 をラベルとして使う.

出力の範囲

Discriminator の最終層から sigmoid 活性化関数を削除して、予測  p_{i}
 [0, 1] の範囲ではなく、 [- \infty, \infty ] の範囲にする.

そのため、Discriminator は、W GAN では、Critic / 評価器と呼ばれる

Discriminator

 \displaystyle \min_{D}\ -\ \left(\ E_{\ x \sim p_{data}(x)}\ [\ D(x)\ ] - \ E_{\ z\ \sim\ p_{z}(z)}\ [\ D(\ G(z)\ )\ ]\ \right)

Generator

 \displaystyle \min_{G}\ -\ \left(\ E_{\ z\ \sim\ p_{z}(z)}\ [\ D(\ G(z)\ )\ ]\ \right)

Lipschitz 制約

Cric (評価器) / Discriminator が、1-Lipschitz 連続関数になるような制約.

 \displaystyle \frac{|D(x_{1}) - D(x_{2})|}{|x_{1} - x_{2}|} \leq 1

Weight Clipping

参考

書籍

Web サイト

  • 今さら聞けないGAN(4) WGAN

  • Wasserstein GANの要約とメモ