MoG & EM-Algorithm

问题的提出

                                    --> Figure_1

假设我们有一堆如图(b)所示的数据集X,它们由3个独立的高斯分布生成,样本在空间中存在交叠,上帝知道它的本来面目(如图(a)所示),一个自然的问题是:能否根据数据集X,估计出生成它们的分布的参数呢?答案是肯定的,下面来分析如何求解模型参数。

混合高斯模型

我们假设X的生成分布为:

                                                                                               (1)

其中,\pi _k表示混合系数,且\pi _k关于k求和结果为1,N\left ( x|\mu _k,\Sigma _k \right )表示均值为\mu _k、协方差为\Sigma _k的高斯分布。我们可以很容易地根据该假设写出数据集的对数似然函数:

                                                                           (2)

然后,根据MLE的求解流程,求解模型参数的时候,发现ln or log符号内包含一堆东西,这样这些耦合在一起,求解起来往往比较费劲(需要说明的是,(2)事实上也是可以直接用来求解模型参数的))。我们来复盘一下这个问题,如果给我们的数据集是(a)所示的完全数据集{X,Z},每个样本x都存在如图F2(a)所示的指示变量z,此时数据集的形态如图F1(a)所示,那么我们可以把各个分布的数据拿来估计对应分布的参数,因此参数估计的难度瞬间减低。一个很自然的问题:如果我们在估计模型参数前知道各个样本x_n对应的指示变量,那么问题不就可以简化许多?

引入隐变量Z

                                                          a).        b).     --> Figure_2

基于上述思想,我们很自然地想到引入中间变量来辅助我们求解模型参数。具体地:对于任意的样本x_n,引入隐变量z_n,其中(即one-hot编码,只有一个分量值为1,其它分量值为0),它表示样本x_n是由分布N\left ( x|\mu _k,\Sigma _k \right )生成。记模型参数为\Theta,我们假设隐变量的先验分布(prior)为:

                                                                                                 (3)

需要指出这里隐变量z的分布仅仅与模型参数\Theta有关,而与样本x无关。

相应地,样本x_n的似然函数为:

                                                                    (4)

当我们得到\left ( x_n,z_n \right )后,由条件概率公式可得完备数据的似然函数:

                                  

至此,整个完备数据集{X,Z}似然函数为:

                                                  

对相应的对数似然函数关于隐变量Z取期望可得:

                                                   (5)

行文至此,有一个非常自然的问题:为什么要对隐变量Z取期望?因为对于z_n,我们往往无法给出其exactly的形式(one-hot编码格式),只能通过概率的形式来表述其分量。读者可以类比一下Mnist数据集的分类情形,对于一个特定的输入图片,它所对应groundtruth只有1个,但是我们模型做分类的时候,通过softmax给出一个score_list。

下面给出E(z_n_k)计算公式:

                                      (6)

一个很自然的问题是:计算期望时为什么使用的是z_n的后验分布P(Z|X,\Theta),而不是如(3)所示的它的先验分布呢?注意,计算期望E(z_n_k)时,由于隐变量z_n已经‘看过’数据x_n了,因此为了能够更加精准地刻画隐变量自身的分布,它需要根据已经看过的数据X、模型参数\Theta来修正原来的先验分布P(Z|\Theta)。(6)式物理意义跃然纸上,这里不在叙述,为了方便符号的统一,后续我们用\gamma(z_n_k)来表示。

混合高斯分布的解

相对于(2),利用(5)来求解模型参数\Theta则变得非常简单。需要指出,在上述的叙述中有一个隐含条件我们一直没有着重强调:\sum _j \pi _j = 1,在求解混合系数时需要加入”和为1“的约束条件。这里,我们给出(5)对应的Lagrange函数:

                                

对上式关于各个变量求偏导、置零,即可解出对应的表达式。下面给出求解得到的结果:

                                                      ,其中,                    (7)

                                                                                                (8)

                                                                 (9)

基于以上的叙述,我们给出如下求解混合高斯模型参数的算法:

EM算法——基于bayes视角

一般地,对于完备数据集{X,Z},我们有:

                                                                          (10)

其中表示表示指示变量(隐变量)的后验分布。对(10)变形可得:

                                     (11)

在(11)中我们引入了指示变量的先验分布,对(11)等号两边同时乘以,并关于先验分布积分(或求和),可得:

                                                               (12)

注意,这里的一般被称为Q-function,KL(q||p)表示KL-散度,它用于度量两个分布之间的差异性,两个分布如果诧异越大,它的取值越大;反之,则越小,当且仅当p=q时,KL(q||p) = 0.

在实际应用中,我们遇到的数据一般是不完备的数据集{X},然后我们基于对数据分布的假设需要根据实际数据来求解:,但直接求解往往比较复杂,于是我们通过引入中间变量(隐变量)Z来简化求解问题。具体地,对于(12)有:

                                                                                    (13)

我们可以退而且其次,来优化的下界,这样通过优化下界函数来间接地优化原始问题

         a).    b).          c).    -->Figure 3

具体的优化过程可以结合Figure3来叙述。首先,对于固定的,(12)可由Figure-3a阐述,此时红线表示,为了使下界函数达到最大,我们必须使得KL(q||p)达到最小,因此取;当我们取时,对于固定的,下界函数,如Figure3b所示;然后,在固定隐变量的分布的情形下关于模型参数\Theta优化下界函数,得到,似然函数下的取值由Figure3c中红色实线表示,此时对于KL(q||p)而言,由于,故有KL(q||p) >= 0。因此,为了在新的参数下使得下界函数达到最大,我们需要将隐变量的分布更新为。接着,再固定隐变量的分布,更新模型参数\Theta,……,直到达到算法终止条件。Figure4给出了似然函数在上述的交替迭代过程中的变化情况:

                                                          --> Figure 4

最后,我们给出EM算法的一般流程:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ReLuJie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值