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