An Introduction to Variational Methods (5.3)

从之前的文章中,我们已经得到了所有需要求解的参数的优化分布的形式,分别为:

 

 

 

 

但是,我们从这些分布的表达式中(参见之前的文章),可以发现这些式子并不能够直接求解。这是因为各个参数之间相互耦合,从而导致得到的不是一个直接可以得到的解,所以我们需要进行迭代求解,正如我们在之前所描述的一样。我们观察这三组参数的表达形式,我们会发现,Z的求解依赖于r这个变量,而r这个变量的求解依赖于其余的所有参数。我们再看其他的参数,这些参数的求解依赖于r。从而我们得到了这个求解过程中的耦合部分。所以我们可以得到一个初步的求解迭代过程:

 

1. 初始化所有的参数,包括Z,r,pi,mu,Lambda等控制参数以及其超参数;

2. 保持pi,mu,Lambda等控制参数不变,根据表达式,求解r,进而求解Z。

3. 保持r和Z不变,根据表达式求解pi,mu,Lambda等控制参数。

 

如此不断往复,直至结果达到收敛精度要求或者超过一定迭代次数为止。

 

到这一步,我们可以基本认为,这个问题得到了解决。但是其中还有很多细节,我并没有在文中给予详细的解答,对于迭代过程的求解,也并不是一句话就可以带过的。

 

我们现在回头再去观察这个问题,我们会发现一个有趣的地方。那就是我们所求解的优化分布的形式,和我们所提出来的prior的形式是完全相同的。这是一个偶然现象,还是必然呢?答案是,在这个问题中,这是一种必然的过程,这是因为 我们选择的就是所希望求解分布的共轭先验(conjugate prior)。我简单解释一下这个概念:

 

对于一个给定的分布p(X|W),我们可以寻找其一个先验分布p(W),使得该先验和似然函数的乘积与先验分布有相同的函数形式,而我们知道,后验分布p(W|X)正比于先验和似然函数的乘积,从而与先验有相同的函数形式。

 

这样一个共轭先验的好处,是使得我们可以不断地重复先验转向后验的过程,使得我们可以不断利用已有的数据去理解新的数据,而后将它们放在一起,都作为已有的数据,再去理解新的数据,如此不断往复。而且共轭先验的函数形式也让数学形式上的分析变得更为容易,我们可以只需要考虑整个分布的一些重要的有特征的部分,而不需要对于其归一化常数等不重要的部分进行多次计算,只需要最后的时候根据函数形式进行对应就可以了。

 

而一个有意思的地方在于,对于指数家族函数的分布来说,每一个都存在一个对应的共轭先验,我简单介绍一下,对于形式为如下的分布,都可以成为指数家族分布:

 

x可以为标量,也可以为矢量。u(x)为x的某种形式a的函数,而eta称作natural parameters,其函数g(eta)可以看做是一个归一化系数。

 

现在,我们为参数引入一个先验:

 

而我们给定一个数据集,也可以计算其似然值:

其中

 

这样,我们将先验和似然函数相乘,可以得到:

而这个函数,与先验函数具有相同的函数形式。这时候,我们就找到了一个共轭先验。而我们的原函数,是指数家族函数分布的一般形式,这也就意味着,每一个指数家族函数分布,都有其对应的共轭先验。

posted on 2013-12-16 17:40  虚若怀谷  阅读(282)  评论(0编辑  收藏  举报

导航