第14章 概率图模型--近似推断
2018-01-24 16:22
288 查看
精确推断方法通常需要很大的计算开销,因此在现实应用中近似推断方法更为常用。近似推断方法大致可分为两大类:第一类是采样(sampling),通过使用随机化方法完成近似;第二类是使用确定性近似完成近似推断,典型代表为变分推断(variational inference)。
采样法正是基于这个思路。具体来说,假定我们的目标是计算函数f(x)在概率密度函数p(x)下的期望
Ep[f]=∫f(x)p(x)dx(21)
则可根据p(x)抽取一组样本{x1,x2,...,xn},然后计算f(x)在这些样本上的均值
f^=1N∑i=1Nf(xi)(22)
以此来近似目标期望Ep[f]。若样本{x1,x2,...,xn}独立,基于大数定律,这种通过大量采样的办法就能获得较高的近似精度。问题的关键是如何采样。对概率图模型来说,就是如何高效地基于图模型所描述的概率分布来获取样本。
概率图模型中最常用的采样技术是马尔可夫链蒙特卡罗(Markov Chain Monte Carlo,简称MCMC)方法。给定连续变量x∈X的概率密度函数p(x),x在区间A中的概率可计算为
P(A)=∫Ap(x)dx(23)
若有函数:f:X↦R,则可计算f(x)的期望
p(f)=Ep[f(x)]=∫xf(x)p(x)dx(24)
若x不是单变量而是一个高维多元变量x,且服从一个非常复杂的分布,则对式(24)求积分通常很困难。为此,MCMC先构造出服从p分布的独立同分布随机变量x1,x2,...,xn,再得到式(24)的无偏估计
p˜(f)=\fra1N∑i=1Nf(xi)(25)
然而,若概率密度函数p(x)很复杂,则构造服从p分布的独立同分布样本也很困难。MCMC方法的关键就在于通过构造“平稳分布为p的马尔可夫链”来产生样本:若马尔可夫链运行时间足够长(即收敛到平稳状态),则此时产出的样本x近似服从于分布p。如何判断马尔可夫链达到平稳状态呢?假定平稳马尔可夫链T的状态转移概率(即从状态x转移到状态x′的概率)为T(x′|x),t时刻状态的分布为p(xt),则若在某个时刻马尔可夫链满足平稳条件
p(xt)T(xt−1|xt)=p(xt−1T(xt)|xt−1),(26)
则p(x)是该马尔可夫链的平稳分布,且马尔可夫链在满足该条件时已收敛到平稳状态。
也就是说,MCMC方法先设法构造一条马尔可夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链来产生符合后验分布的样本,并基于这些样本来进行估计。这里马尔可夫链转移概率的构造至关重要,不同的构造方法将产生不同的MCMC算法。
Metropolis-Hastings(简称MH)算法是MCMC的重要代表。它基于“拒绝采样”(reject sampling)来逼近平稳分布p。如图9所示,算法每次根据上一轮采样结果xt−1来采样获得候选状态样本x∗,但这个候选样本会以一定的概率被“拒绝”掉。假定从状态xt−1到状态x∗的转移概率为Q(x∗|xt−1)A(x∗|xt−1),其中Q(x∗|xt−1)是用户给定的先验概率,A(x∗|xt−1)是x∗被接受的概率。若x∗最终收敛到平稳状态,则根据式(26)有
p(xt−1)Q(x∗|xt−1)A(x∗|xt−1)=p(x∗)Q(xt−1|x∗)A(xt−−1|x∗),(27)
Metropolis-Hastings算法
输入:先验概率Q(x∗|xt−1).
过程:
1:初始化x0;
2:for t=1,2,... do
3:根据Q(x∗|xt−1)采样出候选样本x∗;
4:根据均匀分布从(0,1)范围内采样出阈值u;
5:if u≤A(x∗|xt−1) then
6:xt=x∗
7:else
8:xt=xt−1
9:end if
10:end for
11:return x1,x2,...
于是,为了达到平稳状态,只需将接受率设置为
A(x∗|xt−1)=min(1,p(x∗)Q(xt−1|x∗)p(xt−1)Q(x∗|xt−1))(28)
吉布斯采样(Gibbs sampling)有时被视为MH算法的特例,它也使用马尔可夫链获取样本,而该马尔可夫链的平稳分布也是采样的目标分布p(x)。具体来说,假定x={x1,x2,...,xn},目标分布为p(x),在初始化x的取值后,通过循环执行以下步骤来完成采样:
(1)随机或以某个次序选取某个变量xi;
(2)根据x中除xi外的变量的现有取值,计算条件概率p(xi|xi¯),其中xi¯={x1,x2,...,xi−1,xi+1,...,xn};
(3)根据p(xi|xi¯)对变量xi采样,用采样值代替原值。
在学习变分推断之前,我们先介绍概率图模型一种简洁的表示方法–盘式标记法(plate notation)[Buntine,1994]。图10给出了一个简单的例子。图10(a)表示N个变量x1,x2,...,xn}均依赖于其他变量z。在图10(b)中,相互对立的、由相同机制生成的多个变量被放在一个方框(盘)内,并在方框中标出类似变量重复出现的个数N;方框可以嵌套。通常用阴影标注出已知的、能观察到的变量,如图(10)中的变量x。在很多学习任务中,对属性变量使用盘式记法将使得图表示非常简洁。
图10 盘式记法的例示
在图10(b)中,所有能观察到的变量x的联合分布的概率密度函数是
p(x|θ)=πNi=1∑zp(xi,z|θ),(29)
所对应的对数似然函数为
lnp(x|θ)=∑i=1Nln{∑zp(xi,z|θ)},(30)
其中x={x1,x2,...,xn},θ是x与z服从的分布参数。
一般来说,图10所对应的推断和学习任务主要是由观察到的变量x来估计隐变量z和分布参数变量θ,即求解p(z|x,θ)和θ。
概率模型的参数估计通常以最大化对数似然函数为手段。对式(30)可使用EM算法:在E步,根据t时刻的参数θt对p(z|x,θt)进行推断,并计算联合似然函数p(x,z|θ);在M步,基于E步的结果进行最大化寻优,即对关于变量θ的函数Q(θ;θt)进行最大化从而求取
θt+1=argmaxQ(θ;θt)=argmax∑zp(z|x,θt)lnp(x,z|θ)(31)
式(31)中的Q(θ;θt)实际上是对数联合似然函数lnp(x,z|θ)在分布p(z|x,θt)下的期望,当分布p(z|x,θt)与变量z的真实后验分布相等时,Q(θ;θt)近似于对数似然函数。于是,EM算法最终可获得稳定的参数θ,而隐变量z的分布也能通过该参数获得。
需注意的是,p(z|x,θt)未必是隐变量z服从的真实分布,而只是一个近似分布。若将这个近似分布用q(z)表示,则不难验证
lnp(x)=L(q)+KL(q||p),(32)
其中
L(q)=∫q(z)ln{p(x,z)q(z)}dz(33)
KL(q||p)=−∫q(z)lnp(z|x)q(z)dz(34)
然而在现实任务中,E步对p(z|x,θt)的推断很可能因z模型复杂而难以进行,此时可借助变分推断。通常假设z服从分布
q(z)=∏i=1Mqi(zi),(35)
即假设复杂的多变量z可拆解为一系列相互独立的多变量zi。更重要的是,可以令qi分布相对简单或有很好的结构,例如假设qi为指数族(exponential family)分布,此时有
L(q)=∫∏iqi{lnp(x,z)−∑ilnqi}dz=∫qj{∫lnp(x,z)∏i≠jqidzi}dzj−∫qjlnqjdzj+const=∫qjlnp˜(x,zj)dzj−∫qjlnqjdzj+const,(36)
其中
lnp˜(x,zj)=Ei≠j[lnp(x,z)]+const,(37)
Ei≠j[lnp(x,z)]=∫lnp(x,z)∏i≠jqidzi.(38)
我们关心的是qj,因此可固定qi≠j再对L(q)进行最大化,可发现式(36)等于−KL(qj||∏p(x,zj)),即当qj=∏p(x,zj)时L(q)最大。于是可知变量子集zj所服从的最优分布q∗j应满足
lnq∗j(zj)=Ei≠j[lnp(x,z)]+const,(39)
即
q∗j(zj)=exp(Ei≠j[lnp(x,z)])∫exp(Ei≠j[lnp(x,z)])dzj.(40)
换言之,在式(35)这个假设下,变量子集zj最接近真实情形的分布由式(40)给出。
显然,基于式(35)的假设,通过恰当地分割独立变量子集zj并选择qi服从的分布,Ei≠j[lnp(x,z)]往往有闭式解,这使得基于式(40)能高效地对隐变量z进行推断。事实上,由式(38)可看出,对变量zj分布q∗j进行估计时融合了zj之外的其他zi≠j的信息,这是通过联合似然函数lnp(x,z)在zj之外的隐变量分布上求期望得到的,因此亦称“平均场(mean field)”方法。
在实践中使用变分法时,最重要的是考虑如何对隐变量进行拆解,以及假设各种变量子集服从何种分布,在此基础上套用式(40)的结论再结合EM算法即可进行概率图模型的推断和参数估计。显然,若隐变量的拆解或变量子集的分布假设不当,将会导致变分法效率低、效果差。
1 MCMC采样
在很多任务中,我们关心某些概率分布并非因为对这些概率分布本身感兴趣,而是要基它们计算某些期望,并且还能进一步基于这些期望做出决策。例如对图7(a)的贝叶斯网,进行推断的目的可能是为了计算变量x5的期望。若直接计算或逼近这个期望比推断概率分布更容易,则直接操作无疑将使推断问题的求解更为高效。采样法正是基于这个思路。具体来说,假定我们的目标是计算函数f(x)在概率密度函数p(x)下的期望
Ep[f]=∫f(x)p(x)dx(21)
则可根据p(x)抽取一组样本{x1,x2,...,xn},然后计算f(x)在这些样本上的均值
f^=1N∑i=1Nf(xi)(22)
以此来近似目标期望Ep[f]。若样本{x1,x2,...,xn}独立,基于大数定律,这种通过大量采样的办法就能获得较高的近似精度。问题的关键是如何采样。对概率图模型来说,就是如何高效地基于图模型所描述的概率分布来获取样本。
概率图模型中最常用的采样技术是马尔可夫链蒙特卡罗(Markov Chain Monte Carlo,简称MCMC)方法。给定连续变量x∈X的概率密度函数p(x),x在区间A中的概率可计算为
P(A)=∫Ap(x)dx(23)
若有函数:f:X↦R,则可计算f(x)的期望
p(f)=Ep[f(x)]=∫xf(x)p(x)dx(24)
若x不是单变量而是一个高维多元变量x,且服从一个非常复杂的分布,则对式(24)求积分通常很困难。为此,MCMC先构造出服从p分布的独立同分布随机变量x1,x2,...,xn,再得到式(24)的无偏估计
p˜(f)=\fra1N∑i=1Nf(xi)(25)
然而,若概率密度函数p(x)很复杂,则构造服从p分布的独立同分布样本也很困难。MCMC方法的关键就在于通过构造“平稳分布为p的马尔可夫链”来产生样本:若马尔可夫链运行时间足够长(即收敛到平稳状态),则此时产出的样本x近似服从于分布p。如何判断马尔可夫链达到平稳状态呢?假定平稳马尔可夫链T的状态转移概率(即从状态x转移到状态x′的概率)为T(x′|x),t时刻状态的分布为p(xt),则若在某个时刻马尔可夫链满足平稳条件
p(xt)T(xt−1|xt)=p(xt−1T(xt)|xt−1),(26)
则p(x)是该马尔可夫链的平稳分布,且马尔可夫链在满足该条件时已收敛到平稳状态。
也就是说,MCMC方法先设法构造一条马尔可夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链来产生符合后验分布的样本,并基于这些样本来进行估计。这里马尔可夫链转移概率的构造至关重要,不同的构造方法将产生不同的MCMC算法。
Metropolis-Hastings(简称MH)算法是MCMC的重要代表。它基于“拒绝采样”(reject sampling)来逼近平稳分布p。如图9所示,算法每次根据上一轮采样结果xt−1来采样获得候选状态样本x∗,但这个候选样本会以一定的概率被“拒绝”掉。假定从状态xt−1到状态x∗的转移概率为Q(x∗|xt−1)A(x∗|xt−1),其中Q(x∗|xt−1)是用户给定的先验概率,A(x∗|xt−1)是x∗被接受的概率。若x∗最终收敛到平稳状态,则根据式(26)有
p(xt−1)Q(x∗|xt−1)A(x∗|xt−1)=p(x∗)Q(xt−1|x∗)A(xt−−1|x∗),(27)
Metropolis-Hastings算法
输入:先验概率Q(x∗|xt−1).
过程:
1:初始化x0;
2:for t=1,2,... do
3:根据Q(x∗|xt−1)采样出候选样本x∗;
4:根据均匀分布从(0,1)范围内采样出阈值u;
5:if u≤A(x∗|xt−1) then
6:xt=x∗
7:else
8:xt=xt−1
9:end if
10:end for
11:return x1,x2,...
于是,为了达到平稳状态,只需将接受率设置为
A(x∗|xt−1)=min(1,p(x∗)Q(xt−1|x∗)p(xt−1)Q(x∗|xt−1))(28)
吉布斯采样(Gibbs sampling)有时被视为MH算法的特例,它也使用马尔可夫链获取样本,而该马尔可夫链的平稳分布也是采样的目标分布p(x)。具体来说,假定x={x1,x2,...,xn},目标分布为p(x),在初始化x的取值后,通过循环执行以下步骤来完成采样:
(1)随机或以某个次序选取某个变量xi;
(2)根据x中除xi外的变量的现有取值,计算条件概率p(xi|xi¯),其中xi¯={x1,x2,...,xi−1,xi+1,...,xn};
(3)根据p(xi|xi¯)对变量xi采样,用采样值代替原值。
2 变分推断
变分推断通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。在学习变分推断之前,我们先介绍概率图模型一种简洁的表示方法–盘式标记法(plate notation)[Buntine,1994]。图10给出了一个简单的例子。图10(a)表示N个变量x1,x2,...,xn}均依赖于其他变量z。在图10(b)中,相互对立的、由相同机制生成的多个变量被放在一个方框(盘)内,并在方框中标出类似变量重复出现的个数N;方框可以嵌套。通常用阴影标注出已知的、能观察到的变量,如图(10)中的变量x。在很多学习任务中,对属性变量使用盘式记法将使得图表示非常简洁。
图10 盘式记法的例示
在图10(b)中,所有能观察到的变量x的联合分布的概率密度函数是
p(x|θ)=πNi=1∑zp(xi,z|θ),(29)
所对应的对数似然函数为
lnp(x|θ)=∑i=1Nln{∑zp(xi,z|θ)},(30)
其中x={x1,x2,...,xn},θ是x与z服从的分布参数。
一般来说,图10所对应的推断和学习任务主要是由观察到的变量x来估计隐变量z和分布参数变量θ,即求解p(z|x,θ)和θ。
概率模型的参数估计通常以最大化对数似然函数为手段。对式(30)可使用EM算法:在E步,根据t时刻的参数θt对p(z|x,θt)进行推断,并计算联合似然函数p(x,z|θ);在M步,基于E步的结果进行最大化寻优,即对关于变量θ的函数Q(θ;θt)进行最大化从而求取
θt+1=argmaxQ(θ;θt)=argmax∑zp(z|x,θt)lnp(x,z|θ)(31)
式(31)中的Q(θ;θt)实际上是对数联合似然函数lnp(x,z|θ)在分布p(z|x,θt)下的期望,当分布p(z|x,θt)与变量z的真实后验分布相等时,Q(θ;θt)近似于对数似然函数。于是,EM算法最终可获得稳定的参数θ,而隐变量z的分布也能通过该参数获得。
需注意的是,p(z|x,θt)未必是隐变量z服从的真实分布,而只是一个近似分布。若将这个近似分布用q(z)表示,则不难验证
lnp(x)=L(q)+KL(q||p),(32)
其中
L(q)=∫q(z)ln{p(x,z)q(z)}dz(33)
KL(q||p)=−∫q(z)lnp(z|x)q(z)dz(34)
然而在现实任务中,E步对p(z|x,θt)的推断很可能因z模型复杂而难以进行,此时可借助变分推断。通常假设z服从分布
q(z)=∏i=1Mqi(zi),(35)
即假设复杂的多变量z可拆解为一系列相互独立的多变量zi。更重要的是,可以令qi分布相对简单或有很好的结构,例如假设qi为指数族(exponential family)分布,此时有
L(q)=∫∏iqi{lnp(x,z)−∑ilnqi}dz=∫qj{∫lnp(x,z)∏i≠jqidzi}dzj−∫qjlnqjdzj+const=∫qjlnp˜(x,zj)dzj−∫qjlnqjdzj+const,(36)
其中
lnp˜(x,zj)=Ei≠j[lnp(x,z)]+const,(37)
Ei≠j[lnp(x,z)]=∫lnp(x,z)∏i≠jqidzi.(38)
我们关心的是qj,因此可固定qi≠j再对L(q)进行最大化,可发现式(36)等于−KL(qj||∏p(x,zj)),即当qj=∏p(x,zj)时L(q)最大。于是可知变量子集zj所服从的最优分布q∗j应满足
lnq∗j(zj)=Ei≠j[lnp(x,z)]+const,(39)
即
q∗j(zj)=exp(Ei≠j[lnp(x,z)])∫exp(Ei≠j[lnp(x,z)])dzj.(40)
换言之,在式(35)这个假设下,变量子集zj最接近真实情形的分布由式(40)给出。
显然,基于式(35)的假设,通过恰当地分割独立变量子集zj并选择qi服从的分布,Ei≠j[lnp(x,z)]往往有闭式解,这使得基于式(40)能高效地对隐变量z进行推断。事实上,由式(38)可看出,对变量zj分布q∗j进行估计时融合了zj之外的其他zi≠j的信息,这是通过联合似然函数lnp(x,z)在zj之外的隐变量分布上求期望得到的,因此亦称“平均场(mean field)”方法。
在实践中使用变分法时,最重要的是考虑如何对隐变量进行拆解,以及假设各种变量子集服从何种分布,在此基础上套用式(40)的结论再结合EM算法即可进行概率图模型的推断和参数估计。显然,若隐变量的拆解或变量子集的分布假设不当,将会导致变分法效率低、效果差。
相关文章推荐
- 概率图模型中精确和近似推理算法
- 概率图模型(PGM)学习笔记(三)模式推断与概率图流
- 概率图模型二之条件随机场与学习与推断
- 概率图模型之精确推断(文末福利)
- 概率图模型推断之Belief Propagation
- 概率图模型(PGM,Probability Graphical Model)推断简述
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
- 概率图模型上的推断算法汇总
- 转--Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
- 第14章 学习与推断
- 第14章 概率图模型--话题模型
- 近似推断(Approximate Inference)
- 概率图模型(PGM)学习笔记(三)模式推断与概率图流
- 第14章 概率图模型-隐马尔可夫模型
- 第14章、布局Layouts之FrameLayout框架布局(从零开始学Android)
- 5.4.3.2 F# 中的类型推断
- 概率图模型(PGM)学习笔记(二)贝叶斯网络-语义学与因子分解
- 最好的概率图模型简介
- C++学习笔记(第14章->代码重用->类模板)
- CodeForces 464D World of Darkraft - 2 概率DP 近似计算