这里,我们考虑另一种方法,这种方法里,我们限制概率分布q(Z)的范围。假设我们将Z的元素划分成若干个互不相交的组,记作Zi,其中i=1,...,M。然后,我们假定q分布关于这些分组可以进行分解,即
q(Z)=M∏i=1qi(Zi)
需要强调的是,我们关于概率分布没有做更多的假设。特别地,我们没有限制各个因子qi(Zi)的函数形式。变分推断的这个分解的形式对应于物理学中的一个近似框架,叫做平均场理论(mean field theory)(Parisi, 1988)。
在所有具有式(10.5)的形式的概率分布q(Z)中,我们现在寻找下界L(q)最大的概率分布。于是,我们希望对L(q)关于所有的概率分布qi(Zi)进行一个自由形式的(变分)最优化。 我们通过关于每个因子进行最优化来完成整体的最优化过程。为了完成这一点,我们首先将式(10.5)代入式(10.3),然后分离出依赖于一个因子qj(Zj)的项。为了记号的简洁,我们简单的将qj(Zj)记作qj,这样我们就有
L(q)=∫∏iqi{lnp(X,Z)−∑ilnqi}dZ=∫qj{∫lnp(X,Z)∏i≠jqidZi}dZj−∫qjlnqjdZj+const=∫qjln˜p(X,Zj)dZj−∫qjlnqjdZj+const
其中,我们定义了一个新的概率分布˜p(X,Zj),形式为
ln˜p(X,Zj)=Ei≠j[lnp(X,Z)]+const
这里,记号Ei≠j[…]表示关于定义在所有zi(i≠j)上的q概率分布的期望,即
Ej≠j[lnp(X,Z)]=∫lnp(X,Z)∏i≠jqidZi
现在假设我们保持{qi≠j}固定,关于概率分布qj(Zj)的所有可能的形式最大化式(10.6)中的L(q)。这很容易做,因为我们看到式(10.6)是qj(Zj)和˜p(X,Zj)之间的Kullback-Leibler散度的负值。因此,最大化式(10.6)等价于最小化Kullback-Leibler散度,且最小值出现在qj(Zj)=˜p(X,Zj)的位置。于是,我们得到了最优解q∗j(Zj)的一般的表达式,形式为
lnq∗j(Zj)=Ei≠j[lnp(X,Z)]+const
很值得花一些时间研究一下解的形式,因为它是变分方法应用的基础。这个解表明,为了得到因子qj的最优解的对数,我们只需考虑所有隐含变量和可见变量上的联合概率分布的对数,然后关于所有其他的因子{qi}取期望即可,其中i≠j。
式(10.9)中的可加性常数通过对概率分布q∗j(Zj)进行归一化的方式来设定。因此,如果我们取两边的指数,然后标准化,得到:
q∗j(Zj)=exp(Ei≠j[lnp(X,Z)])∫exp(Ei≠j[lnp(X,Z)])dZj
在实际应用中,我们会发现,更方便的做法是对式(10.9)进行操作,然后在必要的时候,通过观察的方式恢复出标准化系数。这一点通过下面的例子就会变得逐渐清晰起来。
由式(10.9)给定的方程的集合(其中j=1,...,M)表示在概率能够进行分解这一限制条件下,下界的最大值满足的一组相容的条件。然而,这些方程并没有给出一个显式的解,因为最优化q∗j(Zj)的式(10.9)的右手边表达式依赖于关于其它的因子qi(Zj)(i≠j)计算的期望。 于是,我们会用下面的方式寻找出一个相容的解:首先,恰当地初始化所有的因子qi(Zi)然后在各个因子上进行循环,每一轮用一个修正后的估计来替换当前因子。这个修正后的估计由式(10.9)的右侧给出,计算时使用了当前对于所有其他因子的估计。因为下界关于每个因子qi(Zi)是一个凸函数(Boyd and Vandenberghe, 2004),所以算法保证收敛。