LOST IN BLUE

2019/03/12

VAEの損失関数

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

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

logpθ(x)=log[pθ(x,z)dz]=log[qϕ(zx)pθ(x,z)qϕ(zx)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ϕ(zx)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)dxf(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ϕ(zx)pθ(x,z)qϕ(zx)dz]qϕ(zx)log(pθ(x,z)qϕ(zx))dz=Eqϕ(zx)[logqϕ(zx)+logpθ(x,z)]=KL(qϕ(zx)pθ(z))+Eqϕ(zx)[logpθ(xz)]\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}

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

logpθ(x)qϕ(zx)log(pθ(x,z)qϕ(zx))dz=qϕ(zx)logpθ(x)dzqϕ(zx)log(pθ(x,z)qϕ(zx))dz=qϕ(zx)logpθ(x)qϕ(zx)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θ(zx)pθ(x)p_{\theta}(x, z) = p_{\theta}(z|x) p_{\theta}(x) より,

qϕ(zx)logpθ(x)qϕ(zx)pθ(x,z)dz=qϕ(zx)logpθ(x)qϕ(zx)pθ(zx)pθ(x)dz=qϕ(zx)logqϕ(zx)pθ(zx)dz=KL(qϕ(zx)pθ(zx))\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θ(zx)p_{\theta}(z|x) と事後分布の近似 qϕ(zx)q_{\phi}(z|x) のKL-divergenceを小さくすることができる.

以上より,

logpθ(x)=KL(qϕ(zx)pθ(zx))KL(qϕ(zx)pθ(z))+Eqϕ(zx)[logpθ(xz)]\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ϕ(zx)pθ(z))+Eqϕ(zx)[logpθ(xz)]- 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ϕ(zx)pθ(z))Eqϕ(zx)[logpθ(xz)]\mathcal{L} = KL(q_{\phi}(z|x)||p_{\theta} (z)) - E_{q_\phi(z|x)} [\log p_{\theta}(x|z)]

を得ることができる.

たぶんあってる.