论文原文:Auto-Encoding Variational Bayes
这是一篇极其拗口的文章,但是文章从变分推断一路延伸到自编码器的构造,过程一气呵成,和当下DL领域的灌水之风形成鲜明对比,是难得的佳作。为了能够从理论到实现融会贯通地理解,本篇笔记会更加偏向于思路解读而非原文复述。
VAE是一个生成模型,对于生成模型,我们希望求得的都是原始数据分布 p(x) p ( x ) 。但是我们有的只是离散的对真实分布的采样 {x1,x2,x3,...,xn} { x 1 , x 2 , x 3 , . . . , x n } ,这就是我们的数据集。这时候我们常常会先假设分布的类型(e.g. 高斯分布,均匀分布),然后用最大似然(ML)来做,计算参数 θ=argmaxθ∑ilogp(xi) θ = arg max θ ∑ i log p ( x i ) ,从而求得 pθ(x) p θ ( x ) 。但是 p(x) p ( x ) 可能是一个很复杂的难以表达的分布,难以选择合适的假设分布来计算最大似然。
于是假设除了可见变量 x x ,还存在着潜变量 z z ,且 z z 满足某个简单的分布 p(z) p ( z ) 。那么原始数据分布可以按照后验概率公式分解成 p(x)=∫p(x|z)p(z)dz p ( x ) = ∫ p ( x | z ) p ( z ) d z ,但是在离散数据情况下边缘化 z z 是非常费时的,于是我们想到了变分推断。
logpθ(xi) log p θ ( x i ) 有下界 L(θ,ϕ;xi) L ( θ , ϕ ; x i ) , 这个下界可以进一步拆分:
这里非常重要,为了提升下界,等价于减小第一项的KL散度,增加第二项的期望。那么第一项可以看做是对 qϕ(z|xi) q ϕ ( z | x i ) 的正则项,使其更加接近于先验分布 pθ(z) p θ ( z ) ;第二项可以看做是负重构误差项,当 z z 满足 q q 分布时, logpθ(xi|z) log p θ ( x i | z ) 越来越接近 logpθ(xi) log p θ ( x i ) (输出越来越接近输入)。因为别忘了 L(θ,ϕ;xi) L ( θ , ϕ ; x i ) 就是 logpθ(xi) log p θ ( x i ) 的下界啊,前面KL散度趋近于0,下界就只有后一项了,又要接近于原来的 logpθ(xi) log p θ ( x i ) ,所以可以认为要求 logpθ(xi|z) log p θ ( x i | z ) 越来越接近 logpθ(xi) log p θ ( x i ) 。
提到重构误差有没有想起啥?就是auto-encoder!如果对原始的自编码器中间的潜变量 z z 加上上文的正则化约束,就建立了理论到模型的桥梁!既然这么相似,那么我们确认一个目标,就是要用AE来完成下界 L(θ,ϕ;xi) L ( θ , ϕ ; x i ) 的提升。
其实到目前为止理论和模型的桥梁并没有完全打通,因为AE作为神经网络靠随机梯度下降可以做到最优化某个函数。且AE对于一个确定的输入 xi x i ,只会有一个确定的 z z 的分布(即分布参数是确定的)产生,而上面这个下界 L(θ,ϕ;xi) L ( θ , ϕ ; x i ) 里第二项还有对 z z 采样的部分。这里文章提出了一个神奇的trick——重参数化(reparameterization)。
在重参数化之前,回顾一下初衷,即得到 p(x) p ( x ) 。但 p(x) p ( x ) 分布可能太复杂,希望有一个简单的潜变量分布 p(z) p ( z ) ,通过迂回的方式学到 p(x) p ( x ) 。那么我们就假设这个简单的潜变量分布的先验是个标准正态分布 z∼N(0,1) z ∼ N ( 0 , 1 ) 。同时中间的正则化项不是要让 qϕ(z|xi) q ϕ ( z | x i ) 逼近先验 pθ(z) p θ ( z ) 嘛,如果不是同一个分布簇的话怎么逼近(文章提到有相关证明,KL散度逼近0必定是同分布簇),所以假设分布 qϕ(z|xi) q ϕ ( z | x i ) 也是高斯分布,但是一开始他的参数 ϕ ϕ (包含期望和方差)并不是0和1,而是 μi μ i 和 σ2i σ i 2 。那么下界第一项的KL散度就可以简化成
在训练过程中,AE的decoder需要对 z∼pθ(z|xi)=N(μi,σ2i) z ∼ p θ ( z | x i ) = N ( μ i , σ i 2 ) 进行采样,这里文章对 z z 进行重参数化操作使得 z=gϕ(ϵ,x) z = g ϕ ( ϵ , x ) ,其中 ϵ∼N(0,1) ϵ ∼ N ( 0 , 1 ) , 于是对 z z 采样等价于对 μi+ϵσi∼N(μi,σ2i) μ i + ϵ σ i ∼ N ( μ i , σ i 2 ) ,两者的分布是完全相同的。 μi,σi μ i , σ i 对每个 xi x i 是确定的,引入的 ϵ ϵ 在AE的支路上,在BP时不会对encoder部分产生影响。
采样的问题解决了,相应的decoder部分化为
从变分推断理论到VAE网络模型的路径完全打通,完结撒花!
参考阅读:
[1]https://kexue.fm/archives/5253
[2]https://zhuanlan.zhihu.com/p/25401928