一、变分推断基础
首先,对数先验概率有:
ln p(X)=ln(p(X,Z)p(Z|X))=ln(p(X,Z)q(Z)⋅q(Z)p(Z|X))=ln(p(X,Z)q(Z))+ln(q(Z)p(Z|X))(1)(2)(3)
⇒ln(p(X))=∫q(Z)ln(p(X,Z)q(Z))dZ+∫q(Z)ln(q(Z)p(Z|X))dZ=∫q(Z)ln(p(X,Z))dZ−∫q(Z)ln(q(Z))dZ+∫q(z)ln(q(Z)p(Z|X))dZ=L(q)+KL(q||p)(4)(5)(6)(7)
上面的式子 L(q) 里的变量是一个函数,我们通过改变函数使得函数的函数最大化,我们称这种研究思想为 变分;
由于 KL(q||p)≥0 ,故 ln(p(X))≥L(q),我们给上面两项命名如下:
Evidence Lower Bound (ELOB):L(q)=∫q(Z)ln(p(X,Z))dZ−∫q(Z)ln(q(Z))dZ
KL divergence:KL(q||p)=∫q(z)ln(q(Z)p(Z|X))dZ
有时候真实的后验分布非常复杂,我们想要利用简单的分布(我们知道这个分布的期望,极大值等)来近似这个复杂的后验分布,从而使得我们可以更加容易地进行求解。因此我们通过最小化 KL 散度使得 我们自己定的 q(Z) 尽可能地逼近后验分布 p(Z|X) (从下图可以较直观地看出来这个过程,其中绿色分布为我们想求解的后验分布,蓝色分布为我们已知较简单地分布 q(Z),通过不断修改 q(Z) 中的参数,使得它越来越逼近我们想求解的后验分布)。

Note: Picture source
从上面的式子,我们知道,最小化 KL 散度,等价于最大化 ELBO。下面将一步步介绍如何最大化 ELBO L(q):
q(Z) 的选择
假设我们选择的 q(Z) 满足下面的式子:
q(Z)=∏i=1mqi(Zi)
将这个 q(Z) 代换到 ELBO中,我们有:
L(q)=∫q(Z)ln(p(X,Z))dZ−∫q(Z)ln(q(Z))dZ=∫∏i=1mqi(Zi)ln(p(X,Z))dZ−∫∏i=1mqi(Zi)∑i=1mln(qi(Zi))dZ(8)(9)(10)
下面我们对这个式子进行化简,先看上式第一项:
(part 1)==∫∏i=1mqi(Zi)ln(p(X,Z))dZ=∫Z1…∫Zm∏i=1mqi(Zi)ln(p(X,Z))dZ1…dZm∫Zjqj(Zj)(∫Zi≠j…∫ln(p(X,Z))∏i≠jmqi(Zi)dZi)dZj(11)(12)(13)
我们只关注第 j 项的情况下,可以写成如下形式:
(part 1)=∫Zjqj(Zj)(E∏mi≠jqi(Zi)[ln(p(X,Z))])dZj
第二项,可以作如下化简:
(part 2)=∫∏i=1mqi(Zi)∑i=1mln(qi(Zi))dZ=∑i=1m(∫Ziqi(Zi)ln(qi(Zi))dZi)(14)(15)
我们只关注第 j 项的情况下,可以写成如下形式:
(part 2)=∫Zjqj(Zj)ln(qj(Zj))dZj+const
const 是不含 Zj 的那些项。
结合两部分,我们代入 ELOB 中,得到:
L(q)=∫Zjqj(Zj)(E∏mi≠jqi(Zi)[ln(p(X,Z))])dZj−∫Zjqj(Zj)ln(qj(Zj))dZj+const
作如下记号:
ln(p˜j(X,Zj))=E∏mi≠jqi(Zi)[ln(p(X,Z))]
这样我们就可以将 ELOB 表示成如下:
L(q)=∫Zjqj(Zj)ln[p˜j(X,Zj)qj(Zj)]+const
由上式,最大化 L(q),等价于最小化 KL(E∏mi≠jqi(Zi)[ln(p(X,Z))]||qj(Zj))
因此,我们可以找到一个近似的最优的 q∗j(Zj),使得:
ln(q∗j(Zj))=E∏mi≠jqi(Zi)[ln(p(X,Z))]
二、指数族分布(Exponential Family distributions )
大部分的分布我们会去寻找它是否能够根据它的 自然参数 写成指数族分布的形式(因为我们希望分布是类似指数族分布这样具有共轭分布、容易得到解析解的分布形式 ):
p(x|η)=h(x)exp(T(x)T⋅η−A(η))
其中,η 为自然参数(nature parameter),T(y) 为 sufficient statistic, A(η) 为 log normalizer ;
其中 log normalizer 具有归一化的作用,因为:
∫xh(x)exp(T(x)T)exp(A(η))=1
指数族分布的性质(优势)
1、A′(η)=∑ni=1T(xi)N
证:
=argmaxηargmaxη[logP(X|η)]=argmaxη[log∏i=1nP(X|η)][log(∏i=1nk(xi)exp(∑i=1nT(xi)T⋅η−nA(η)))]=argmaxη[∑i=1nT(xi)T⋅η−nA(η)](16)(17)(18)(19)
⇒∂(∑ni=1T(xi)T⋅η−nA(η))∂η=∑i=1nT(xi)−nA′(η)=0
⇒A′(η)=∑ni=1T(xi)N
2、Ep(X|η)[T(X)]=▽ηA(η)
∫xh(x)exp(T(x)Tη−A(η))dx=1⇒▽η(∫xh(x)exp(T(x)Tη−A(η))dx)=0⇒∫x▽η(h(x)exp(T(x)Tη−A(η)))dx=0⇒∫x(h(x)exp(T(x)Tη−A(η)))(T(x)−▽ηA(η))dx=0⇒∫x(h(x)exp(T(x)Tη−A(η)))T(x)dx−∫x(h(x)exp(T(x)Tη−A(η)))▽ηA(η)dx=0⇒Ep(X|η)[T(X)]=▽ηA(η)(20)(21)(22)(23)(24)(25)
(注意:性质二和性质一是不一样的,从证明可以很明显看出来)
3、指数族分布具有共轭先验
由贝叶斯公式,我们有:
p(β|X,Z,α)∝p(X,Z|β)p(β)=h(X,Z)exp(T(X,Z)Tβ−Al(β))⋅h(β)exp(T(β)Tα−A(α))⇒let T(β)=[β,−Al(β)]T ,α=[α1,α2]T∝h(β)exp(T(X,Z)Tβ−Al(β)+α1β−α2Al(β))=h(β)exp[(T(X,Z)+α1)β−(1+α2)Al(β)]=h(β)exp[T(β)T⋅[α1~α2~]](26)(27)(28)(29)(30)(31)(32)
因此,当先验分布的 sufficient statistic 的第二项取为 −Al(β),即似然函数的 log normalizer 时,它和后验分布具有相同的分布,只是参数不同而已。
高斯分布(1维):自然参数表达
N(x;μ,σ2)=(2πσ2)−12e−(x−μ)22σ2=exp(−x2−2xμ+μ22σ2−12ln(2πσ2))=exp([x,x2]⋅[μσ2,−12σ2]T−μ22σ2−12ln(2πσ2))(33)(34)(35)
其中,T(x)=[x,x2],η=[η1,η2]T=[μσ2,−12σ2]T;
从中我们可以反解出 μ,σ2, σ2=−12η2;μ=−η12η2
于是,我们可以写出高斯分布的自然参数表达如下:
N~(x;η)==exp([x,x2]⋅[η1,η2]T−μ22σ2−12ln(2πσ2))=exp⎛⎝[x,x2]⋅[η1,η2]T−(−η12η2)22(−12η2)−12ln(2π(−12η2))⎞⎠exp(T(x)Tη−(−η214η2−12ln(−2η2))−12ln(2π))(36)(37)(38)
其中,A(η)=−η214η2−12ln(−2η2)
我们利用性质一的结论:
⎡⎣⎢∂A(η)∂η1∂A(η)∂η2⎤⎦⎥=⎡⎣−η12η2(−η12η2)2−12η2⎤⎦=[μμ2+σ2]=⎡⎣∑ni=1xiN∑ni=1x2iN⎤⎦
即,μ=∑ni=1xiN,σ2=∑ni=1x2iN−μ2=∑ni=1(xi−μ)2N
这个结果显然和我们直接求高斯分布的极大似然的结论是一样的,但直接求明显求解过程要复杂很多。
三、变分推断与指数族分布
当先验和后验都是指数族分布时,我们可以更容易地找到近似后验分布的 q∗j(Zj);下面我们来看看这个过程:
本文第一部分已经得到 ELBO:
L(q)=∫q(Z)ln(p(X,Z))dZ−∫q(Z)ln(q(Z))dZ(39)
我们把 Z 分为两部分: Z={Z,β},代入上式,得到:
L(q)=Eq(Z,β)[log p(X,Z,β|α)]−Eq(Z,β)[log q(Z,β)](40)
首先,我们把后验分布写出指数族分布的形式,并且用 q 去近似它:
p(β|X,Z,α)=h(β) exp(T(β)T⋅ηg(X,Z,α)−Ag(ηg(X,Z,α)))
q(β|λ)=h(β) exp(T(β)Tλ−Ag(λ))
以及,
p(Z|X,β)=h(Z) exp(T(Z)T⋅ηl(X,β)−Al(ηl(X,β)))
q(Z|Φ)=h(Z) exp(T(Z)TΦ−Al(Φ))
则我们可以通过改变 λ,Φ,来改变 ELBO:
L(λ,Φ)=Eq(Z,β)[log p(X,Z,β|α)]−Eq(Z,β)[log q(Z,β)](41)
其中,为了简单,我们选取 q(Z,β)=q(Z)q(β)
1、固定 Φ,优化 λ
L(λ)=Eq[log p(X,Z,β|α)]−Eq[log q(Z,β)]=Eq[log p(β|X,Z,α)]+Eq[log p(X,Z)]−Eq[log q(Z)]−Eq[log q(β)]=Eq[log p(β|X,Z,α)]−Eq[log q(β)]+const=Eq[log(h(β) exp(T(β)T⋅ηg(X,Z,α)−Ag(ηg(X,Z,α))))]−Eq[log q(β)]+const=Eq[log(h(β))+Eq[T(β)T⋅ηg(X,Z,α)]−Eq[log (h(β) exp(T(β)Tλ−Ag(λ)))]+const=Eq(Z|Φ)[ηg(X,Z,α)]Eq(β|λ)[T(β)]−λEq[T(β)]+Ag(λ)+const(42)(43)(44)(45)(46)(47)(48)(49)(50)
由指数族分布的性质二:
Ep(X|η)[T(X)]=▽ηA(η)
代入上式,则有:
L(λ)=Eq(Z|Φ)[ηg(X,Z,α)]▽λAg(λ)−λ▽λAg(λ)+Ag(λ)+const
最大化 L(λ),我们对其求导并令结果为0:
L(λ)=Eq(Z|Φ)[ηg(X,Z,α)]▽2λAg(λ)−▽λAg(λ)−λ▽2λAg(λ)+▽λAg(λ)+const=Eq(Z|Φ)[ηg(X,Z,α)]▽2λAg(λ)−λ▽2λAg(λ)=▽2λAg(λ)(Eq(Z|Φ)[ηg(X,Z,α)]−λ)=0(51)(52)(53)(54)
由于 ▽2λAg(λ)≠0,因此我们得到:
λ=Eq(Z|Φ)[ηg(X,Z,α)]
2、固定 λ,优化 Φ
同上面的推到一样,我们可以得到类似的形式:
Φ=Eq(β|λ)[ηl(X,β)]
注意这里只选取了两个变量 λ,Φ;如果有多个变量的情况,应该用除了本身的分布以外剩下的所有分布的乘积来求期望。通过不断地迭代上面两个公式,不断地更新参数,直至收敛。
四、参考资料
[1] 李航《统计学习方法》
[2] 徐亦达教授的自视频
[3] machine-learning-notes.Professor Richard Xu .