3.2 EM算法介绍
学习目标
- 知道什么是极大似然估计
- 知道EM算法实现流程
想清晰的了解EM算法,我们需要知道一个基础知识:
- “极大似然估计”
1 极大似然估计
1.1 问题描述
假如我们需要调查学校的男生和女生的身高分布 ,我们抽取100个男生和100个女生,将他们按照性别划分为两组。
然后,统计抽样得到100个男生的身高数据和100个女生的身高数据。
如果我们知道他们的身高服从正态分布,但是这个分布的均值 和方差 是不知道,这两个参数就是我们需要估计的。
问题:我们知道样本所服从的概率分布模型和一些样本,我们需要求解该模型的参数.
我们已知的条件有两个:
- 样本服从的分布模型
- 随机抽取的样本。
我们需要求解模型的参数。
根据已知条件,通过极大似然估计,求出未知参数。
总的来说:极大似然估计就是用来估计模型参数的统计学方法。
1.2 用数学知识解决现实问题
问题数学化:
样本集
。
概率密度是:
) 抽到第i个男生身高的概率。
由于100个样本之间独立同分布,所以同时抽到这100个男生的概率是它们各自概率的乘积,也就是样本集X中各个样本的联合概率,用下式表示:
这个概率反映了在概率密度函数的参数是θ时,得到X这组样本的概率。
我们需要找到一个参数θ,使得抽到X这组样本的概率最大,也就是说需要其对应的似然函数L(θ)最大。
- 满足条件的θ叫做θ的最大似然估计值,记为:
- 满足条件的θ叫做θ的最大似然估计值,记为:
1.3 最大似然函数估计值的求解步骤
首先,写出似然函数:
其次,对似然函数取对数:
然后,对上式求导,令导数为0,得到似然方程。
- 最后,解似然方程,得到的参数值即为所求。
多数情况下,我们是根据已知条件来推算结果,而极大似然估计是已知结果,寻求使该结果出现的可能性最大的条件,以此作为估计值。
链接:极大似然函数取对数的原因
2 EM算法实例描述
我们目前有100个男生和100个女生的身高,但是我们不知道这200个数据中哪个是男生的身高,哪个是女生的身高,即抽取得到的每个样本都不知道是从哪个分布中抽取的。
这个时候,对于每个样本,就有两个未知量需要估计:
(1)这个身高数据是来自于男生数据集合还是来自于女生?
(2)男生、女生身高数据集的正态分布的参数分别是多少?
具体问题如下图:
对于具体的身高问题使用EM算法求解步骤如下:
(1)初始化参数:先初始化男生身高的正态分布的参数:如均值=1.65,方差=0.15;
(2)计算分布:计算每一个人更可能属于男生分布或者女生分布;
(3)重新估计参数:通过分为男生的n个人来重新估计男生身高分布的参数(最大似然估计),女生分布也按照相同的方式估计出来,更新分布。
(4)这时候两个分布的概率也变了,然后重复步骤(1)至(3),直到参数不发生变化为止。
3 EM算法流程
输入:
- n个样本观察数据
) ,未观察到的隐含数据
) ,
- 联合分布
) ,条件分布
) ,最大迭代次数。
算法步骤:
1)随机初始化模型参数θ的初值 。
2)开始EM算法迭代:
- E步:计算联合分布的条件概率期望:
- M步:极大化
) ,得到
:
- 如果
已经收敛,则算法结束。否则继续进行E步和M步进行迭代。
输出:模型参数θ。
3 小结
- 极大似然估计
- 根据已知条件,通过极大似然估计,求出未知参数;
- 极大似然估计就是用来估计模型参数的统计学方法。
- EM算法基本流程
- 1) 初始化参数;
- 2) 计算分布;
- 3) 重新估计参数;
- 4) 重复1-3步,直到参数不发生变化为止。