2020-09-18

                                                         EM算法详解

 

在讲解EM算法前,先讲一个小例子,以便可以对EM算法有更加清晰的了解。我们有两个材质不同的硬币A和B,我们每个硬币抛5次,然后观察他们出现正面的次数,我们是在已知这次抛的是A还是B的时候,才能计算出每种硬币出现硬币的概率,比如下面:

A

正,正,反,反,正

B

反,正,反,反,正

A出现正面的概率为0.6,B出现正面的概率为0.4。这是我们在已知我们在知道我们在抛的是A还是B的时候可以很容易观察到的,但是如果我们不知道我们抛的是A还是B的时候呢,我们如何计算他们的概率呢?例如下面的情况:

正,正,反,反,正

反,正,反,反,正

这里有我们无法观测到的随机变量,我们把这个随机变量定义为Z,在概率统计中这个无法被观测到的随机变量被称为隐变量,而EM算法能够很好的解决上面的问题。

对于上面的问题,我们可以假设这样的分布:

                                                                                  

其表示A事件或者B事件发生的概率,这个概率分布我们是未知的其中含有未知参数。我们把最终观察的随机变量定义为X——抛硬币出现正面。我们在这里还定义条件概率:

                                                                                   

根据全概率公式我们有:

                                                                               

这里每个概率分布我们都不知道,我们仅仅可以观测到的只有,我们要确定各个分布中的参数,我们平时是怎么做的呢?——对,极大似然估计,我们尝试对上面的式子进行最大似然估计,我们将最大似然函数记为f(θ),于是有

                                                                       

其对数形式为:

                                                                       

对于上面这个式子对他求导数,实在太过于复杂,我们使用常规的求导肯定不是很容易的事。那么我们应该怎么做呢?

我们这里直接观察,看能不能把这个式子变得简单一点,很感谢伟大的数学家又一次为我们提供了工具,根据Jensen不等式,对于凹函数,有,即对于凹函数来说,期望的函数大于函数的期望,我们看看上面的式子能否用到这个不等式。

我们可以将(*)写成:

                                                                 

这里我们就比较清晰了,我们这里可以将Z看作随机变量(这里一定要理解,它是关于Z的一个函数,我们假设这里的这个函数是已知的,这里的x,是我们观测到的数据,z是不可观测的数据。因此这个函数里只有Z是随机变量,因此它的分布符合Z的分布。)因此有:

                                                                              

在这里我们可以使用Jensen不等式,请注意观察:

                                        

希望你能够理解这里的不等式的含义,我们上面不等式的左边的函数:,这个函数和我们普通学习的函数不太一样,它不仅有参数,还有一个未知的概率分布P(z),我们现在做的目的就是让这个函数的值尽可能的达到最大。我们先假设它的参数,这样我们认为就只有P(z)是未知的,我们还是不能知道在θ已知的情况下,这个函数的下届是多少,而这个不等式告诉我们,我们能够达到这个函数的下界:

该不等式成立的条件是:

                                                                                       

因为我们已经固定了,因此我们已经知道,,因此容易得:

如下所示:

                                                                

这里的就是不等式的左边,其只受的影响,只是这种影响我们需要间接地通过不等式观察到,可以看到通过调整我们让不等式右边在这个θ处达到了最大值,我们得以观察到该点的但是,通过上面的图像我们可以轻易的发现,这个点既不是不等式左边这个函数的最大值点,更不是L(θ)的最大值点。我们接下来该如何做呢?

我们从图上直观的可以这样想,我们将这个时候的移动,然后再调整这个时候的P(z)不就可以了嘛。我们将不等式左边的函数记为:,包含两个参数,这里,我们将P(z)定住,我们移动,如下图:

                                                         

这个点的参数如何求呢?关于的导数就可以,然后我们将这里的固定,再次找应得,就是我们为最开始得工作,通过多次迭代,我们就能够逐渐逼近的最大值。

上面就是EM算法得原理和具体步骤,下面我们给出简洁的描述:

  1. 固定参数,找到P(z),使l
  2. 再找到参数,最大化

通过EM算法,我们得到了,

对于本文开始提到的抛硬币的问题,我们仅仅观察到了结果,但是我们却想知道两枚硬币各自的概率,也就是我们想知道P(x|z=A)P(x|z=B),而这里却是未知的,不可观察到的,我们就可以用上面的EM算法进行求解。

参考资料:邱锡鹏《神经网络与深度学习》

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页