变分推断和指数族分布

一、变分推断基础

首先,对数先验概率有:

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))dZq(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))dZq(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))dZq(Z)ln(q(Z))dZ=i=1mqi(Zi)ln(p(X,Z))dZi=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=Z1Zmi=1mqi(Zi)ln(p(X,Z))dZ1dZmZjqj(Zj)(Zijln(p(X,Z))ijmqi(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)(Emijqi(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)(Emijqi(Zi)[ln(p(X,Z))])dZjZjqj(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))=Emijqi(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(Emijqi(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 ) )

因此,我们可以找到一个近似的最优的 qj(Zj) q j ∗ ( Z j ) ,使得:

ln(qj(Zj))=Emijqi(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η[logi=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)=0xη(h(x)exp(T(x)TηA(η)))dx=0x(h(x)exp(T(x)TηA(η)))(T(x)ηA(η))dx=0x(h(x)exp(T(x)TηA(η)))T(x)dxx(h(x)exp(T(x)TηA(η)))ηA(η)dx=0Ep(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]Th(β)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(x22xμ+μ22σ212ln(2πσ2))=exp([x,x2][μσ2,12σ2]Tμ22σ212ln(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σ212ln(2πσ2))=exp[x,x2][η1,η2]T(η12η2)22(12η2)12ln(2π(12η2))exp(T(x)Tη(η214η212ln(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η212ln(2η2) A ( η ) = − η 1 2 4 η 2 − 1 2 l n ( − 2 η 2 )

我们利用性质一的结论:

A(η)η1A(η)η2=η12η2(η12η2)212η2=[μμ2+σ2]=ni=1xiNni=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

这个结果显然和我们直接求高斯分布的极大似然的结论是一样的,但直接求明显求解过程要复杂很多。

三、变分推断与指数族分布

当先验和后验都是指数族分布时,我们可以更容易地找到近似后验分布的 qj(Zj) q j ∗ ( Z j ) ;下面我们来看看这个过程:

本文第一部分已经得到 ELBO:

L(q)=q(Z)ln(p(X,Z))dZq(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 .

你可能感兴趣的:(机器学习)