贝叶斯网专题9:变分推理-朴素平均场方法

第一部分:贝叶斯网基础

1.1 信息论基础

1.2 贝叶斯网基本概念

1.3 变量独立性的图论分析

第二部分:贝叶斯网推理

2.1 概率推理中的变量消元方法

2.2 团树传播算法

2.3 近似推理

2.3.1 蒙特卡洛方法

2.3.1.1 重要性抽样法
2.3.1.2 马尔可夫蒙特卡洛抽样法(MCMC)

2.3.2 变分推理

上一节我们介绍了利用MCMC抽样进行贝叶斯网后验概率推理的方法,其是一种随机近似算法,存在的缺点是抽样收敛速度慢,马尔可夫链往往需要花费较多步迭代才能趋于平稳分布,且当贝叶斯网中存在极端概率0或1时,无法保证马尔可夫链存在平稳分布。
相对于基于抽样的随机近似方法,变分法是另一类具有确定性的近似方法。该方法借助一个更简单的分布去逼近待推理的复杂后验分布,比如朴素平均场方法利用一个变量间都相互独立的联合分布来逼近后验分布,朴素则意味着变量间的独立性。
如何求解这样的变分分布呢?我们知道,概率分布本质是一类满足归一化条件的函数,我们可以通过施加独立性条件使得变分分布具有易于推理的简单形式,并从这些具有简单形式的函数中寻找一个最逼近后验分布的函数,这其实是泛函问题。其中有两个问题需要解决,一是如何度量变分分布与后验分布之间的距离,二是如何求解该距离的极值点和极值。在介绍朴素平均场这一具体方法之前,我们先介绍泛函中具有更普遍意义的变分原理。

2.3.2.1 变分原理
2.3.2.1.1 问题来源

变分与微分相对应的,变分针对的是泛函,而微分针对的是普通函数。泛函和普通函数的区别在于,普通函数是从数域到数域的映射,而泛函是从函数域到数域的映射。
泛函最早起源于最速降曲线问题,比该问题更简单的是求两点之间最短曲线的问题。我们以后者为例,来介绍泛函求极值的变分原理。
两点间的最短曲线显然是直线,这是我们的常识,但如何严格推导这一结论呢?
首先我们对这一问题进行建模。设 P 1 ( x 1 , y 1 ) , P 2 ( x 2 , y 2 ) P_1(x_1,y_1),P_2(x_2,y_2) P1(x1,y1),P2(x2,y2)是平面上给定的两点, y ( x ) y(x) y(x)为连接两点的任意曲线。于是,该曲线的长度为:
L ( y ) = ∫ x 1 x 2 ( d x ) 2 + ( d y ) 2 = ∫ x 1 x 2 1 + y ′ 2 d x L(y)=\int_{x_1}^{x_2}\sqrt{(dx)^2+(dy)^2}=\int_{x_1}^{x_2}\sqrt{1+y'^2}dx L(y)=x1x2(dx)2+(dy)2 =x1x21+y2 dx
连接 P 1 , P 2 P_1,P_2 P1,P2两点的曲线有无数条,每条曲线都有一个 L L L值与之对应。在上式中, y ( x ) y(x) y(x)称为自变函数, L ( y ) L(y) L(y)是依赖于自变函数的函数,称为泛函。满足边界条件 y ( x 1 ) = y 1 , y ( x 2 ) = y 2 y(x_1)=y_1,y(x_2)=y_2 y(x1)=y1,y(x2)=y2的函数 y y y称为容许函数,我们需要从这些 y y y中找出使得 L L L最小的那条。
对于这类问题,我们可以概括出更一般的框架,即求解泛函:
J ( y ) = ∫ x 1 x 2 F ( x , y , y ′ ) d x J(y)=\int_{x_1}^{x_2}F(x,y,y')dx J(y)=x1x2F(x,y,y)dx
在边界条件 y ( x 1 ) = y 1 , y ( x 2 ) = y 2 y(x_1)=y_1,y(x_2)=y_2 y(x1)=y1,y(x2)=y2的极小值问题。其中, J ( y ) J(y) J(y)称为最简单的积分形式泛函,简称最简泛函,被积函数 F F F称为拉格朗日函数

2.3.2.1.2 变分分析

微分是解决函数求极值问题,变分则是解决泛函求极值问题。下面给出变分的定义。
假设函数 y ( x ) y(x) y(x)是泛函 L ( y ) L(y) L(y)取极小值时对应的极小值点。邻近于 y ( x ) y(x) y(x)的任意容许函数 y ^ ( x ) \hat{y}(x) y^(x)可表示为如下形式:
y ^ ( x ) = y ( x ) + ϵ η ( x ) \hat{y}(x)=y(x)+\epsilon\eta(x) y^(x)=y(x)+ϵη(x)
其中 ϵ \epsilon ϵ是任意小参数,而 η ( x ) \eta(x) η(x)为边界值为0的任意函数。当 x x x固定时,容许函数 y ^ ( x ) \hat{y}(x) y^(x) y ( x ) y(x) y(x)之差 δ y \delta y δy称为泛函自变函数的变分,即:
δ y = y ^ ( x ) − y ( x ) = ϵ η ( x ) \delta y=\hat{y}(x)-y(x)=\epsilon\eta(x) δy=y^(x)y(x)=ϵη(x)
类似地,容许函数 y ^ ( x ) \hat{y}(x) y^(x)的斜率与 y ( x ) y(x) y(x)的斜率之差 δ y ′ \delta y' δy称为泛函自变函数斜率的变分,即:
δ y ′ = y ^ ′ ( x ) − y ′ ( x ) = ϵ η ′ ( x ) \delta y'=\hat{y}'(x)-y'(x)=\epsilon\eta'(x) δy=y^(x)y(x)=ϵη(x)
应该注意 δ y \delta y δy与函数 y ( x ) y(x) y(x)的微分 d y dy dy之间的差别, d y dy dy是自变量 x x x的改变量 d x dx dx引起的函数 y ( x ) y(x) y(x)的无穷小增量,对应于泛函变分 δ J ( y ) \delta J(y) δJ(y)。而变分 δ y \delta y δy y ( x ) y(x) y(x)的任意微小改变量,其应该与 d x dx dx对应。
设泛函增量为:
Δ J = ∫ x 1 x 2 F ( x , y ^ , y ^ ′ ) d x − ∫ x 1 x 2 F ( x , y , y ′ ) d x \Delta J=\int_{x_1}^{x_2}F(x,\hat y,\hat y')dx-\int_{x_1}^{x_2}F(x,y,y')dx ΔJ=x1x2F(x,y^,y^)dxx1x2F(x,y,y)dx
对上式第一项按泰勒级数展开:
∫ x 1 x 2 F ( x , y ^ , y ^ ′ ) d x = ∫ x 1 x 2 F ( x , y + δ y , y ′ + δ y ′ ) d x = ∫ x 1 x 2 F ( x , y , y ′ ) d x + ∫ x 1 x 2 ( ∂ F ∂ y δ y + ∂ F ∂ y ′ δ y ′ ) d x + 1 2 ! ∫ x 1 x 2 ( ∂ 2 F ∂ y 2 ( δ y ) 2 + ∂ 2 F ∂ y ∂ y ′ δ y δ y ′ + ∂ 2 F ∂ y ′ 2 ( δ y ′ ) 2 ) d x + ⋯ \begin{aligned} \int_{x_1}^{x_2}F(x,\hat y,\hat y')dx=&\int_{x_1}^{x_2}F(x,y+\delta y,y'+\delta y')dx\\ =&\int_{x_1}^{x_2}F(x,y,y')dx\\ &+\int_{x_1}^{x_2}(\frac{\partial F}{\partial y}\delta y+\frac{\partial F}{\partial y'}\delta y')dx\\ &+\frac{1}{2!}\int_{x_1}^{x_2}(\frac{\partial^2F}{\partial y^2}(\delta y)^2+\frac{\partial^2F}{\partial y\partial y'}\delta y\delta y'+\frac{\partial^2F}{\partial y'^2}(\delta y')^2)dx\\ &+\cdots \end{aligned} x1x2F(x,y^,y^)dx==x1x2F(x,y+δy,y+δy)dxx1x2F(x,y,y)dx+x1x2(yFδy+yFδy)dx+2!1x1x2(y22F(δy)2+yy2Fδyδy+y22F(δy)2)dx+
记泛函的各阶变分为:
δ J = ∫ x 1 x 2 ( ∂ F ∂ y δ y + ∂ F ∂ y ′ δ y ′ ) d x δ 2 J = ∫ x 1 x 2 ( ∂ 2 F ∂ y 2 ( δ y ) 2 + ∂ 2 F ∂ y ∂ y ′ δ y δ y ′ + ∂ 2 F ∂ y ′ 2 ( δ y ′ ) 2 ) d x ⋯ δ k J = ∫ x 1 x 2 ( δ y ∂ ∂ y + δ y ′ ∂ ∂ y ′ ) ( k ) F d x \begin{aligned} \delta J&=\int_{x_1}^{x_2}(\frac{\partial F}{\partial y}\delta y+\frac{\partial F}{\partial y'}\delta y')dx\\ \delta^2J&=\int_{x_1}^{x_2}(\frac{\partial^2F}{\partial y^2}(\delta y)^2+\frac{\partial^2F}{\partial y\partial y'}\delta y\delta y'+\frac{\partial^2F}{\partial y'^2}(\delta y')^2)dx\\ &\cdots\\ \delta^kJ&=\int_{x_1}^{x_2}(\delta y\frac{\partial}{\partial y}+\delta y'\frac{\partial}{\partial y'})^{(k)}Fdx \end{aligned} δJδ2JδkJ=x1x2(yFδy+yFδy)dx=x1x2(y22F(δy)2+yy2Fδyδy+y22F(δy)2)dx=x1x2(δyy+δyy)(k)Fdx
从而, Δ J = δ J + 1 2 ! δ 2 J + ⋯ \Delta J=\delta J+\frac{1}{2!}\delta^2J+\cdots ΔJ=δJ+2!1δ2J+
由于一阶变分 δ y \delta y δy与小参数 ϵ \epsilon ϵ成正比,二阶变分 δ 2 y \delta^2y δ2y ϵ 2 \epsilon^2 ϵ2成正比,以此类推。因此,当 ϵ \epsilon ϵ趋于无穷小时,二阶以上各项变分都是一阶变分的高阶无穷小,可以忽略不记。所以泛函增量 Δ J \Delta J ΔJ趋于0的条件是一阶变分 δ J = 0 \delta J=0 δJ=0,此时达到 J J J的极值点。若要进一步分析泛函的极值是极大值还是极小值,则还需要考虑泛函的二阶变分 δ 2 J \delta^2J δ2J,因为处于极值点时:
Δ J = 1 2 ! δ 2 J + o ( δ 2 J ) \Delta J=\frac{1}{2!}\delta^2J+o(\delta^2J) ΔJ=2!1δ2J+o(δ2J)
δ 2 J > 0 \delta^2J>0 δ2J>0时, Δ J > 0 \Delta J>0 ΔJ>0,泛函 J ( y ) J(y) J(y)为极小值,反之则为极大值。

2.3.2.1.3 泛函极值的必要条件-欧拉方程

泛函取极值时,其一阶变分为0,即:
δ J = ∫ x 1 x 2 ( ∂ F ∂ y δ y + ∂ F ∂ y ′ δ y ′ ) d x = 0 \delta J=\int_{x_1}^{x_2}(\frac{\partial F}{\partial y}\delta y+\frac{\partial F}{\partial y'}\delta y')dx=0 δJ=x1x2(yFδy+yFδy)dx=0
由于 δ y \delta y δy δ y ′ \delta y' δy不是独立无关的,因此上式第二项可写成(推导过程用到了分部积分法):
∫ x 1 x 2 ∂ F ∂ y ′ δ y ′ d x = ∫ x 1 x 2 ∂ F ∂ y ′ d ( δ y ) d x d x = ∫ x 1 x 2 ∂ F ∂ y ′ d ( δ y ) = ∂ F ∂ y ′ δ y ∣ x 1 x 2 − ∫ x 1 x 2 ( δ y ) d ∂ F ∂ y ′ = ∂ F ∂ y ′ δ y ∣ x 1 x 2 − ∫ x 1 x 2 d d x ( ∂ F ∂ y ′ ) δ y d x \begin{aligned} \int_{x_1}^{x_2}\frac{\partial F}{\partial y'}\delta y'dx&=\int_{x_1}^{x_2}\frac{\partial F}{\partial y'}\frac{d(\delta y)}{dx}dx\\ &=\int_{x_1}^{x_2}\frac{\partial F}{\partial y'}d(\delta y)\\ &=\left.\frac{\partial F}{\partial y'}\delta y\right|_{x_1}^{x_2}-\int_{x_1}^{x_2}(\delta y)d\frac{\partial F}{\partial y'}\\ &=\left.\frac{\partial F}{\partial y'}\delta y\right|_{x_1}^{x_2}-\int_{x_1}^{x_2}\frac{d}{dx}(\frac{\partial F}{\partial y'})\delta ydx \end{aligned} x1x2yFδydx=x1x2yFdxd(δy)dx=x1x2yFd(δy)=yFδyx1x2x1x2(δy)dyF=yFδyx1x2x1x2dxd(yF)δydx
由于函数 y ( x ) y(x) y(x)在边界处的值已知, δ y \delta y δy在边界处为0,从而:
∂ F ∂ y ′ δ y ∣ x 1 x 2 = 0 \left.\frac{\partial F}{\partial y'}\delta y\right|_{x_1}^{x_2}=0 yFδyx1x2=0
回代则得:
δ J = ∫ x 1 x 2 ( ∂ F ∂ y − d d x ( ∂ F ∂ y ′ ) ) δ y d x = 0 \delta J=\int_{x_1}^{x_2}(\frac{\partial F}{\partial y}-\frac{d}{dx}(\frac{\partial F}{\partial y'}))\delta ydx=0 δJ=x1x2(yFdxd(yF))δydx=0
由于 δ y \delta y δy为在区间 [ x 1 , x 2 ] [x_1,x_2] [x1,x2]内关于 x x x的任意函数,因此积分为0则需要满足:
∂ F ∂ y − d d x ( ∂ F ∂ y ′ ) = 0 \frac{\partial F}{\partial y}-\frac{d}{dx}(\frac{\partial F}{\partial y'})=0 yFdxd(yF)=0
该式称为欧拉方程。
求解该方程,并利用边界条件,则可以确定泛函 J ( y ) J(y) J(y)的极值点 y ( x ) y(x) y(x)
回到一开始提到的求解两点之间最短曲线的问题。待求曲线为 y ( x ) y(x) y(x),总弧长为泛函 J ( y ) = ∫ x 1 x 2 1 + y ′ 2 d x J(y)=\int_{x_1}^{x_2}\sqrt{1+y'^2}dx J(y)=x1x21+y2 dx
将拉格朗日函数 F = 1 + y ′ 2 F=\sqrt{1+y'^2} F=1+y2 ,代入欧拉方程可得:
0 − d d x ( y ′ 1 + y ′ 2 ) = 0 0-\frac{d}{dx}(\frac{y'}{\sqrt{1+y'^2}})=0 0dxd(1+y2 y)=0
从而可得:
y ′ 1 + y ′ 2 = C ⇒ y ′ = C 1 − C 2 \frac{y'}{\sqrt{1+y'^2}}=C\Rightarrow y'=\frac{C}{\sqrt{1-C^2}} 1+y2 y=Cy=1C2 C
由此可见斜率 y ′ y' y为一个常数,该曲线是一条直线。从而证明了两点之间直线最短的常识。进一步地,由边界的 P 1 , P 2 P_1,P_2 P1,P2条件,可解出直线的具体方程。

2.3.2.1.4 泛函变分的基本运算法则

泛函变分法则和微分运算法则基本相同。设 F 1 , F 2 F_1,F_2 F1,F2均为 x , y , y ′ , ⋯ x,y,y',\cdots x,y,y,的函数,则:
δ ( F 1 + F 2 ) = δ F 1 + δ F 2 δ ( F 1 ⋅ F 2 ) = F 2 δ F 1 + F 1 δ F 2 δ ( F 1 F 2 ) = 1 F 2 2 ( F 2 δ F 1 − F 1 δ F 2 ) δ ( F n ) = n F n − 1 δ F \begin{aligned} &\delta(F_1+F_2)=\delta F_1+\delta F_2\\ &\delta(F_1\cdot F_2)=F_2\delta F_1+F_1\delta F_2\\ &\delta(\frac{F_1}{F_2})=\frac{1}{F_2^2}(F_2\delta F_1-F_1\delta F_2)\\ &\delta(F^n)=nF^{n-1}\delta F \end{aligned} δ(F1+F2)=δF1+δF2δ(F1F2)=F2δF1+F1δF2δ(F2F1)=F221(F2δF1F1δF2)δ(Fn)=nFn1δF

2.3.2.2 变分贝叶斯网推理

上一节我们给出了利用变分法分析泛函极值的框架,并推导出针对最简泛函『拉格朗日函数』的极值必要条件:欧拉方程。
在贝叶斯网后验概率推理问题中,由于实际问题中贝叶斯网往往比较复杂。我们知道,一个分布本质就是一个满足归一化条件的函数。我们借鉴变分分析的思路,通过设定一个简化的分布形式,并尝试从符合这种形式的容许分布中寻找最接近目标后验概率分布的那一个。
为了便于推理,我们所设定的简化分布具有如下朴素形式(变量互相独立):
Q ( Z ) = ∏ i = 1 n Q i ( Z i ) (1) Q(Z)=\prod_{i=1}^nQ_i(Z_i)\tag{1} Q(Z)=i=1nQi(Zi)(1)
利用这类具有变量独立性的分布去逼近复杂的后验概率分布 P ( Z ∣ E ) P(Z|E) P(ZE),就称为朴素平均场方法。
在本专题第1篇『信息论基础』中介绍了相对熵(KL散度)的概念。我们知道,可以通过KL散度来度量两个概率分布的距离。于是,我们就将问题转化为寻找满足下式条件的具有朴素形式的 Q ( Z ) Q(Z) Q(Z)
Q ( Z ) = arg min ⁡ Q ( Z ) K L ( Q ( Z ) ∣ ∣ P ( Z ∣ E ) ) = arg min ⁡ Q ( Z ) ∑ Z Q ( Z ) log ⁡ Q ( Z ) P ( Z ∣ E ) (2) \begin{aligned} Q(Z)&=\argmin_{Q(Z)}KL(Q(Z)||P(Z|E))\\ &=\argmin_{Q(Z)}\sum_ZQ(Z)\log\frac{Q(Z)}{P(Z|E)} \end{aligned} \tag{2} Q(Z)=Q(Z)argminKL(Q(Z)P(ZE))=Q(Z)argminZQ(Z)logP(ZE)Q(Z)(2)
我们对KL散度进行变形:
K L ( Q ( Z ) ∣ ∣ P ( Z ∣ E ) ) = − ∑ Z Q ( Z ) log ⁡ P ( Z ∣ E ) Q ( Z ) = − ∑ Z Q ( Z ) log ⁡ P ( Z , E ) Q ( Z ) P ( E ) = − ∑ Z Q ( Z ) log ⁡ P ( Z , E ) + ∑ Z Q ( Z ) ( log ⁡ Q ( Z ) + log ⁡ P ( E ) ) = − ∑ Z Q ( Z ) log ⁡ P ( Z , E ) + ∑ Z Q ( Z ) log ⁡ Q ( Z ) + log ⁡ P ( E ) \begin{aligned} KL(Q(Z)||P(Z|E))&=-\sum_ZQ(Z)\log\frac{P(Z|E)}{Q(Z)}\\ &=-\sum_ZQ(Z)\log\frac{P(Z,E)}{Q(Z)P(E)}\\ &=-\sum_ZQ(Z)\log P(Z,E)+\sum_ZQ(Z)(\log Q(Z)+\log P(E))\\ &=-\sum_ZQ(Z)\log P(Z,E)+\sum_ZQ(Z)\log Q(Z)+\log P(E) \end{aligned} KL(Q(Z)P(ZE))=ZQ(Z)logQ(Z)P(ZE)=ZQ(Z)logQ(Z)P(E)P(Z,E)=ZQ(Z)logP(Z,E)+ZQ(Z)(logQ(Z)+logP(E))=ZQ(Z)logP(Z,E)+ZQ(Z)logQ(Z)+logP(E)
J ( Q ) = − ∑ Z Q ( Z ) log ⁡ P ( Z , E ) + ∑ Z Q ( Z ) log ⁡ Q ( Z ) J(Q)=-\sum_ZQ(Z)\log P(Z,E)+\sum_ZQ(Z)\log Q(Z) J(Q)=ZQ(Z)logP(Z,E)+ZQ(Z)logQ(Z),则上式可简写为:
K L ( Q ∣ ∣ P ) = J ( Q ) + log ⁡ P ( E ) KL(Q||P)=J(Q)+\log P(E) KL(QP)=J(Q)+logP(E)
由于 log ⁡ P ( E ) \log P(E) logP(E)为确定值,因此式(2)的优化问题就转化为求解使得 J ( Q ) J(Q) J(Q)最小的最优变分分布 Q ( Z ) Q(Z) Q(Z)
我们将式(1)关于 Q ( Z ) Q(Z) Q(Z)的变量独立条件代入 J ( Q ) J(Q) J(Q),并将 J ( Q ) J(Q) J(Q)分为前后两部分来分析。首先来看后半部分:
H Q ( Z ) = − ∑ Z Q ( Z ) log ⁡ Q ( Z ) = − ∑ Z 1 ⋯ ∑ Z n ( ∏ i = 1 n Q i ( Z i ) ∑ j = 1 n log ⁡ Q j ( Z j ) ) = − ∑ j = 1 n ∑ Z 1 ⋯ ∑ Z n ( ∏ i = 1 n Q i ( Z i ) log ⁡ Q j ( Z j ) ) = − ∑ j = 1 n ∑ Z 1 ⋯ ∑ Z n ( ∏ i ≠ j Q i ( Z i ) Q j ( Z j ) log ⁡ Q j ( Z j ) ) = − ∑ j = 1 n ∑ Z 1 ⋯ ∑ Z n ⏟ e x c e p t Z j ∏ i ≠ j Q i ( Z i ) ∑ Z j ( Q j ( Z j ) log ⁡ Q j ( Z j ) ) = − ∑ j = 1 n ∑ Z j ( Q j ( Z j ) log ⁡ Q j ( Z j ) ) ∑ Z 1 Q 1 ( Z 1 ) ∑ Z 2 Q 2 ( Z 2 ) ⋯ ∑ Z n Q n ( Z n ) ⏟ e x c e p t Z j = − ∑ j = 1 n ∑ Z j ( Q j ( Z j ) log ⁡ Q j ( Z j ) ) = ∑ j = 1 n H Q j ( Z j ) \begin{aligned} H_Q(Z)&=-\sum_ZQ(Z)\log Q(Z)\\ &=-\sum_{Z_1}\cdots\sum_{Z_n}\left(\prod_{i=1}^nQ_i(Z_i)\sum_{j=1}^n\log Q_j(Z_j)\right)\\ &=-\sum_{j=1}^n\sum_{Z_1}\cdots\sum_{Z_n}\left(\prod_{i=1}^nQ_i(Z_i)\log Q_j(Z_j)\right)\\ &=-\sum_{j=1}^n\sum_{Z_1}\cdots\sum_{Z_n}\left(\prod_{i\neq j}Q_i(Z_i)Q_j(Z_j)\log Q_j(Z_j)\right)\\ &=-\sum_{j=1}^n\underbrace{\sum_{Z_1}\cdots\sum_{Z_n}}_{except Z_j}\prod_{i\neq j}Q_i(Z_i)\sum_{Z_j}\left(Q_j(Z_j)\log Q_j(Z_j)\right)\\ &=-\sum_{j=1}^n\sum_{Z_j}\left(Q_j(Z_j)\log Q_j(Z_j)\right)\underbrace{\sum_{Z_1}Q_1(Z_1)\sum_{Z_2}Q_2(Z_2)\cdots\sum_{Z_n}Q_n(Z_n)}_{except Z_j}\\ &=-\sum_{j=1}^n\sum_{Z_j}\left(Q_j(Z_j)\log Q_j(Z_j)\right)\\ &=\sum_{j=1}^nH_{Q_j}(Z_j) \end{aligned} HQ(Z)=ZQ(Z)logQ(Z)=Z1Zn(i=1nQi(Zi)j=1nlogQj(Zj))=j=1nZ1Zn(i=1nQi(Zi)logQj(Zj))=j=1nZ1Zni=jQi(Zi)Qj(Zj)logQj(Zj)=j=1nexceptZj Z1Zni=jQi(Zi)Zj(Qj(Zj)logQj(Zj))=j=1nZj(Qj(Zj)logQj(Zj))exceptZj Z1Q1(Z1)Z2Q2(Z2)ZnQn(Zn)=j=1nZj(Qj(Zj)logQj(Zj))=j=1nHQj(Zj)
可以看到,后半部分实际就是分布 Q ( Z ) Q(Z) Q(Z)的信息熵,由于 Z Z Z的各边缘分布 Q i ( Z i ) Q_i(Z_i) Qi(Zi)互相独立,因此 Q ( Z ) Q(Z) Q(Z)的信息熵等于各边缘分布 Q i ( Z i ) Q_i(Z_i) Qi(Zi)的信息熵之和。上面给出的是严密的数学推导过程,从信息熵的物理意义更容易直观理解: Z Z Z的随机程度等于这 n n n个独立的 Z i Z_i Zi的随机程度之和。正是因为有了朴素平均场理论,我们将原本高维的分布 Q ( Z ) Q(Z) Q(Z)拆分成单维度形式。
再来看前半部分:
∑ Z Q ( Z ) log ⁡ P ( Z , E ) = ∑ Z 1 ⋯ ∑ Z n ∏ i = 1 n Q i ( Z i ) log ⁡ P ( Z , E ) = ∑ Z j Q j ( Z j ) ∑ Z 1 ⋯ ∑ Z n ⏟ e x c e p t Z j ∏ i ≠ j Q i ( Z i ) log ⁡ P ( Z , E ) \begin{aligned} \sum_ZQ(Z)\log P(Z,E)&=\sum_{Z_1}\cdots\sum_{Z_n}\prod_{i=1}^{n}Q_i(Z_i)\log P(Z,E)\\ &=\sum_{Z_j}Q_j(Z_j)\underbrace{\sum_{Z_1}\cdots\sum_{Z_n}}_{except Z_j}\prod_{i\neq j}Q_i(Z_i)\log P(Z,E) \end{aligned} ZQ(Z)logP(Z,E)=Z1Zni=1nQi(Zi)logP(Z,E)=ZjQj(Zj)exceptZj Z1Zni=jQi(Zi)logP(Z,E)
我们可以将 ∑ Z 1 ⋯ ∑ Z n ⏟ e x c e p t Z j ∏ i ≠ j Q i ( Z i ) log ⁡ P ( Z , E ) \underbrace{\sum_{Z_1}\cdots\sum_{Z_n}}_{except Z_j}\prod_{i\neq j}Q_i(Z_i)\log P(Z,E) exceptZj Z1Zni=jQi(Zi)logP(Z,E)看作函数 log ⁡ P ( Z , E ) \log P(Z,E) logP(Z,E)在分布 ∏ i ≠ j Q i ( Z i ) \prod_{i\neq j}Q_i(Z_i) i=jQi(Zi)上的期望,记作 E Q [ log ⁡ P ( Z , E ) ∣ Z j ] E_Q\left[\log P(Z,E)|Z_j\right] EQ[logP(Z,E)Zj],代入上式有:
∑ Z Q ( Z ) log ⁡ P ( Z , E ) = ∑ Z j Q j ( Z j ) E Q [ log ⁡ P ( Z , E ) ∣ Z j ] \sum_ZQ(Z)\log P(Z,E)=\sum_{Z_j}Q_j(Z_j)E_Q\left[\log P(Z,E)|Z_j\right] ZQ(Z)logP(Z,E)=ZjQj(Zj)EQ[logP(Z,E)Zj]
将前后两部分都代入 J ( Q ) J(Q) J(Q)可得:
J ( Q ) = − ∑ Z j Q j ( Z j ) E Q [ log ⁡ P ( Z , E ) ∣ Z j ] − ∑ j = 1 n H Q j ( Z j ) \begin{aligned} J(Q)=&-\sum_{Z_j}Q_j(Z_j)E_Q\left[\log P(Z,E)|Z_j\right]\\ &-\sum_{j=1}^nH_{Q_j}(Z_j) \end{aligned} J(Q)=ZjQj(Zj)EQ[logP(Z,E)Zj]j=1nHQj(Zj)
我们对每一个 Q j Q_j Qj轮流优化,在优化 Q j Q_j Qj时,其它 { Q i ∣ i ≠ j } \{Q_i|i\neq j\} {Qii=j}都当做常数处理。
除了以上等式,我们还有概率归一化条件: ∑ Z j Q j ( Z j ) = 1 \sum_{Z_j}Q_j(Z_j)=1 ZjQj(Zj)=1。为了优化 J ( Q j ) J(Q_j) J(Qj),引入拉格朗日乘数 λ \lambda λ,并求解如下方程:
∂ ∂ Q j ( Z j = z ) [ J ( Q j ) + λ ( ∑ Z j Q j ( Z j ) − 1 ) ] = 0 , ∀ z ∈ Ω Z j \frac{\partial}{\partial Q_j(Z_j=z)}\left[J(Q_j)+\lambda(\sum_{Z_j}Q_j(Z_j)-1)\right]=0, \quad \forall z\in \Omega_{Z_j} Qj(Zj=z)J(Qj)+λ(ZjQj(Zj)1)=0,zΩZj
即:
− E Q [ log ⁡ P ( Z , E ) ∣ Z j = z ] + log ⁡ Q j ( Z j = z ) + 1 + λ = 0 -E_Q\left[\log P(Z,E)|Z_j=z\right]+\log Q_j(Z_j=z)+1+\lambda=0 EQ[logP(Z,E)Zj=z]+logQj(Zj=z)+1+λ=0
从而可解得用于更新 Q j ( Z j = z ) Q_j(Z_j=z) Qj(Zj=z)的平均场方程:
Q j ( Z j = z ) = 1 a e E Q [ log ⁡ P ( Z , E ) ∣ Z j = z ] Q_j(Z_j=z)=\frac{1}{a}e^{E_Q\left[\log P(Z,E)|Z_j=z\right]} Qj(Zj=z)=a1eEQ[logP(Z,E)Zj=z]
其中 a a a是归一化常数,
a = ∑ Z j e E Q [ log ⁡ P ( Z , E ) ∣ Z j ] a=\sum_{Z_j}e^{E_Q\left[\log P(Z,E)|Z_j\right]} a=ZjeEQ[logP(Z,E)Zj]
依次轮流对 Q j Q_j Qj进行优化,每一次迭代都使 J ( Q ) J(Q) J(Q)减小,因此最终算法会收敛。但值得注意的是,最终不一定收敛到全局最优,初始点的选取和迭代更新的顺序都会影响到解的质量。

朴素平均场法使用朴素分布直接对目标后验概率分布进行逼近,概念清晰,算法收敛速度比随机抽样法块。当网络中变量数目多,连接稠密,但变量之间的依赖关系较弱时,该方法可以给出较好的结果。但是在实际中,由于变分平均场的假设过于简单,在变量间依赖关系较强的情况下,不能很好地逼近真实后验分布。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值