机器学习之变分推断

一、前言

概率模型的中心任务就是求潜变量的后验概率分布 p ( Z ∣ X ) p(Z|X) p(ZX),以及关于该后验的期望。前者是推断,后者是决策。
为什么决策是关于后验的期望? 见如下推导:
p ( x ~ ∣ X ) = ∫ Z p ( x ~ ∣ Z ) p ( Z ∣ X )   d Z = E p ( Z ∣ X )   [ p ( x ~ ∣ Z ) ] \begin{align*} p(\tilde{x}|X) &= \int_{Z}p(\tilde{x}|Z)p(Z|X)\,{\rm d}Z \\ &= \mathbb{E}_{p(Z|X)}\,[p(\tilde{x}|Z)] \end{align*} p(x~X)=Zp(x~Z)p(ZX)dZ=Ep(ZX)[p(x~Z)]由此可见,对于后验概率分布的求解是十分重要的。但是,实际上后验分布很难求,原因主要有两点:潜在空间维度过高;后验分布形式复杂。具体地,对于连续型随机变量,积分可能没有解析解,同时由于空间维度过高和被积函数复杂导致没有数值解;对于离散型随机变量,理论上是可以计算的,但是隐含状态的数量可能有指数多个,从而导致精确计算的计算代价过大。
因此精确推断一般是不可行的,需要使用近似推断。大体分为随机近似和确定近似:
(1)随机近似 :这种近似方法的特点是假如我们能给无限的计算资源,他可以生成精确的结果。马尔科夫链蒙特卡洛方法就是一种随机近似。
(2)确定近似:这种方法的特点是永远无法生成精确的解。该方法一般假设后验分布可以通过一种特定的方式分解,或者有一个具体的参数形式(例如,高斯分布)。本节介绍的变分推断就是一种确定近似。

二、变分推断

在进行推导之前,需要明确两个概念:泛函和变分
泛函: 简单来说,泛函就是一个映射,该映射接受一个函数作为输入,返回一个值作为输出。机器学习中一个典型的例子就是熵 H [ p ] H[p] H[p]
H [ P ] = − ∫ p ( x ) l n p ( x )   d x H[P]=-\int p(x){\rm ln}p(x)\,{\rm d}x H[P]=p(x)lnp(x)dx变分法: 传统的微积分中,我们讨论的是 x x x值的微小变化对函数 y ( x ) y(x) y(x)的影响。在变分法中,我们关心的是函数 y ( x ) y(x) y(x)的微小变化对泛函 F ( y ) F(y) F(y)的影响。从而,在变分法中,我们可以寻找一个 y ( x ) y(x) y(x)来最大化或者最小化泛函 F ( y ) F(y) F(y)


现在,我们利用变分法的思想,将后验概率分布看做是一类函数,我们的目的在于寻找一个后验概率分布,使得其对应的泛函最大或最小。从而我们关注,这个泛函具体是什么? 很自然地,在概率角度,我们一般都是希望对数似然能够最大,所以我们先将对数似然作为泛函,然后看看是否能够进一步化简。
我们定义 X X X为观测变量, Z Z Z为潜在变量和参数,推导如下:
l o g   p ( X ) = l o g   p ( X , Z ) − l o g   p ( Z ∣ X ) = l o g   p ( X , Z ) q ( Z ) − l o g   p ( Z ∣ X ) q ( Z ) \begin{align*} {\rm log}\,p(X)&={\rm log}\,p(X,Z)-{\rm log}\,p(Z|X) \\ &={\rm log}\,\frac {p(X,Z)}{q(Z)}-{\rm log}\,\frac {p(Z|X)}{q(Z)} \end{align*} logp(X)=logp(X,Z)logp(ZX)=logq(Z)p(X,Z)logq(Z)p(ZX)等式两边同时对 q ( Z ) q(Z) q(Z)求期望
左边 = ∫ Z q ( Z ) l o g   p ( X )   d Z = l o g   p ( X ) ∫ Z q ( Z )   d Z = l o g   p ( X ) 左边=\int_{Z}q(Z){\rm log}\,p(X)\,{\rm d}Z={\rm log}\,p(X)\int_{Z}q(Z)\,{\rm d}Z={\rm log}\,p(X) 左边=Zq(Z)logp(X)dZ=logp(X)Zq(Z)dZ=logp(X) 右边 = ∫ Z q ( Z ) l o g   p ( X , Z ) q ( Z )   d Z ⏟ E L B O − ∫ Z q ( Z ) l o g   p ( Z ∣ X ) q ( Z )   d Z ⏟ K L ( q ∣ ∣ p ) \begin{matrix} 右边= \underbrace{ \int_{Z}q(Z){\rm log}\,\frac {p(X,Z)}{q(Z)}\,{\rm d}Z }_{ELBO} \underbrace{ -\int_{Z}q(Z){\rm log}\,\frac {p(Z|X)}{q(Z)}\,{\rm d}Z }_{KL(q||p)} \end{matrix} 右边=ELBO Zq(Z)logq(Z)p(X,Z)dZKL(q∣∣p) Zq(Z)logq(Z)p(ZX)dZ因此
l o g   p ( X ) = E L B O + K L ( q ∣ ∣ p ) {\rm log}\,p(X)=ELBO+KL(q||p) logp(X)=ELBO+KL(q∣∣p)
由KL Divergence的性质可知,其大于等于0。当且仅当两个分布相等时,KL Divergence为0。所以,当KL Divergence最小时, E L B O ELBO ELBO最大。那么换句话说,只要我们取一个 q ( Z ) q(Z) q(Z)使得 E L B O ELBO ELBO最大,那么此时的KL Divergence最小,即可以认为 q ( Z ) q(Z) q(Z)接近于 p ( Z ∣ X ) p(Z|X) p(ZX)。从而,我们的泛函由对数似然变为了 E L B O ELBO ELBO
即,此时我们的目标
q ( Z ) = arg ⁡ max ⁡ q   E L B O q(Z) = \mathop{\arg\max}\limits_{q}\,ELBO q(Z)=qargmaxELBO从而,我们需要限制 q ( Z ) q(Z) q(Z)类别范围,使得其能够被我们计算,并使得这个范围足够大,能够对后验分布进行较好的近似。限制范围的方法有很多,本文只介绍经典的变分推断。


我们假设随机变量 Z Z Z可以划分为若干个互不相关、彼此独立的组,即 Z = { Z i ∣ i = 1 , 2 , . . . , M } Z=\{Z_i|i=1,2,...,M\} Z={Zii=1,2,...,M}。该假设的这种分解形式在统计物理学中对应于平均场理论
q ( Z ) q(Z) q(Z)可以表示为
q ( Z ) = ∏ i = 1 M   q i q(Z)=\prod_{i=1}^M\,q_i q(Z)=i=1Mqi式中,我们将 q i ( Z i ) q_i(Z_i) qi(Zi)记为 q i q_i qi
因此,我们现在目的是找一系列的 q i q_i qi使得 E B L O EBLO EBLO达到最大。在变分推断中,我们对每个 q i q_i qi进行最优化,从而完成整体的最优化。因此,我们在一次优化过程中,只需要关注一个因子就可以,假设当前我们关注的因子是 q j q_j qj,我们将 E L B O ELBO ELBO进行如下化简
E L B O = ∫ Z ∏ i = 1 M q i [ l o g   p ( X , Z ) − l o g ∏ k = 1 M q k ]   d Z    = ∫ Z q j [ ∏ i ≠ j q i l o g   p ( X , Z ) ]   d Z ⏟ L e f t − ∫ Z ∏ i = 0 M q i ∑ k = 1 M l o g   q k   d Z ⏟ R i g h t \begin{align*} ELBO &= \int_Z \prod_{i=1}^M q_i [{\rm log}\,p(X,Z)-{\rm log}\prod_{k=1}^M q_k]\,{\rm d}Z \\ &\begin{matrix}\,\,= \underbrace{ \int_Z q_j[\prod_{i \neq j}q_i {\rm log}\,p(X,Z)]\,{\rm d}Z}_{Left} - \underbrace{\int_Z \prod_{i=0}^M q_i \sum_{k=1}^M {\rm log}\,q_k\,{\rm d}Z}_{Right} \end{matrix} \end{align*} ELBO=Zi=1Mqi[logp(X,Z)logk=1Mqk]dZ=Left Zqj[i=jqilogp(X,Z)]dZRight Zi=0Mqik=1MlogqkdZ我们分别对 L e f t Left Left R i g h t Right Right进行计算
L e f t = ∫ Z j q j [ ∫ Z i ≠ j ∏ i ≠ j q i l o g   p ( X , Z )   d Z i ≠ j ]   d Z j = ∫ Z j q j E i ≠ j [ l o g   p ( X , Z ) ]   d Z j R i g h t = ∫ Z ∏ i = 0 M q i l o g   q j   d Z + C 1 = ∫ Z j q j l o g   q j   d Z j ∏ i ≠ j ∫ Z i q i   d Z i + C 1 = ∫ Z j q j l o g   q j   d Z j + C 1 \begin{align*} Left &= \int_{Z_j} q_j[\int_{Z_{i \neq j}}\prod_{i \neq j}q_i {\rm log}\,p(X,Z)\,{\rm d}Z_{i \neq j}]\,{\rm d}Z_j \\ &= \int_{Z_j}q_j \mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]\,{\rm d}Z_j \\ Right &= \int_Z \prod_{i=0}^M q_i {\rm log}\,q_j\,{\rm d}Z+C_1 \\ &= \int_{Z_j}q_j{\rm log} \, q_j \, {\rm d}Z_j \prod_{i \neq j}\int_{Z_i}q_i\,{\rm d}Z_i +C_1 \\ &= \int_{Z_j}q_j{\rm log} \, q_j \, {\rm d}Z_j+C_1 \end{align*} LeftRight=Zjqj[Zi=ji=jqilogp(X,Z)dZi=j]dZj=ZjqjEi=j[logp(X,Z)]dZj=Zi=0MqilogqjdZ+C1=ZjqjlogqjdZji=jZiqidZi+C1=ZjqjlogqjdZj+C1其中, C 1 = − ∫ Z ∏ i = 0 M q i ∑ i ≠ j l o g   q j   d Z C_1=-\int_Z \prod_{i=0}^M q_i \sum_{i \neq j} {\rm log}\,q_j\,{\rm d}Z C1=Zi=0Mqii=jlogqjdZ
同时,我们令 l o g   p ~ ( X , Z j ) = E i ≠ j [ l o g   p ( X , Z ) ] + C 2 {\rm log}\,\tilde{p}(X,Z_j)=\mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]+C_2 logp~(X,Zj)=Ei=j[logp(X,Z)]+C2(注意这里的 C 2 C_2 C2是用于归一化的,因为等式左边是对一个概率取对数,所以需要保证概率的性质,后面也会展示 C 2 C_2 C2的值),则 E L B O ELBO ELBO最终化为
E L B O = ∫ Z j q j E i ≠ j [ l o g   p ( X , Z ) ]   d Z j − ∫ Z j q j l o g   q j   d Z j − C 1 = ∫ Z j q j l o g p ~ ( X , Z j ) q j   d Z j + C 3 = − K L ( q j ∣ ∣ p ~ ( X , Z j ) ) + C 3 \begin{align*} ELBO &= \int_{Z_j}q_j \mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]\,{\rm d}Z_j-\int_{Z_j}q_j{\rm log} \, q_j \, {\rm d}Z_j-C_1 \\ &= \int_{Z_j}q_j {\rm log}\frac{\tilde{p}(X,Z_j)}{q_j}\, {\rm d}Z_j + C_3 \\ &=-KL(q_j||\tilde{p}(X,Z_j)) +C_3 \end{align*} ELBO=ZjqjEi=j[logp(X,Z)]dZjZjqjlogqjdZjC1=Zjqjlogqjp~(X,Zj)dZj+C3=KL(qj∣∣p~(X,Zj))+C3显然,当 q j q_j qj逼近于 p ~ ( X , Z j ) \tilde{p}(X,Z_j) p~(X,Zj)时, E L B O ELBO ELBO能够取得最大值,即
l o g   q j ∗ ( Z j ) = E i ≠ j [ l o g   p ( X , Z ) ] + C 2 {\rm log}\,q_j^*(Z_j)=\mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]+C_2 logqj(Zj)=Ei=j[logp(X,Z)]+C2式中, q j ∗ ( Z j ) q_j^*(Z_j) qj(Zj)当前时刻 q j q_j qj的最优解。
注意到,上式中有一个归一化常数,我们推导一下他的表达式:
q j ∗ ( Z j ) = e x p { E i ≠ j [ l o g   p ( X , Z ) ] + C 2 } ∫ Z j q j ∗ ( Z j ) d Z j = e x p { C 2 } ∫ Z j e x p { E i ≠ j [ l o g   p ( X , Z ) ] } d Z j C 2 = l o g 1 ∫ Z j e x p { E i ≠ j [ l o g   p ( X , Z ) ] } d Z j \begin{align*} q_j^*(Z_j) &=exp\{ \mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]+C_2\} \\ \int_{Z_j} q_j^*(Z_j) {\rm d}Z_j &= exp\{ C_2 \} \int_{Z_j} exp\{ \mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]\}{\rm d}Z_j \\ C_2&= {\rm log} \frac{1}{ \int_{Z_j} exp\{ \mathbb{E}_{i \neq j}[{\rm log}\,p(X,Z)]\}{\rm d}Z_j} \\ \end{align*} qj(Zj)Zjqj(Zj)dZjC2=exp{Ei=j[logp(X,Z)]+C2}=exp{C2}Zjexp{Ei=j[logp(X,Z)]}dZj=logZjexp{Ei=j[logp(X,Z)]}dZj1至此 q j q_j qj求解完毕。


最后,我们使用坐标上升(Coordinate Ascent)法更新所有的因子。即

  1. 初始化所有的 q i q_i qi,令 t = 0 t=0 t=0
  2. t t t次迭代:
    固定 q 2 ( t − 1 ) , q 3 ( t − 1 ) , . . . , q M ( t − 1 ) q_2^{(t-1)}, q_3^{(t-1)},...,q_M^{(t-1)} q2(t1),q3(t1),...,qM(t1),计算 q 1 ( t ) q_1^{(t)} q1(t)
    固定 q 1 ( t ) , q 3 ( t − 1 ) , . . . , q M ( t − 1 ) q_1^{(t)}, q_3^{(t-1)},...,q_M^{(t-1)} q1(t),q3(t1),...,qM(t1),计算 q 2 ( t ) q_2^{(t)} q2(t)
    固定 q 1 ( t ) , q 2 ( t ) , q 4 ( t − 1 ) . . . , q M ( t − 1 ) q_1^{(t)}, q_2^{(t)},q_4^{(t-1)}...,q_M^{(t-1)} q1(t),q2(t),q4(t1)...,qM(t1),计算 q 3 ( t ) q_3^{(t)} q3(t)
    ⋮ \vdots
    固定 q 1 ( t ) , q 2 ( t ) , . . . , q M − 1 ( t ) q_1^{(t)}, q_2^{(t)},...,q_{M-1}^{(t)} q1(t),q2(t),...,qM1(t),计算 q M ( t ) q_M^{(t)} qM(t)
  3. 回到第2步,进行第 t + 1 t+1 t+1次迭代,直至收敛
    该算法能够保证收敛,因为下界关于每个 q i q_i qi都是一个凸函数

但是经典的基于平均场理论的变分推断仍然存在问题:

  1. 平均场理论假设过强
  2. 期望的计算在某些情况下仍然是不可行的

参考资料

《Pattern Recognition and Machine Learning》
机器学习(白板推导系列)


如有错误,感谢指正!!!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值