LOST IN BLUE

2019/03/12

VAEの損失関数

解析的に求められない事後分布 pθ(z∣x)p_{\theta}(z|x) の良い近似となる q(z∣x)q(z|x) を求める.

対数周辺尤度 log⁡pθ(x)\log p_{\theta}(x) を変形していく.

log⁡pθ(x)=log⁡[∫pθ(x,z)dz]=log⁡[∫qϕ(z∣x)pθ(x,z)qϕ(z∣x)dz]\begin{alignedat}{2} \log p_{\theta}(x) &= \log [\int p_{\theta}(x, z) dz] \\ &= \log [\int q_{\phi}(z|x) \frac{p_{\theta}(x, z)}{q_{\phi}(z|x)} dz] \\ \end{alignedat}

ここで, ∫qϕ(z∣x)dz=1\int q_{\phi}(z|x)dz = 1 が成立.

∫g(x)dx=1\int g(x) dx = 1 となる凸関数 g(x)g(x) で成り立つイエンセンの不等式

∫−∞∞f(y(x))g(x)dx≥f(∫−∞∞y(x)g(x)dx)\int_{-\infty}^{\infty} f(y(x))g(x)dx \geq f(\int_{-\infty}^{\infty} y(x)g(x) dx)

を用いて,

log⁡[∫qϕ(z∣x)pθ(x,z)qϕ(z∣x)dz]≥∫qϕ(z∣x)log⁡(pθ(x,z)qϕ(z∣x))dz=Eqϕ(z∣x)[−log⁡qϕ(z∣x)+log⁡pθ(x,z)]=−KL(qϕ(z∣x)∣∣pθ(z))+Eqϕ(z∣x)[log⁡pθ(x∣z)]\begin{alignedat}{3} \log [\int q_{\phi}(z|x) \frac{p_{\theta}(x, z)}{q_{\phi}(z|x)} dz] &\geq \int q_{\phi}(z|x) \log (\frac{p_{\theta}(x, z)}{q_{\phi}(z|x)}) dz \\ &= E_{q_{\phi}(z|x)} [- \log q_{\phi}(z|x) + \log p_{\theta} (x, z)] \\ &= - KL(q_{\phi}(z|x)||p_{\theta} (z)) + E_{q_\phi(z|x)} [\log p_{\theta}(x|z)] \end{alignedat}

不等式の左辺と右辺の差は

log⁡pθ(x)−∫qϕ(z∣x)log⁡(pθ(x,z)qϕ(z∣x))dz=∫qϕ(z∣x)log⁡pθ(x)dz−∫qϕ(z∣x)log⁡(pθ(x,z)qϕ(z∣x))dz=∫qϕ(z∣x)log⁡pθ(x)qϕ(z∣x)pθ(x,z)dz\begin{alignedat}{2} \log p_{\theta}(x) - \int q_{\phi}(z|x) \log(\frac{p_{\theta}(x, z)}{q_{\phi}(z|x)}) dz &= \int q_{\phi}(z|x) \log p_{\theta}(x) dz - \int q_{\phi}(z|x) \log(\frac{p_{\theta}(x, z)}{q_{\phi}(z|x)}) dz \\ &= \int q_{\phi}(z|x) \log \frac{p_{\theta}(x) q_{\phi}(z|x)}{p_{\theta}(x, z)} dz \end{alignedat}

ベイズの定理 pθ(x,z)=pθ(z∣x)pθ(x)p_{\theta}(x, z) = p_{\theta}(z|x) p_{\theta}(x) より,

∫qϕ(z∣x)log⁡pθ(x)qϕ(z∣x)pθ(x,z)dz=∫qϕ(z∣x)log⁡pθ(x)qϕ(z∣x)pθ(z∣x)pθ(x)dz=∫qϕ(z∣x)log⁡qϕ(z∣x)pθ(z∣x)dz=KL(qϕ(z∣x)∣∣pθ(z∣x))\begin{alignedat}{3} \int q_{\phi}(z|x) \log \frac{p_{\theta}(x) q_{\phi}(z|x)}{p_{\theta}(x, z)} dz &= \int q_{\phi}(z|x) \log \frac{p_{\theta}(x) q_{\phi}(z|x)}{p_{\theta}(z|x) p_{\theta}(x)} dz \\ &= \int q_{\phi}(z|x) \log \frac{q_{\phi} (z|x)}{p_{\theta}(z|x)} dz \\ &= KL(q_{\phi}(z|x) || p_{\theta}(z|x)) \end{alignedat}

となる.

よって,不等辺の右辺が大きくなれば,事後分布 pθ(z∣x)p_{\theta}(z|x) と事後分布の近似 qϕ(z∣x)q_{\phi}(z|x) のKL-divergenceを小さくすることができる.

以上より,

log⁡pθ(x)=KL(qϕ(z∣x)∣∣pθ(z∣x))−KL(qϕ(z∣x)∣∣pθ(z))+Eqϕ(z∣x)[log⁡pθ(x∣z)]\log p_{\theta}(x) = KL(q_{\phi}(z|x) || p_{\theta}(z|x)) - KL(q_{\phi}(z|x)||p_{\theta} (z)) + E_{q_\phi(z|x)} [\log p_{\theta}(x|z)]

であるので

−KL(qϕ(z∣x)∣∣pθ(z))+Eqϕ(z∣x)[log⁡pθ(x∣z)]- KL(q_{\phi}(z|x)||p_{\theta} (z)) + E_{q_\phi(z|x)} [\log p_{\theta}(x|z)]

を最大化するよう学習させる. pθp_{\theta}がDecoder, qϕq_{\phi}がEncoderである.

符号を反転することによってVAEの損失関数である

L=KL(qϕ(z∣x)∣∣pθ(z))−Eqϕ(z∣x)[log⁡pθ(x∣z)]\mathcal{L} = KL(q_{\phi}(z|x)||p_{\theta} (z)) - E_{q_\phi(z|x)} [\log p_{\theta}(x|z)]

を得ることができる.

たぶんあってる.