EM(Exception Maximization)算法
引言:在动笔之前,我在网上翻阅了许多的资料,生怕自己理解的不透彻,网上也有许多良心之作,对我理解该算法起到了巨大的帮助作用,EM算法既简单又复杂,简单在于它的思想是非常简单的,仅包含两个步骤就能完成强大的功能,复杂在于它对数学基础要求比较高,公式推导相对比较繁琐,可能世界上最伟大的东西都是这样吧,越是简单的东西却有着复杂的机理,但是越复杂的东西有时又蕴含着简单的道理。下面就把我在学习该算法的过程写下来,希望对后面的人学习有所帮助!
一、极大似然估计
在介绍EM算法之前,需要先复习一下极大似然估计,什么是极大似然估计呢?举个例子,假定现在需要调查我们学校男生和女生的身高分布,这么多学生怎么办,不可能一个一个去问吧,所以就需要抽样。现在在学校随机抽取了100位男生和100位女生,分别统计他们的身高,从统计学角度可以知道男生和女生的身高分别是服从高斯分布的,但是这两个分布的均值和方差都不知道,所以我们就需要从这些样本中来估计这两个参数,记作。下面先以男生的身高分布说明,女生的同理。
在学校这么多男生中,我们独立的按照概率密度抽取了100个人,组成了样本集X,我们想通过样本集X来估计出参数,这里的概率密度是高斯分布的概率密度函数,其中的未知参数是,抽到的样本集是,其中表示抽到的第i个人的身高,i在这里最大值取100,表示抽到的样本个数。这些样本都是独立选择的,所以同时抽到这100个男生的概率就等于他们各自的概率乘积,即从分布是的总体样本中抽取到这100个样本的概率,就是样本集X中各个样本的联合概率,用下式表示:
就是我们的样本值,是已知的,那么上式就表示在参数已知的情况下抽取得到的这个样本的概率,这里的就是参数相对样本集的似然函数(likehood function)。
似然函数在这里可以这样理解,X样本代表一个目标函数或者是一个事实,现在的目标是通过调整参数使得刚才的这些样本出现的概率最大。这是一个反推过程,就是已经知道一个结果,就是找到了出现这个结果的最大概率。
的极大似然估计量,记为:
为了方便分析,可以定义对数似然函数,将其变为连加的形式:
ok,现在我们知道,要求,只需要使的似然函数最大化,然后极大值对应的就是我们的估计。问题这个时候就转化为怎么样求解函数的极值,当然就是利用求导,令导数值为0,此时解出就可以了,但是前提必须是函数是连续可导的。如果是包含多个参数的向量,那么就对所有的参数求偏导,有n个未知的参数,就有n个方程,方程组的解就是似然函数的极值点了。
总结一下求最大似然估计值得一般步骤:
(1)写出似然函数;
(2)对似然函数取对数,并整理;
(3)求导数,令导数为0,得到似然函数;
(4)解似然方程,得到的参数即为所求;
好了,说到这里,还不知道似然函数和EM算法有什么联系,我们注意到这里的参数只是对应了一个类别,即男生的身高或者女生的身高,就是在已知这一群人都是男生或者女生的情况下,获得这个类别的参数