Auto-Encoding Variational Bayes
Auto-Encoding Variational Bayes论文原文
Understanding Variational Autoencoders (VAEs)
Variational Inference(传统算法总结的比较全面)
1 预备知识
1.1 KL散度及变分
相对熵(relative entropy)就是KL散度(Kullback–Leibler divergence)。用于衡量两个概率分布 p ( x ) p(x) p(x) 和 q ( x ) q(x) q(x) 之间的差异,定义为:
K L ( p ( x ) ∣ ∣ q ( x ) ) = ∫ p ( x ) ln p ( x ) q ( x ) d x = E x ∼ p ( x ) [ ln p ( x ) q ( x ) ] KL(p(x)||q(x))=\int p(x)\ln{p(x)\over q(x)}dx=\mathbb{E}_{x\sim p(x)}\left[\ln{p(x)\over q(x)}\right] KL(p(x)∣∣q(x))=∫p(x)lnq(x)p(x)dx=Ex∼p(x)[lnq(x)p(x)]
(1) 度量分布的近似度距离
KL 散度的主要性质是非负性:
如果固定 p ( x ) p(x) p(x),那么 K L ( p ( x ) ∣ ∣ q ( x ) ) = 0 ↔ p ( x ) = q ( x ) KL(p(x)||q(x))=0\leftrightarrow p(x)=q(x) KL(p(x)∣∣q(x))=0↔p(x)=q(x);
如果固定 q ( x ) q(x) q(x),同样 K L ( p ( x ) ∣ ∣ q ( x ) ) = 0 ↔ p ( x ) = q ( x ) KL(p(x)||q(x))=0\leftrightarrow p(x)=q(x) KL(p(x)∣∣q(x))=0↔p(x)=q(x);
也就是不管固定哪一个,最小化 KL 散度的结果都是两者尽可能相等。
(2) 正定性
Gibbis Inequality:
K L ( p ( x ) ∣ ∣ q ( x ) ) ≠ K L ( q ( x ) ∣ ∣ p ( x ) ) ≤ 0 KL(p(x)||q(x))\ne KL(q(x)||p(x)) \le 0 KL(p(x)∣∣q(x))=KL(q(x)∣∣p(x))≤0 当且仅当p=q时取等号。
(3) 非对称性
由于 p ( x ) p(x) p(x) 和 $q(x) 在公式中的地位不是相等的,因此:
K L ( p ( x ) ∣ ∣ q ( x ) ) ≠ K L ( q ( x ) ∣ ∣ p ( x ) ) KL(p(x)||q(x))\ne KL(q(x)||p(x)) KL(p(x)∣∣q(x))=KL(q(x)∣∣p(x))
(4) 奇异性
KL 散度存在’‘奇异状态’’,就是当 q ( x ) q(x) q(x) 在某个区域等于 0,而 p ( x ) p(x) p(x) 在该区域不等于 0,那么 KL 散度就出现无穷大。
若 p ( x ) p(x) p(x)是真实分布, q ( x ) q(x) q(x)是拟合分布,则拟合分布趋于覆盖理论分布的所有范围(zero avoiding);
若 q ( x ) q(x) q(x)是真实分布, p ( x ) p(x) p(x)是拟合分布,则拟合分布的0值不影响KL散度的积分(zero forcing)。
2 基本模型
2.1 基本问题
如果我们有一组观测数据 D D D,如何推断产生这些数据的模型 m m m (得到观测数据 D D D的分布)?
2.2 基本假设
设所有 n n n维概率分布函数构成的空间为 P n \mathscr{P}_n Pn。给定正整数 d d d, n n n维数据集 X = { x ( i ) } i = 1 N X=\{ x^{(i)} \}_{i=1}^N X={ x(i)}i=1N 是通过如下两步生成的:
(i)通过某个先验分布 p ∗ ( z ) ∈ P d p^{*}(z) \in \mathscr{P}_d p∗(z)∈Pd 生成 d d d维隐状态 z ( i ) z^{(i)} z(i);
(ii)通过某个条件概率 q z ∗ ( x ) ∈ P n q^*_z(x) \in \mathscr{P}_n qz∗(x)∈Pn 生成 n n n维数据 x ( i ) x^{(i)} x(i)。(为了与函数族的写法相仿,这里条件分布用下标表示。)
注:这里的隐状态可以是连续性随机变量(如预测身高时将年龄作为隐状态),也可以是离散型随机变量(如预测身高时将性别作为隐状态)。
当先验分布与条件分布给定时,后验分布也已经确定(可以用Bayes公式算出):
p x ∗ ( z ) = q z ∗ ( x ) p ∗ ( z ) q ∗ ( x ) = q z ∗ ( x ) p ∗ ( z ) ∫ q z ∗ ( x ) p ∗ ( z ) d z p^*_x (z) = \frac{q^*_z(x) p^*(z)}{q^*(x)} = \frac{q^*_z(x) p^*(z)}{\int{q^*_z(x) p^*(z) dz}} px∗(z)=q∗(x)qz∗(x)p∗(z)=∫qz∗(x)p∗(z)dzqz∗(x)p