参考资料:
术语解释:
- 隐变量指不可观测的随机变量,我们通常通过可观测变量的样本对隐变量作出推断。
- 对于同一个随机变量的两种不同的分布P(x)和Q(x), 我们可以用KL散度(KL divergence) 来描述两个分布的差异, KL散度越大, 则两个概率分布的差异越大.
1. 贝叶斯公式:
p(y∣x)=p(x)p(x,y)=p(x)p(x∣y)p(y)(1)
其中
-
x 为观测值,
y 为发生的事件.
-
p(y∣x) 为后验.
-
p(x,y) 为联合概率.
-
p(x∣y) 为似然.
-
p(y) 为先验.
-
p(x) 为 evidence (可以理解为事件的观测值).
引入全概率公式
p(x)=∫p(x∣y)p(y)dy, 式1可以变换为
p(z∣x)=∫p(x∣y)p(y)dyp(x∣y)p(y)(2)
1.1 贝叶斯深度学习的训练遇到的问题
给定一个训练集
D={(x1,y1),(x2,y2),…,(xm,ym)}, 用
D 训练一个贝叶斯神经网络, 则贝叶斯公式可以写为如下形式:
p(w∣x,y)=∫p(y∣x,w)p(w)dwp(y∣x,w)p(w)(3)
其中,
p(w) 通常初始化为标准高斯分布, 当
w 已知时,
p(y∣x,w) 容易求得.
然而, 分母分母这个积分要在
w 的取值空间上进行,我们知道神经网络的单个权重的取值空间可以是实数集
R,而这些权重一起构成的空间将相当复杂,基本没法积分。
2. 变分推断
因为式(3)无法计算, 因此采用变分推断将推断问题转化为了求极值的优化问题.
- 马尔科夫链蒙特卡洛(MCMC) 算法当数据量较大时计算较慢, 故不采用.
思路:
用贝叶斯公式求后验.
⟶ 因为贝叶斯后验难以直接求得, 故从一族近似概率分布
Q 中选择最优概率分布
q∗ 来近似后验.
⟶ 常选取平均场变分族作为
Q, 利用 ELBO 和平均场假设, 采用 coordinate ascent variational inference 更新参数.
⟶
q∗ 中 KL 散度难以求得, 采用求 ELBO 极大值问题来等价求 KL 散度极小值问题.
Ⅰ. 思路
设
x 为输入的观察量,
z 为隐藏变量, 推断问题即为依据输入数据
x 来得到后验条件概率分布
p(z∣x).
变分法的基本思想是将这一问题转化为优化问题. 首先, 提出一族关于隐藏变量的近似概率分布
Q, 从
Q 中找到一个与真实后验分布
p(z∣x)的KL散度最小的分布
q, 即
q∗(z)=q(z)∈QargminKL(q(z)∥p(z∣x))(4)之后便可使用
q∗(z)来近似代替真实后验分布
p(z∣x). 因此变分推断将推断问题转化为了求极值的优化问题,而
Q 的选择决定了优化问题的难易度,变分法核心思想就是要选定这一族函数
Q 使得密度分布足够灵活可以近似
p(z∣x) 的分布,同时又足够简单使得我们可以进行高效的优化。
Ⅱ. 变分推断详述
在求解式(4)中KL散度时(具体推导查看原文)会遇到困难, 因此我们无法直接计算 KL. 故我们引入 evidence lower bound(简称ELBO):
ELBO(q)=E[logp(z,x)]−E[logq(z)](5)
可以看到, 极小化KL divergence的问题与极大化 ELBO 的优化问题是等价的。因此,我们将难以求解的KL极值问题转化为易于求解的对ELBO的极值问题。
之前我们说我们选择一族合适的近似概率分布
Q,那么实际问题中,我们可以选择什么形式的
Q 呢?
一个简单而有效的变分族为平均场变分族(mean-field variational family)。利用ELBO和平均场假设,我们就可以利用coordinate ascent variational inference(简称CAVI) 方法来处理. 经过推导, 可以得到 coordinate ascent 的更新法则为:
q∗(zk)∝expE−k[logp(zk,z−k,x)](6)我们可以利用这一法则不断的固定其他的
z 的坐标来更新当前的坐标对应的
z 值,这与 Gibbs Sampling 过程类似, 不过 Gibbs Sampling 是不断的从条件概率中采样,而 CAVI 算法中是不断的用如下形式更新:
q∗(zk)∝expE[log( conditional )](7)
其完整算法如下: