变分推断

本文介绍了变分推断的基本概念及其数学推导过程,解释了为何使用变分推断及如何选择近似分布。

变分推断

变分推断就是用简单的分布q去近似复杂的分布p。

以上这句话是对变分推断最直接的理解。那么,为什么要选择用变分推断?

因为,大多数情况下后验分布很难求。如果后验概率好求解的话我们直接采用EM就可以。当后验分布难于求解的时候我们就希望选择一些简单的分布来近似这些复杂的后验分布。特别的,如果我们选择的q是指数族内的分布,更易于积分求解

Evidence Lower Bound(ELOB)

由贝叶斯公式可得 ln(p(X))=ln(p(X,Z)ln(p(Z|X))ln(p(X))=ln(p(X,Z)−ln(p(Z|X)) 继续推导如下:

ln(p(X))=ln(p(X,Z)ln(p(Z|X))ln(p(X))=ln(p(X,Z)−ln(p(Z|X))
ln(p(X))=ln(p(X,Z)ln(q(Z))(ln(p(Z|X))ln(q(Z)))ln(p(X))=ln(p(X,Z)−ln(q(Z))−(ln(p(Z|X))−ln(q(Z)))
ln(p(X))=ln(P(X,Z)q(Z))ln(p(Z|X)ln(q(Z))ln(p(X))=ln(P(X,Z)q(Z))−ln(p(Z|X)ln(q(Z))
q(Z)q(Z)为概率密度对其积分:
ln(p(X))=q(Z)ln(P(X,Z)q(Z))dZq(Z)ln(p(Z|X)ln(q(Z))dZln(p(X))=∫q(Z)ln(P(X,Z)q(Z))dZ−∫q(Z)ln(p(Z|X)ln(q(Z))dZ
ln(p(X))=q(Z)ln(p(X,Z))dZq(Z)lnq(Z)dZq(Z)ln(p(Z|X)ln(q(Z))dZln(p(X))=∫q(Z)ln(p(X,Z))dZ−∫q(Z)lnq(Z)dZ−∫q(Z)ln(p(Z|X)ln(q(Z))dZ

其中q(Z)ln(p(X,Z))dZq(Z)ln(q(Z))dZ∫q(Z)ln(p(X,Z))dZ−∫q(Z)ln(q(Z))dZ(q)L(q) ELOB ,q(Z)ln(p(Z|X)ln(q(Z))dZ∫q(Z)ln(p(Z|X)ln(q(Z))dZ(q//p)KL(q//p)

我们要做的就是不断更新q(Z)q(Z) 使得q(Z)q(Z) 不断的接近pp分布,这样他们的分布距离越小,Lower bound则越大。

另一个问题,如何选择q(Z)

q(Z)q(Z) 的选择

方式一: 选择各维度独立 q(Z)=Mi=1qi(Zi)q(Z)=∏i=1Mqi(Zi)

(q)=q(Z)ln(p(X,Z))dZq(Z)ln(q(Z))dZL(q)=∫q(Z)ln(p(X,Z))dZ−∫q(Z)ln(q(Z))dZ
=Mi=1qi(Zi)ln(p(X,Z))dZMi=1qi(Zi)lnMi=1qi(Zi)dZ=∏i=1Mqi(Zi)ln(p(X,Z))dZ−∫∏i=1Mqi(Zi)ln∏i=1Mqi(Zi)dZ

考虑第一项:
Mi=1qi(Zi)ln(p(X,Z))dZ∏i=1Mqi(Zi)ln(p(X,Z))dZ
=z1z2..zMMi=1qi(Zi)ln(p(X,Z))dz1dz2...dzM=∫z1∫z2..∫zM∏i=1Mqi(Zi)ln(p(X,Z))dz1dz2...dzM
=zjqj(Zj)(zij...Mijqi(Zi)lnp(X,Z)MijdZi)dZj=∫zjqj(Zj)(∫zi≠j...∫∏i≠jMqi(Zi)lnp(X,Z)∏i≠jMdZi)dZj
=zjqj(Zj)(zij...lnp(X,Z)Mijqi(Zi)dZi)dZj=∫zjqj(Zj)(∫zi≠j...∫lnp(X,Z)∏i≠jMqi(Zi)dZi)dZj
=zjqj(Zj)Eijln(p(X,Z))dZj=∫zjqj(Zj)Ei≠jln(p(X,Z))dZj

考虑第二项:
在推导第二项之前:
x1x2(f(x1)+f(x2))p(x1,x2)dx1dx2∫x1∫x2(f(x1)+f(x2))p(x1,x2)dx1dx2
=x1f(x1)dx1+x2f(x2)dx2=∫x1f(x1)dx1+∫x2f(x2)dx2

将其推广到n项,可以得到第二项
Mi=1qi(Zi)lnMi=1qi(Zi)dZ∫∏i=1Mqi(Zi)ln∏i=1Mqi(Zi)dZ
=Mi=1qi(Zi)Mi=1lnqi(Zi)dZ=∫∏i=1Mqi(Zi)∑i=1Mlnqi(Zi)dZ
=Mi=1ziqi(Zi)ln(q(zi)dZi=∑i=1M∫ziqi(Zi)ln(q(zi)dZi

若只关注第j 维度,第二项可记作:Zjqj(Zj)ln(qj(Zj))dZj+const.∫Zjqj(Zj)ln(qj(Zj))dZj+const.

由此可得
(qj)=zjqj(Zj)Eijln(p(X,Z))dZjZjqj(Zj)ln(qj(Zj))dZj+constL(qj)=∫zjqj(Zj)Ei≠jln(p(X,Z))dZj−∫Zjqj(Zj)ln(qj(Zj))dZj+const

该极值在KL散度为0时最大,因此更新公式为:
ln(qij(Zi))=Eijln(p(X,Z))ln(qi≠j∗(Zi))=Ei≠jln(p(X,Z))

方式二:指数家族分布

首先,要引出指数分布族的概念。它的标准表达式为
h(x)exp(T(x)TηA(η))h(x)exp(T(x)Tη−A(η))

其中 ηη是分布的自然参数(natural parameter)或典范参数(canonical parameter),T(x)T(x)叫做充分统计量(sufficient statistic),通常情况下T(x)=xT(x)=x, A(η)A(η)是对数分配函数(log partition function)。

对指数家族,首先给个公式EqT(x)=ηA(η)EqT(x)=∇ηA(η), 证明如下:
h(x)exp(T(x)TηA(η))=1∫h(x)exp(T(x)Tη−A(η))=1
η(h(x)exp(T(x)TηA(η))dx)=0∇η(∫h(x)exp(T(x)Tη−A(η))dx)=0
=> ηh(x)exp(T(x)TηA(η))dx=0∫∇ηh(x)exp(T(x)Tη−A(η))dx=0
=>h(x)exp(T(x)TηA(η))T(x)(h(x)exp(T(x)TηA(η))η(A(η))∫h(x)exp(T(x)Tη−A(η))T(x)−(∫h(x)exp(T(x)Tη−A(η))∇η(A(η))
第二项前面是个概率密度积分 为1
=>EqT(x)=ηA(η)EqT(x)=∇ηA(η)

同样的我们需要最大化ELBO,选择的q依然满足q(β,Z)=q(β)q(Z)q(β,Z)=q(β)q(Z), 更新时,fix某一个参数,计算如下

计算λλ 保留和ββ 相关的
(λ,ϕ)=EqZ,β[log(p(x,Z,β))]EqZ,β[log(q(Z,β))]L(λ,ϕ)=EqZ,β[log(p(x,Z,β))]−EqZ,β[log(q(Z,β))]
=EqZ,β[log(p(β|Z,x))+log(p(Z,x))]EqZ[log(q(Z)Eqβ[log(q(β)]=EqZ,β[log(p(β|Z,x))+log(p(Z,x))]−EqZ[log(q(Z)−Eqβ[log(q(β)] 去除于当前所求无关项目
=EqZ,β[log(p(β|Z,x))]Eqβ[log(q(β)]=EqZ,β[log(p(β|Z,x))]−Eqβ[log(q(β)]

将以上两部分利用指数家族分布 代换
=EqZ,β[logh(β)]+EqZ,β[TT(β)η(Z,x)]EqZ,β[Ag(η(Z,x))]EqZ,βlog(h(β))EqZ,β[TT(β)λ]+EqZ,β[Al(λ)]=EqZ,β[logh(β)]+EqZ,β[TT(β)η(Z,x)]−EqZ,β[Ag(η(Z,x))]−EqZ,βlog(h(β))−EqZ,β[TT(β)λ]+EqZ,β[Al(λ)]

将与λλ无关的去除可得
EqZ,β[TT(β)η(Z,x)]EqZ,β[TT(β)λ]+EqZ,β[Al(λ)]EqZ,β[TT(β)η(Z,x)]−EqZ,β[TT(β)λ]+EqZ,β[Al(λ)]

EqT(x)=ηA(η)EqT(x)=∇ηA(η) 带入,易得
λ=E(qϕ[ηg(x,Z,α)])λ=E(qϕ[ηg(x,Z,α)]) 即除当前参数以外的所有参数的期望。

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值