Auto-Encoding Variational Bayes论文解读
论文链接:Auto-Encoding Variational Bayes
本文基本按照原文的思路用自己的话对其进行重述和讲解
动机
考虑以下问题情境:假设有独立同分布的数据集
数据点
其中隐变量
- 难解性:似然的积分 $p\theta(x)=\int p{\theta}(z)p{\theta}(x|z)\mathrm{d}z
p{\theta}(z|x)=\frac{p{\theta}(x|z)p{\theta}(z)}{p_{\theta}(x)}$ 难以计算,导致不能用EM算法;平均场变分推理要求的积分难以计算 - 大数据集:数据集非常大的情况下基于采样的方法(例如蒙特卡罗EM)效率很低,因此我们希望使用minibatch进行参数更新
我们主要关心在上述情况下的三个相关问题:
- 如何对模型参数
进行高效的极大似然估计(ML)或极大后验概率估计(MAP) - 如何对隐变量
进行高效的近似后验推断 - 如何对边缘似然
进行高效的推断
SGVB和AEVB
为了解决上述问题,我们引入一个识别模型$q{\phi}(z|x)
我们将$q{\phi}(z|x)
在 变分推断 中似然
其中
还可以表示为
考虑用一个随机噪声变量
此时用蒙特卡罗估计
将这个思路代入式(2)中,就得到了随机梯度变分贝叶斯(Stochastic Gradient Variational Bayes, SGVB)算法,即可以将梯度法应用于参数
一般来说,式(3)中的KL散度项$D{KL}(q{\phi}(z|x^{(i)})|p_{\theta}(z))$可以被解析地积分(论文附录B有解释),因此不用采样,于是根据式(3)有SGVB的另一个版本,且方差更小
给定一个大小为
其中minibatch
式(7)的后项显然就是Auto-Encoder的Negative reconstruction error,而前项KL散度则可视为正则项因此该算法也可称为自编码器变分贝叶斯(Auto-Encoding Variational Bayes, AEVB)
即输入样本
重参数化
上面提到$z\sim q{\phi}(z|x)
重参数化使得随机抽样与参数
举个例子,假设
一般的,针对给定的$q{\phi}(z|x)
- 逆累积分布(ICDF)易处理:此时令
,令$g{\phi}(\epsilon,x) q{\phi}(z|x)$的逆累积分布函数。例如:指数、柯西、瑞利分布等 - 位置-尺度(location-scale)族:此时令
为标准分布(location=0, scale=1),令 。例如:高斯、均匀、拉普拉斯、t-分布等 - 组合分布:一般可以将随机变量描述为
的不同变换。例如:Gamma、Beta、F分布等
Variational Auto-Encoder
这里将给出一个使用神经网络实现AEVB的例子,称为变分自编码器VAE
假设先验$p{\theta}(z)=N(z;0,I)
其中均值
由于先验和近似后验假设都是高斯分布,因此式(7)中KL散度项可以直接计算(论文附录B),于是有
tf2+keras有官方的VAE实现示例:Variational AutoEncoder Keras实现