变分自编码器(三):这样做为什么能成?
话说我觉得我自己最近写文章都喜欢长篇大论了,而且扎堆地来~之前连续写了三篇关于Capsule的介绍,这次轮到VAE了,本文是VAE的第二篇探索,说不准还会有第四篇~不管怎么样,数量不重要,重要的是能把问题都想清楚。尤其是对于VAE这种新奇的建模思维来说,更加值得细细地抠。这次我们要关心的一个问题是:VAE为什么能成?估计看VAE的读者都会经历这么几个阶段。第一个阶段是刚读了VAE的介绍,然后云里雾里的,感觉像自编码器又不像自编码器的,反复啃了几遍文字并看了源码之后才知道大概是怎么回事;第二个阶段就是在第一个阶段的基础上,再去细读VAE的原理,诸如隐变量模型、KL散度、变分推断等等,细细看下去,发现虽然折腾来折腾去,最终居然都能看明白了。这时候读者可能就进入第三个阶段了。在这个阶段中,我们会有诸多疑问,尤其是可行性的疑问:“为什么它这样反复折腾,最终出来模型是可行的?我也有很多想法呀,为什么我的想法就不行?”前文之要让我们再不厌其烦地回顾一下前面关于VAE的一些原理。VAE希望通过隐变量分解来描述数据XXX的分布p(x)=∫p(x∣z)p(z)dz,p(x,z)=p(x∣z)p(z)(1) p(x)=\int p(x|z)p(z)dz,\quad p(x,z)=p(x|z)p(z) \tag{1}p(x)=∫p(x∣z)p(z)dz,p(x,z)=p(x∣z)p(z)(1)然后对p(x∣z)p(x|z)p(x∣z)用模型q(x∣z)q(x|z)q(x∣z)拟合,p(z)p(z)p(z)用模型q(z)q(z)q(z)拟合,为了使得模型具有生成能力,q(z)q(z)q(z)定义为标准正态分布。理论上,我们可以使用边缘概率的最大似然来求解模型:q(x∣z)=argmaxq(x∣z)∫p~(x)ln⁡(∫q(x∣z)q(z)dz)dx=argmaxq(x∣z)Ex∼p~(x)[ln⁡(∫q(x∣z)q(z)dz)](2) \begin{aligned} q(x|z)=\mathop{\mathrm{argmax}}_{q(x|z)}\int \tilde p(x)\ln\left(\int q(x|z)q(z)dz\right)dx \\ =\mathop{\mathrm{argmax}}_{q(x|z)}\mathbb{E}_{x\sim\tilde p(x)}\left[\ln\left(\int q(x|z)q(z)dz\right)\right] \end{aligned} \tag{2}q(x∣z)​=argmaxq(x∣z)​∫p~​(x)ln(∫q(x∣z)q(z)dz)dx=argmaxq(x∣z)​Ex∼p~​(x)​[ln(∫q(x∣z)q(z)dz)]​(2)但是由于圆括号内的积分没法显式求出来,所以我们只好引入KL散度来观察联合分布的差距,最终目标函数变成了L=Ex∼p~(x)[−∫p(z∣x)ln⁡q(x∣z)dz+∫p(z∣x)ln⁡p(z∣x)q(z)dz]=Ex∼p~(x)[Ez∼p(z∣x)[−ln⁡q(x∣z)]+Ez∼p(z∣x)[ln⁡p(z∣x)q(z)]](3) \begin{aligned} \mathcal{L}=\mathbb{E}_{x\sim\tilde p(x)}\left[-\int p(z|x)\ln q(x|z)dz+\int p(z|x)\ln\frac{p(z|x)}{q(z)}dz\right] \\ =\mathbb{E}_{x\sim\tilde p(x)}\left[\mathbb{E}_{z\sim p(z|x)}[-\ln q(x|z)]+\mathbb{E}_{z\sim p(z|x)}\left[\ln\frac{p(z|x)}{q(z)}\right]\right] \end{aligned} \tag{3}L​=Ex∼p~​(x)​[−∫p(z∣x)lnq(x∣z)dz+∫p(z∣x)lnq(z)p(z∣x)​dz]=Ex∼p~​(x)​[Ez∼p(z∣x)​[−lnq(x∣z)]+Ez∼p(z∣x)​[lnq(z)p(z∣x)​]]​(3)通过最小化L\mathcal{L}L来分别找出p(z∣x)p(z|x)p(z∣x)和q(x∣z)q(x|z)q(x∣z)。前一文《变分自编码器(二):从贝叶斯观点出发》也表明L\mathcal{L}L有下界−Ex∼p~(x)[ln⁡p~(x)]-\mathbb{E}_{x\sim\tilde p(x)}[\ln\tilde p(x)]−Ex∼p~​(x)​[lnp~​(x)],所以比较L\mathcal{L}L与−Ex∼p~(x)[ln⁡p~(x)]-\mathbb{E}_{x\sim\tilde p(x)}[\ln\tilde p(x)]−Ex∼p~​(x)​[lnp~​(x)]的接近程度就可以比较生成器的相对质量。采样之惑在这部分内容中,我们试图对VAE的原理做细致的追问,以求能回答VAE为什么这样做,最关键的问题是,为什么这样做就可行。采样一个点就够对于(3)式,我们后面是这样处理的:1、留意到Ez∼p(z∣x)[ln⁡p(z∣x)q(z)]\mathbb{E}_{z\sim p(z|x)}\left[\ln\frac{p(z|x)}{q(z)}\right]Ez∼p(z∣x)​[lnq(z)p(z∣x)​]正好是p(z∣x)p(z|x)p(z∣x)和q(z)q(z)q(z)的散度KL(p(z∣x)∥q(z))KL\left(p(z|x)\|q(z)\right)K