VAE関連

Variational Auto Encoderについてきちんと理解したくなった。

 

en.wikipedia.org

まず、こちらのELBOの記事を読む。

ELBOとは、XとZが確率変数だとして、結合分布があるとする。

例えば、 p_{\theta} (X)

条件付き確率や p_{\theta} (Z|X)を考える。

 

分布 q_{\phi}に対してELBOを考えることができる。

 L(\phi, \theta ; x) = \text{ln} p_{\theta} (x) - D_{KL} (q_{\phi} (z|x) ||p_{\theta } (z|x))

データxが与えられたときに、データxが生成される確率の対数から、qとpのKullback-Leibler divergenceを引いたものとして定義される。

 

どういう気持ちかと言うと、観測変数について、それが従う分布を見つけたい。

そうすることで、自由にデータを生成できるから。

 

しかし、それは大変なので、近似的に得たい。

そこで、 \{ p_{\theta} \}_{\theta \in \Theta}なるパラメータ付き分布族の中で探すことにする。

 

そこで、 L(p_{\theta }, p^{*}) - L(p_{\theta + \delta \theta}, p^{*}) = 0 となるような変分問題を考えたら、その解が欲しい分布になっている、という考え方だ。

 

en.wikipedia.org

上のことを踏まえると(VAEのVの意味を考えると)

AEは、データの自己符号化を行なって、その後で、解読している。(Autoが自分、Encoderは符号化)

 

その際に、データを生成するための分布をどうやって推定しているかと言うと、

 p_{\theta}(z |x)と、 q_{\phi} (z|x)を近づけたい。

その時に、ELBOの最大化問題が出てくる。

 

そして、指数型分布族を仮定することで、

Gaussians同士のKL divergenceを考える問題に落ち着く。