本文地址:http://blog.csdn.net/qq_31456593/article/details/77743840
深度学习博客目录:http://blog.csdn.net/qq_31456593/article/details/69340697
introduce
这篇论文将变分贝叶斯和神经网络结合起来,用神经网络学习变分推导的参数,以得到后验推理p(z|x)的似然,并获得了一个效果不错的生成模型-变分自编码器。作者使用了重新参数化的变分下界,这样就可以通过随机梯度下界对模型进行优化。
method
如图z是一个隐变量,x是由z决定的一个客观事物,比如一类图片。z相当于决定x性质的内隐因素(神秘力量),那么给我们一组属于x的数据集(图片),想要得到z,我们就必须得到后验概率p(z|x)。因为这个后验概率不好求,作者使用一个神经网络作为后验推导q(z|x),来逼近p(z|x),当神经网络通过参数学习,使得q(z|x)接近于p(z|x)时,那么我们将通过神经网络获得接近于z的近似分布,即把隐变量z找了出来。
在数学上,KL散度可以求两个分布间的距离,KL越小,分布距离越近,即越相似。同时,KL距离是非负的。为了使q(z|x)与p(z|x)的KL距离最小,作者利用了变分下界的方法,如下面推导公式所示:
因为p(x)的对数是固定的,所以我们想要最小化q(z|x)与p(z|x)的KL距离,就是要最大化变分下界LVLV,而LVLV经推导可得
所以现在我们要做的是最小化第一项中q(z|x)和z的似然,最大化第二项中p(x|z)的对数似然。作者将是实现q(z|x)的神经网络叫做编码器,z一般符合高斯分布,所以最小化第一项就是让编码器尽量拟合出高斯分布,即最大化下面式子:
对于第二项,作者构建一个名为解码器的神经网络,用它对随机采样的z进行处理,最终生成x,并以最大化p(x|z)
由于随机采样的部分无法使用随机梯度下降,所以在这里作者使用了重新参数化的方法,让编码器只输出正太分布的均值和方差,用于一个高斯噪声通过输出的均值和方差来构造z
至此,两个我们要优化的目标都明确了,现在就可以开始训练网络。附上变分自编码器图(图中缺失了高斯噪音部分)
最终训练好的解码器便可以通过输入的高斯分布生成想要的图像了。
my view
1、利用神经网络拟合统计推导计算后验概率的思路可以学习。
2、是否可以认为变分自编码器就是同时学习,决定某个事物(图像)性质的特殊因素(个体因素)z和共同因素(类别因素)p(x|z),然后就可以通过类别因素p(x|z),也就是解码器,利用随机的高斯分布(随机的个体因素)生成同类别的图片。
参考文献:
《Auto-Encoding Variational Bayes》
Introduction to variational autoencoders VAE第二篇
---------------------
作者:Doit_
来源:CSDN
原文:https://blog.csdn.net/qq_31456593/article/details/77743840
版权声明:本文为博主原创文章,转载请附上博文链接!