人人都能看懂的EM算法推导
推荐阅读: 👉《Python matplotlib教程1.0》 👉《R 可视化教程1.0》
下面我会从一个案例开始讲解极大似然估计,然后过渡到EM算法,讲解EM算法到底是个什么玩意儿以及它的核心的idea是什么。之后讲解EM算法的推导公式,鉴于网上很多博客文章都是直接翻译吴恩达的课程笔记内容,有很多推导步骤都是跳跃性的,我会把这些中间步骤弥补上,让大家都能看懂EM算法的推导过程。最后以一个二硬币模型作为EM算法的一个实例收尾。希望阅读本篇文章之后能对EM算法有更深的了解和认识。
极大似然和EM(Expectation Maximization)算法,与其说是一种算法,不如说是一种解决问题的思想,解决一类问题的框架,和线性回归,逻辑回归,决策树等一些具体的算法不同,极大似然和EM算法更加抽象,是很多具体算法的基础。
1. 从极大似然到EM
1.1 极大似然
1.1.1 问题描述
1.1.2 估算参数
n 为抽取的样本的个数,本例中
取对数之后累积变为累和,求导更加方便 概率累积会出现数值非常小的情况,比如1e-30,由于计算机的精度是有限的,无法识别这一类数据,取对数之后,更易于计算机的识别(1e-30以10为底取对数后便得到-30)。
1.1.3 极大似然估计总结
假如一个学校的学生男女比例为 9:1 (条件),那么你可以推出,你在这个学校里更大可能性遇到的是男生 (结果); 假如你不知道那女比例,你走在路上,碰到100个人,发现男生就有90个 (结果),这时候你可以推断这个学校的男女比例更有可能为 9:1 (条件),这就是极大似然估计。
1.1.4 求极大似然函数估计值的一般步骤:
1.1.5 极大似然函数的应用
最小二乘估计:最合理的参数估计量应该使得模型能最好地拟合样本数据,也就是估计值和观测值之差的平方和最小,其推导过程如下所示:
极大似然法:最合理的参数估计量应该使得从模型中抽取 m 组样本观测值的概率极大,也就是似然函数极大。
根据之前学过的内容我们知道
1.2 EM算法
1.2.1 问题描述
1.2.2 EM 算法
当我们知道了每个人是男生还是女生,我们可以很容易利用极大似然对男女各自的身高的分布进行估计。 反过来,当我们知道了男女身高的分布参数我们才能知道每一个人更有可能是男生还是女生。例如我们已知男生的身高分布为 , 女生的身高分布为
, 一个学生的身高为180,我们可以推断出这个学生为男生的可能性更大。
先设定男生和女生的身高分布参数(初始值),例如男生的身高分布为 , 女生的身高分布为
,当然了,刚开始肯定没那么准;
然后计算出每个人更可能属于第一个还是第二个正态分布中的(例如,这个人的身高是180,那很明显,他极大可能属于男生),这个是属于Expectation 一步; 我们已经大概地按上面的方法将这 200 个人分为男生和女生两部分,我们就可以根据之前说的极大似然估计分别对男生和女生的身高分布参数进行估计(这不变成了极大似然估计了吗?极大即为Maximization)这步称为 Maximization; 然后,当我们更新这两个分布的时候,每一个学生属于女生还是男生的概率又变了,那么我们就再需要调整E步; ……如此往复,直到参数基本不再发生变化或满足结束条件为止。
1.2.3 总结
2. EM算法推导
2.1 基础知识
2.1.1 凸函数
那么是凸函数。若不是单个实数,而是由实数组成的向量,此时,如果函数的 Hesse 矩阵是半正定的,即
是凸函数。特别地,如果
2.1.2 Jensen不等式
其中,
2.1.3 期望
设
若
2.2 EM算法的推导
其中:
其中 c 为常数,对于任意
方程两边同时累加和:
由于
2.3 EM算法流程
E步:计算联合分布的条件概率期望:
M步:极大化 ,得到
:
重复E、M步骤直到 收敛
2.4 EM算法另一种理解
2.5 EM算法的收敛性思考
2.6. EM算法应用
支持向量机的SMO算法
混合高斯模型
K-means
隐马尔可夫模型
3. EM算法案例-两硬币模型
上面这个式子求导之后发现,5 次实验中A正面向上的次数再除以总次数作为即为
3. 《What is the expectation maximization algorithm?》http://ai.stanford.edu/~chuongdo/papers/em_tutorial.pdf
本文来源网络。仅用于传递和分享更多信息,并不代表本平台赞同其观点和对其真实性负责,版权归原作者所有,如有侵权请联系我们删除。
-END- 推荐阅读:
10W字《R ggplot2可视化教程1.0》来了! 详解Python列表推导式|迭代器|生成器|匿名函数 Jupyter Notebook的16个超棒插件! 临床WGS/WES/Gene Panel/Single gene异同 一图胜千言,超形象图解NumPy教程! 那些神经网络可视化利器 R Graphics Cookbook中译教程
我的学习小圈子👉 加入 赞、在看就是最大的支持