贝叶斯深度学习笔记

参考资料:

术语解释:

  • 隐变量指不可观测的随机变量,我们通常通过可观测变量的样本对隐变量作出推断。
  • 对于同一个随机变量的两种不同的分布P(x)和Q(x), 我们可以用KL散度(KL divergence) 来描述两个分布的差异, KL散度越大, 则两个概率分布的差异越大.

1. 贝叶斯公式:

p ( y ∣ x ) = p ( x , y ) p ( x ) = p ( x ∣ y ) p ( y ) p ( x ) (1) p(y | x)=\frac{p(x, y)}{p(x)}=\frac{p(x | y) p(y)}{p(x)} \tag{1} p(yx)=p(x)p(x,y)=p(x)p(xy)p(y)(1)
其中

  • x x x 为观测值, y y y 为发生的事件.
  • p ( y ∣ x ) p(y|x) p(yx) 为后验.
  • p ( x , y ) p(x,y) p(x,y) 为联合概率.
  • p ( x ∣ y ) p(x|y) p(xy) 为似然.
  • p ( y ) p(y) p(y) 为先验.
  • p ( x ) p(x) p(x) 为 evidence (可以理解为事件的观测值).

引入全概率公式 p ( x ) = ∫ p ( x ∣ y ) p ( y ) d y p(x)=\int p(x | y) p(y) d y p(x)=p(xy)p(y)dy, 式1可以变换为
p ( z ∣ x ) = p ( x ∣ y ) p ( y ) ∫ p ( x ∣ y ) p ( y ) d y (2) p(z | x)=\frac{p(x | y) p(y)}{\int p(x | y) p(y) d y}\tag{2} p(zx)=p(xy)p(y)dyp(xy)p(y)(2)

1.1 贝叶斯深度学习的训练遇到的问题

给定一个训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\} D={(x1,y1),(x2,y2),,(xm,ym)}, 用 D D D 训练一个贝叶斯神经网络, 则贝叶斯公式可以写为如下形式:
p ( w ∣ x , y ) = p ( y ∣ x , w ) p ( w ) ∫ p ( y ∣ x , w ) p ( w ) d w (3) p(w | \boldsymbol{x}, y)=\frac{p(y | \boldsymbol{x}, w) p(w)}{\int p(y | \boldsymbol{x}, w) p(w) d w} \tag{3} p(wx,y)=p(yx,w)p(w)dwp(yx,w)p(w)(3)
其中, p ( w ) p(w) p(w) 通常初始化为标准高斯分布, 当 w w w 已知时, p ( y ∣ x , w ) p(y | \boldsymbol{x}, w) p(yx,w) 容易求得.

然而, 分母分母这个积分要在 w w w 的取值空间上进行,我们知道神经网络的单个权重的取值空间可以是实数集 R R R,而这些权重一起构成的空间将相当复杂,基本没法积分。

2. 变分推断

因为式(3)无法计算, 因此采用变分推断将推断问题转化为了求极值的优化问题.

  • 马尔科夫链蒙特卡洛(MCMC) 算法当数据量较大时计算较慢, 故不采用.

思路:
   用贝叶斯公式求后验.
⟶ \longrightarrow 因为贝叶斯后验难以直接求得, 故从一族近似概率分布 Q Q Q 中选择最优概率分布 q ∗ q^* q 来近似后验.
⟶ \longrightarrow 常选取平均场变分族作为 Q Q Q, 利用 ELBO 和平均场假设, 采用 coordinate ascent variational inference 更新参数.
⟶ \longrightarrow q ∗ q^* q 中 KL 散度难以求得, 采用求 ELBO 极大值问题来等价求 KL 散度极小值问题.

Ⅰ. 思路

x \textbf x x 为输入的观察量, z \textbf z z 为隐藏变量, 推断问题即为依据输入数据 x \textbf x x 来得到后验条件概率分布 p ( z ∣ x ) p(\textbf z|\textbf x) p(zx).

变分法的基本思想是将这一问题转化为优化问题. 首先, 提出一族关于隐藏变量的近似概率分布 Q Q Q, 从 Q Q Q 中找到一个与真实后验分布 p ( z ∣ x ) p(\textbf z|\textbf x) p(zx)KL散度最小的分布 q q q, 即
q ∗ ( z ) = argmin ⁡ q ( z ) ∈ Q K L ( q ( z ) ∥ p ( z ∣ x ) ) (4) q^{*}({z})=\underset{q({z}) \in Q}{\operatorname{argmin}} K L(q({z}) \| p({z} | {x}))\tag{4} q(z)=q(z)QargminKL(q(z)p(zx))(4)之后便可使用 q ∗ ( z ) q^*(\textbf z) q(z)来近似代替真实后验分布 p ( z ∣ x ) p(\textbf z|\textbf x) p(zx). 因此变分推断将推断问题转化为了求极值的优化问题,而 Q Q Q 的选择决定了优化问题的难易度,变分法核心思想就是要选定这一族函数 Q Q Q 使得密度分布足够灵活可以近似 p ( z ∣ x ) p(\textbf z|\textbf x) p(zx) 的分布,同时又足够简单使得我们可以进行高效的优化。

Ⅱ. 变分推断详述

在求解式(4)中KL散度时(具体推导查看原文)会遇到困难, 因此我们无法直接计算 KL. 故我们引入 evidence lower bound(简称ELBO):
E L B O ( q ) = E [ log ⁡ p ( z , x ) ] − E [ log ⁡ q ( z ) ] (5) E L B O(q)=E[\log p({z}, {x})]-E[\log q({z})]\tag{5} ELBO(q)=E[logp(z,x)]E[logq(z)](5)
可以看到, 极小化KL divergence的问题与极大化 ELBO 的优化问题是等价的。因此,我们将难以求解的KL极值问题转化为易于求解的对ELBO的极值问题。

之前我们说我们选择一族合适的近似概率分布 Q Q Q,那么实际问题中,我们可以选择什么形式的 Q Q Q 呢?

一个简单而有效的变分族为平均场变分族(mean-field variational family)。利用ELBO和平均场假设,我们就可以利用coordinate ascent variational inference(简称CAVI) 方法来处理. 经过推导, 可以得到 coordinate ascent 的更新法则为: q ∗ ( z k ) ∝ exp ⁡ E − k [ log ⁡ p ( z k , z − k , x ) ] (6) q^{*}\left(z_{k}\right) \propto \exp E_{-k}\left[\log p\left(z_{k}, z_{-k}, x\right)\right]\tag{6} q(zk)expEk[logp(zk,zk,x)](6)我们可以利用这一法则不断的固定其他的 z z z 的坐标来更新当前的坐标对应的 z z z 值,这与 Gibbs Sampling 过程类似, 不过 Gibbs Sampling 是不断的从条件概率中采样,而 CAVI 算法中是不断的用如下形式更新: q ∗ ( z k ) ∝ exp ⁡ E [ log (  conditional  ) ] (7) q^{*}\left(z_{k}\right) \propto \exp E[\text {log}(\text { conditional })]\tag{7} q(zk)expE[log( conditional )](7)
其完整算法如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值