机器学习_第一篇 过程总结(2)_EM算法 Expectation Maximization
1. 最大期望算法
1.1 简介
最大期望算法(Expectation-Maximization algorithm,EM),是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation,MLE)的优化算法,通常作为牛顿迭代法(Newton-Raphsom method)的替代用于对包含隐变量(Latent variable)和缺失数据(incomplete-data)的概率模型进行参数估计。EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成。其中,E步求期望,M步将E步所求的期望最大化,重复E步和M步直到收敛,也就是估计的模型参数不再发生变化或者变化幅度很小。算法的收敛性可以确保迭代至少逼近局部极大值。
1.2 基本思想
- 根据已经给出的观测数据,估计出模型参数的值;
- 再依据上一步估计出的参数值估计缺失数据的值;
- 再根据估计出的缺失数据加上之前已经观测到的数据重新再对参数值进行估计;
- 反复迭代,直至最后收敛,迭代结束。
2. 预备知识
想了解EM算法推到过程和其原理,则需要知道两个基础知识:"极大似然估计"和“Jensen不等式”
2.1 极大似然估计
极大似然估计方法(Maximum Likelihood Estimate,MLE)也称为最大概似估计或最大似然估计,是用来估计模型参数的统计学方法。极大似然估计可以把它看作是一个反推。多数情况下我们是根据已知条件来推算结果,而极大似然估计是已经知道了结果,然后寻求使该结果出现的可能性极大的条件,以此作为估计值。
- 问题描述
若需要调查学校的男生和女生的身高分布,则按性别划分两组,分别抽取100个男生和100个女生。然后,统计抽样得到两个100组身高数据。假设仅仅知道男生和女生的身高服从正态分布,但是不知道正态分布的均值和方差
,这两个参数就是需要估计的。 问题:知道样本所服从的概率分布模型和随机抽取的样本,求解该模型的参数。
- 用数据知识解决现实问题
2.2 Jensen不等式
- 凸函数
- Jensen不等式定义
3. EM算法详解
3.1 问题描述
我们目前有100个男生和100个女生的身高,但是我们不知道这200个数据中哪个是男生的身高,哪个是女生的身高,即抽取得到的每个样本都不知道是从哪个分布中抽取的。这个时候,对于每个样本,就有两个未知量需要估计:
(1)这个身高数据是来自于男生数据集合还是来自于女生?
(2)男生、女生身高数据集的正态分布的参数分别是多少?
(1)初始化参数:先初始化男生身高的正态分布的参数:如均值=1.65,方差=0.15
(2)计算每一个人更可能属于男生分布或者女生分布;
(3)通过分为男生的n个人来重新估计男生身高分布的参数(最大似然估计),女生分布也按照相同的方式估计出来,更新分布。
(4)这时候两个分布的概率也变了,然后重复步骤(1)至(3),直到参数不发生变化为止。
3.2 EM算法推导
3.3 EM算法流程
3.4 EM算法实例