所谓推断,即是在概率图模型中计算未观测变量(变量集)的后验分布;然后根据推测出的未观测变量与观察变量一起进行参数学习。注意如果将待学习参数也当作变量,那么参数学习也类似于推断问题。推断分为精确推断和近似推断,因精确推断往往需要很大的计算开销,所以近似推断在现实应用中跟为常用。近似推断分为基于确定性的变分推断和基于随机性的采样方法。本文将深入探讨变分推断的原理与技术细节。
假设在贝叶斯模型中, X X 代表观测变量集, Z Z 代表隐变量集和参数集, p(X,Z) p ( X , Z ) 为相应的联合概率分布。在EM算法深入理解中,我们能得到如下关系:
lnp(X|θ)=L(q,θ)+KL(q||p) ln p ( X | θ ) = L ( q , θ ) + K L ( q | | p )
其中
L(q,θ)=∑Zq(Z)lnp(X,Z|θ)q(Z)KL(q||p)=−∑Zq(Z)lnp(Z|X,θ)q(Z) L ( q , θ ) = ∑ Z q ( Z ) ln p ( X , Z | θ ) q ( Z ) K L ( q | | p ) = − ∑ Z q ( Z ) ln p ( Z | X , θ ) q ( Z )
可知,在参数的学习中我们使用EM算法,即避开观察数据的对数似然函数 lnp(X|θ) ln p ( X | θ ) 的难以优化求解而利用其下界 L(q,θ) L ( q , θ ) 进行计算。其中, q(Z) q ( Z ) 的选择,我们直接采用其后验概率而使得下界与目标优化函数取等。然而遗憾的是,在概率图模型当中,隐变量 Z Z 的后验分布很难通过贝叶斯公式求解,主要是因为分母中 p(X) p ( X ) 的积分项的存在。因此,变分推断的实质就是使用已知简单分布来逼近需要推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优,但具有确定解的近似后验分布。
1. 数学原理
平均场假设复杂的多变量 Z Z 可拆分为一系列相互独立的多变量 Zi Z i , i=1,⋯,M i = 1 , ⋯ , M ,且 q q 分布可以因子化为这些多变量集的乘积:
q(Z)=∏i=1Mqi(Zi) q ( Z ) = ∏ i = 1 M q i ( Z i )
qi(Zi) q i ( Z i ) 简写为 qi q i ,那么下界 L(q) L ( q ) 可变为(注意这里的参数 θ θ 融入进了隐变量):
L(q)=∫∏iqi{lnp(X,Z)−∑ilogqi}dZ=∫qj{∫lnp(X,Z)∏i≠jqidZi}dZj−∫qjlnqjdZj+const=∫qjlogp^(X,Zj)dZj−∫qjlnqjdZj+const L ( q ) = ∫ ∏ i q i { ln p ( X , Z ) − ∑ i l o g q i } d Z = ∫ q j { ∫ ln p ( X , Z ) ∏ i ≠ j q i d Z i } d Z j − ∫ q j ln q j d Z j + c o n s t = ∫ q j l o g p ^ ( X , Z j ) d Z j − ∫ q j ln q j d Z j + c o n s t
注意这里的 Z Z 为连续型变量, dZ=dZ1dZ2⋯dZM d Z = d Z 1 d Z 2 ⋯ d Z M ,且定义了新的分布 p^(X,Zj) p ^ ( X , Z j ) :
lnp^(X,Zj)=Ei≠j[lnp(X,Z)]+const=∫lnp(X,Z)∏i≠jqidZi+const ln p ^ ( X , Z j ) = E i ≠ j [ ln p ( X , Z ) ] + c o n s t = ∫ ln p ( X , Z ) ∏ i ≠ j q i d Z i + c o n s t
现在我们只关心 qj q j ,因此固定 qi≠j q i ≠ j 去最大化 L(q) L ( q ) ,容易发现 L(q)=−KL(qj||p^(X,Zj)) L ( q ) = − K L ( q j | | p ^ ( X , Z j ) ) 。因此当 qj=p^(X,Zj) q j = p ^ ( X , Z j ) 时, L(q) L ( q ) 最大。于是变量子集 Zj Z j 所服从的最优分布 q∗j q j ∗ 应满足:
lnq∗j(Zj)=Ei≠j[lnp(X,Z)]+const ln q j ∗ ( Z j ) = E i ≠ j [ ln p ( X , Z ) ] + c o n s t
显然,对变量 Zj Z j 分布 q∗j q j ∗ 进行估计时融合了除 Zj Z j 外的其他 Zi≠j Z i ≠ j 的信息,通过联合似然函数 lnp(X,Z) ln p ( X , Z ) 在 Zj Z j 之外的隐变量分布上求得期望。上述中的常数项用于归一化 q∗j(Zj) q j ∗ ( Z j ) ,因此可得:
q∗j(Zj)=exp(Ei≠j[lnp(X,Z)])∫exp(Ei≠j[lnp(X,Z)])dZj q j ∗ ( Z j ) = e x p ( E i ≠ j [ ln p ( X , Z ) ] ) ∫ e x p ( E i ≠ j [ ln p ( X , Z ) ] ) d Z j
平均场方法通过恰当的分割独立变量子集 {Zi}Mi=1 { Z i } i = 1 M ,使得相应的 qi(Zi) q i ( Z i ) 用闭合解。由于 qj q j 的分布依赖于其他变量子集的分布,因此平均场是一个不断迭代的方法以保证各子集分布收敛到局部最优解(下界相对各子集分布是凸函数)。
在实践中使用平均场方法时,最重要的是考虑如何对隐变量进行拆解,以及假设各变量子集服从何种分布。
下面考虑一种更加复杂的情形。有时在贝叶斯模型中,并不是所有隐变量 Z Z 都可以根据平均场的假设可拆分为相互独立且不相交的子集。有时某一个隐变量 m m 与其它隐变量 Z Z 成某种结构上的相关性,因此我们必须考虑 q(Z,m)=q(Z|m)q(m) q ( Z , m ) = q ( Z | m ) q ( m ) 。在这种情况下,我们的下界不难得到:
L(q)=∑m∑Zq(Z|m)q(m)ln{p(X,Z,m)q(Z|m)q(m)} L ( q ) = ∑ m ∑ Z q ( Z | m ) q ( m ) ln { p ( X , Z , m ) q ( Z | m ) q ( m ) }
上述的优化一般对 q(Z|m) q ( Z | m ) 和 q(m) q ( m ) 采用交替优化的思想进行求解。当固定 q(m) q ( m ) 时,对 q(Z|m) q ( Z | m ) 的优化与上述方法相同,即将 Z Z 拆分为独立的子集再求解。当固定 q(Z|m) q ( Z | m ) 时,优化 q(m) q ( m ) 采用拉格朗日乘子法:
L(q(m),λ)=∑m∑Zq(Z|m)q(m)ln{p(X,Z,m)q(Z|m)q(m)}+λ(∑mq(m)−1) L ( q ( m ) , λ ) = ∑ m ∑ Z q ( Z | m ) q ( m ) ln { p ( X , Z , m ) q ( Z | m ) q ( m ) } + λ ( ∑ m q ( m ) − 1 )
这里我们重写下界 L(q) L ( q ) :
L(q)=∑m∑Zq(Z|m)q(m)ln{p(X,Z,m)q(Z|m)q(m)}=∑m[q(m){∑Zq(Z|m){lnp(X,Z,m)−lnq(Z|m)}−lnq(m)}] L ( q ) = ∑ m ∑ Z q ( Z | m ) q ( m ) ln { p ( X , Z , m ) q ( Z | m ) q ( m ) } = ∑ m [ q ( m ) { ∑ Z q ( Z | m ) { ln p ( X , Z , m ) − ln q ( Z | m ) } − ln q ( m ) } ]
通过分析上式,很容易得到 L(q)=−KL(q(m)||exp(Lm)) L ( q ) = − K L ( q ( m ) | | e x p ( L m ) ) ,其中
Lm=∑Zq(Z|m){lnp(X,Z,m)−lnq(Z|m)} L m = ∑ Z q ( Z | m ) { ln p ( X , Z , m ) − ln q ( Z | m ) }
因此,
q(m)=exp(Lm) q ( m ) = e x p ( L m ) 能最大化下界,由于
∑mq(m)=1 ∑ m q ( m ) = 1 的约束,因此
q(m)∝exp(Lm) q ( m ) ∝ e x p ( L m )
2. 与EM算法的关系
在EM算法中,包含隐变量 z z 和参数 θ θ 。那么在变分推断中,我们假设 q(Z)=q(z)q(θ) q ( Z ) = q ( z ) q ( θ ) ,分别交替优化 q(z) q ( z ) 和 q(θ) q ( θ ) 。其中, q(θ) q ( θ ) 用点估计近似 q(θ)=δ(θ−θ0) q ( θ ) = δ ( θ − θ 0 ) , θ0 θ 0 为自由参数。
当固定 q(θ) q ( θ ) ,推断 q(z) q ( z ) 近似于最小化KL(q||p):
KL(q||p)=−∫∫q(z)q(θ)lnp(z,θ0|X)q(z)q(θ)dzdθ=−∫q(z)lnp(z,θ0|X)q(z)dz+const=−∫q(z)lnp(z|θ0,X)p(θ0|X)q(z)+const=−∫q(z)lnp(z|θ0,X)q(z)dz+const K L ( q | | p ) = − ∫ ∫ q ( z ) q ( θ ) ln p ( z , θ 0 | X ) q ( z ) q ( θ ) d z d θ = − ∫ q ( z ) ln p ( z , θ 0 | X ) q ( z ) d z + c o n s t = − ∫ q ( z ) ln p ( z | θ 0 , X ) p ( θ 0 | X ) q ( z ) + c o n s t = − ∫ q ( z ) ln p ( z | θ 0 , X ) q ( z ) d z + c o n s t
当 q(z)=p(z|θ0,X) q ( z ) = p ( z | θ 0 , X ) 时,上式目标函数最小,则这对应于EM算法的E步。
当固定 q(z) q ( z ) 时,优化 q(θ) q ( θ ) 时,我们考虑
∫q(θ)∫q(z)lnp(z,θ0,X)q(z)q(θ)dzdθ=∫q(θ)Eq(z)lnp(z,θ0,X)dθ−∫q(θ)lnq(θ)+const ∫ q ( θ ) ∫ q ( z ) ln p ( z , θ 0 , X ) q ( z ) q ( θ ) d z d θ = ∫ q ( θ ) E q ( z ) ln p ( z , θ 0 , X ) d θ − ∫ q ( θ ) ln q ( θ ) + c o n s t
很明显,当 q(θ)=Eq(z)lnp(z,θ0,X) q ( θ ) = E q ( z ) ln p ( z , θ 0 , X ) ,上式目标函数最大,则这对应于EM算法的M步。
3. 实际应用
假设给定一个数据集 D={x1,⋯,xN} D = { x 1 , ⋯ , x N } ,其中每一个观测的单变量数据 xn x n 均独立的抽样于高斯分布。那么似然函数为:
p(D|μ,τ)=(τ2π)N/2exp{−τ2∑n=1N(xn−μ)2} p ( D | μ , τ ) = ( τ 2 π ) N / 2 e x p { − τ 2 ∑ n = 1 N ( x n − μ ) 2 }
我们现在的目标是估计参数 μ μ 和 τ τ 。我们引入两个参数的共轭先验分布
p(μ|τ)=N(μ|μ0,(λ0τ)−1)p(τ)=Gam(τ|a0,b0) p ( μ | τ ) = N ( μ | μ 0 , ( λ 0 τ ) − 1 ) p ( τ ) = G a m ( τ | a 0 , b 0 )
实质上,对于这个简单问题的后验概率是能精确计算出来的,由于共轭的性质,参数的后验分布也是其先验分布。这里,我们采用变分推断的思想进行后验概率的计算,首先我们假设:
q(μ,τ)=qμ(μ)qτ(τ) q ( μ , τ ) = q μ ( μ ) q τ ( τ )
则对于
qμ(μ) q μ ( μ ) ,
lnq∗μ(μ)=Eτ[lnp(D|μ,τ)+lnp(μ|τ)]+const=−E[τ]2{λ0(μ−μ0)2+∑n(xn−μ)2}+const ln q μ ∗ ( μ ) = E τ [ ln p ( D | μ , τ ) + ln p ( μ | τ ) ] + c o n s t = − E [ τ ] 2 { λ 0 ( μ − μ 0 ) 2 + ∑ n ( x n − μ ) 2 } + c o n s t
注意我们只关注 μ μ ,其它无关项全融入常数项。由上式可以清楚推断 qμ(μ) q μ ( μ ) 服从高斯分布 N(μ|μN,λ−1N) N ( μ | μ N , λ N − 1 ) ,注意我们并没有事先预设其 qμ(μ) q μ ( μ ) 的分布形式,完全推断与似然函数和预设的先验分布。其中
μN=λ0μ0+Nx¯λ0+NλN=(λ0+N)E[τ] μ N = λ 0 μ 0 + N x ¯ λ 0 + N λ N = ( λ 0 + N ) E [ τ ]
综上,由 μ μ 的后验分布 q∗μ(μ) q μ ∗ ( μ ) ,可得知其期望为 μN μ N 。注意当 N→∞ N → ∞ , μN=x¯ μ N = x ¯ 。同理, τ τ 的估计采用类似的方法。