Auto-Encoding Variational Bayes
-
论文主要贡献:
- 利用重参数技巧得到变分下界的一个估计,该估计可以直接用标准梯度下降方法进行优化。
- 上述变分下界可以用来推断某些后验分布。
-
问题背景:
假设某个独立同分布的数据集中的每个数据点
都是有一个随机过程产生的,且该随机过程涉及到某个隐变量
。更具体地,
的生成过程为:
①从某个分布
中随机采样一个
②利用
得到一个条件概率
,从该分布中采样得到
我们感兴趣的是:
- 条件概率
,因为如果能得到该条件分布,那么就能利用
得到
的分布,从而可以生成与原数据集中相似的数据。
- 后验概率
,因为如果能得到这个后验分布,那么对于给定的
,我们能够得到对应的
,我们相信
是对
的一个好的表示。
- 条件概率
一个自然的思路是最大化
的似然:
但是这一后验概率很难求,为此引入
作为对其的变分近似。对上面的式子进行变形:
两边关于求期望:
化简得到:
由于,所以:
为了最大化可以最大化其下界
,将此下界化简得到:
考虑上面式子中的后面两项:
最终下界可以写成:
所以最终我们的目标就是优化,使其达到最大值。
-
重参数技巧
的一个问题是其对
的导数不好求,所以不便于采用梯度下降方法优化,通过引入重参数技巧获得
的一个近似,而且该下界可以直接使用梯度下降算法优化。
将
,变为
,其中
,我们可以得到
的一个近似:
其中,
。
-
VAE
变分自编码器是论文所讨论模型的一个特例,其结构如下:
感谢苏剑林先生的图该模型的几个假设是:
- 先验概率
- 后验概率
是一个多值高斯分布,其协方差矩阵为对角矩阵
- 后验概率的近似
简单起见取为协方差矩阵为对角矩阵的多值高斯分布
模型主要要学习的就是
,又由于我们取
为协方差矩阵为对角矩阵的多值高斯分布,所以只要利用两个网络分别估计该高斯分布的均值
和标准差
(实际操作时网络一般估计的是
,不用加激活函数)即可。VAE的训练过程在上面的结构图中也有体现:
①输入
②神经网络输出该
对应的
的
和
③从
中采样某个
,将其送入表示
的decoder,得到输出
④计算loss,并优化
- 先验概率
-
VAE loss
有前面的推导可知,我们希望优化的目标是最大化下式:
在训练VAE时,我们可以将作为loss,这样最小化loss即最大化
。
由于我们假设
和
是协方差矩阵为对角矩阵的多值高斯分布,所以我们可以计算
:
令
的维度是
,
和
是
的均值和标准差,
和
是
和
的第
个元素,那么:
对于,根据所选的decoder类型不同可以分为:
Bernoulli MLP
其中,即decoder的输出。
-
Gaussian MLP
其中:
综上,最后我们需要最小化的loss是: