自编码变分贝叶斯
标签(空格分隔): 机器学习
深度解读Diederik P. Kingma和Max Welling的论文 Auto-encoding variational bayes1,对中间涉及的公式进行了详尽的推导。最后给出了变分自编码器的Tensorflow示例代码。
0. 符号
数据点: x ,
数据集: X={
x(i)}Ni=1 ,满足 i.i.d 条件
隐变量: z ,
生成模型参数: θ
变分参数: ϕ
噪声变量: ϵ
1. 问题背景
假设数据集 X 是由未观测到的连续随机变量
- 第一步:从某个先验分布 pθ∗(z) 生成 z(i) ;
- 第二步:从某个条件分布 pθ∗(x|z) 生成 x(i) 。
其中,先验 pθ∗(z) 和似然 pθ∗(x|z) 分别来自参数分布族 pθ(z) 和 pθ(x|z) ,且这两个参数分布族的概率密度函数关于 θ 和 z 几乎处处可微。
然而,真实参数
上述这两个步骤分别相当于“编码”和“解码”,这应该就是称之为“自编码变分贝叶斯”的原因吧。
一个自然的想法是用最大似然法来求解未知的参数,即最大化边际似然。然而现实的情况是
1. 直接由等式 pθ(x)=∫pθ(x|z)pθ(z)dz 来估计边际似然是不可能的;
2. 真实后验 pθ(z|x)=pθ(x|z)pθ(z)/pθ(x) 同样是难以估计的。
因此,只能从另外的途径来解决这个问题。
2. 变分下界
引入识别模型(recognition model) qϕ(z|x) 来近似真实后验分布 pθ(z|x) ,这相当于一个概率编码器。
用KL散度来衡量 qϕ(z|x) 到 pθ(z|x) 的距离:
记
L(θ,ϕ;x) 称为边际似然 logpθ(x) 的 变分下界(variational lower bound)。
现在,最大化边际似然的问题可以转化为最大化其变分下界的问题。