EM算法
1、定义
EM算法也称期望最大化算法(Expection-Maxinum)算法
它是一个算法基础,是很多机器学习领域算法的基础,比如隐士马尔可夫算法(HMM)等
EM算法是一种迭代优化策略,计算方式中每一次迭代分为2步
1、期望步(E步)
2、极大步(M步)
所以算法被称为EM算法
2、EM算法计算流程
首先根据已经给出的观测数据,估计出模型参数的值
然后再根据上一步估计出的参数估计缺失数据的值,再根据估计出的缺失数据加上之前已经观测的数据重新再对参数进行估计
然后反复迭代直至最后收敛,迭代结束
3、极大似然估计
极大似然估计就是用来估计模型参数的统计学方法
3.1、问题描述
假入我们需要调查学校的男生女生身高分布,我们抽取100个男生和100个女生,将他们按照性别划分为两组,然后,统计抽样得到100个男生的身高数据和100个女生身高数据
假入我们知道他们的身高服从正态分布但是这个分布的均值和方差是不知道的,这个参数就是我们需要估计的
我们已知的条件有2个:
1、样本服从的分布模型
2、随机抽取的样本
我们需要求解模型的参数。根据已知条件,通过极大似然估计,求出未知参数
极大似然估计就是用来估计模型参数的统计学办法
3.2、用数据知识解决现实问题
极大似然函数取对数的原因
1、减少计算量:如上连乘变成了加法
2、有利于结果更好展示:概率值在[0,1]之间
3、取对数并不影响最后结果的单调性
4、EM算法数学流程
5、EM算法实例
5.1、一个超级简单的案例
5.2、加入隐变量Z后的求解
目标:估计P1和P2的概率值
难点:不清楚哪个是P1,哪个是P2
1、设定初始值: P1=0.2 P2=0.7
2、计算概率值,取概率值大的。
如下1->2
2->1
3->1
4->2
5->1
3、计算P1和P2的概率值
P1=(2+1+2)/15=0.33
P2=(3+3)/10=0.6
4、根据计算法概率值作为下一次迭代的初始值
当每次抛硬币都是如上标示那样,则最后P1=0.4 P2=0.5
于是就找到P1和P2的最大似然估计
问题
1、新估计出的P1和P2一定回更接近真实P1和P2吗?是的
2、迭代一定回收敛到真实P1和P2吗? 不一定,取决于初始值
5.3、EM进阶版
根据图2进阶
P1=0.00512/(0.00512+0.03087)=0.14
P2= 1-0.14 =0.86
上图估计出了z的概率分布,这步称为E步
结合图1,按照最大似然概率的法则来估计新的P1和P2
0.14 *3=0.42 正 0.14 *2=0.28反
P1=4.22/(4.22+7.98)=0.35
可以看到,改变了Z值得估计方法后,新估计出来得P1更接近0.4.原因是我们使用了所有抛掷得数据,而不是之前只是用了部分数据
这步中,我们根据E步求出得z的概率分布,依据最大似然概率法则去估计P1和P2步,被称为M步