オムライスの備忘録

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

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

Index

Wasserstein GAN / W GAN

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

教師なし学習において、データを理解するには、どうすれば良いか.

それは、データの裏に存在する真の確率分布  P_r を特定することである.



そのために、我々は、パラメトリックファミリー(xx分布) / 擬似的な確率密度関数  P_\theta を定義する.

そして、観測されたデータから最尤法を用いて、母数 (パラメータ)  \theta を推定することで、
 P_r にもっとも似たよう (近似された)  P_\theta を取得する.



ちなみに、この方法は、最尤法で、尤度を最大化するような母数 (パラメータ)  \theta を推定しているが、
結局は、 P_r P_\theta との確率分布間の距離を表す Kullback Leibler Divergence  KL (P_r | P_\theta) を最小化することと同義である.



  • KL Divergence

このような、確率分布を仮定するような、パラメトリックな方法では、まず、 P_\theta を考えなければない.

しかし、単純な確率分布では、実際のデータを表現することができない.



対応策の一つとしては、モデルの確率分布  P_\theta にノイズを加えること.

ガウス分布からノイズを生成する.



しかし、画像の生成などでは、それが生成された画像に影響されてしまう.

データを理解するために利用したノイズが、生成では邪魔になってしまう.



そこで、真のデータ分布  P_r を推定することをやめる.

代わりに固定の確率分布  p(z) から、確率変数  z \ \sim\ p(z) (潜在変数) を考える.

それを、関数  g_\theta : Z\ \rightarrow\ X で、データ  x\ \sim\ P_\theta に変換する.

この関数は、ニューラルネットを想定.

つまり、データ  x で想定している確率分布  P_\theta を表現する.

そして、ニューラルネットのパラメータ  \theta を変更することで、確率分布  P_\theta P_r に近づける.



この手法には、2 つの利点がある.

1 つは、低次元多様体に限定された分布を表すことができる.

つまり、自由に (柔軟に) 分布を表現できる.

2 つは、確率密度関数を理解する手順よりも、有効である

潜在変数としての、表現学習としての利用も可能である.



モデル分布と真の分布がどれだけ近いかを測定する方法を考える. (分布の類似度)

KL divergence など.

 \rho (P_\theta, P_r)



通常の距離と分布間の距離との大きな違いは、確率分布の 候補 (シーケンス) の収束への影響があること.

確率分布のシーケンス  (P_t)_{t \in N}

確率分布  P_t = {P_1,\ \cdots,\ P_N}


類似度  \rho が、どの程度、正確に定義されているかによるが、
 \rho (P_t, P_{\infty}) = 0 となる  P_\infty が存在する場合のみ収束する.

参考

Web サイト

  • Wasserstein GANの要約とメモ