你真的了解EM算法吗?

首先说说什么是EM算法?

    最大期望算法(Expectation-maximization algorithm,又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。在统计计算中,最大期望(EM)算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。最大期望算法经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

能不能举个例子?

上面我们加的黑体中表述EM算法依赖于隐形变量,那什么是隐性变量呢?

你知道一些东西(观察的到的数据), 你不知道一些东西(观察不到的),你很好奇,想知道点那些不了解的东西。怎么办呢,你就根据一些假设(parameter)先猜(E-step),把那些不知道的东西都猜出来,假装你全都知道了; 然后有了这些猜出来的数据,你反思一下,更新一下你的假设(parameter), 让你观察到的数据更加可能(Maximize likelihood; M-stemp); 然后再猜,在反思,最后,你就得到了一个可以解释整个数据的假设了。

现在有两个硬币A和B,要估计的参数是它们各自翻正面(head)的概率。观察的过程是先随机选A或者B,然后扔10次。以上步骤重复5次。

问:出现下图H,T这种分布的概率是多少(eg H T T T H H T H T H)

上述的含义就是有两枚硬币,并且只知道抛出以后的分布,但是不知道到底是使用哪个硬币抛出来的(使用哪个硬币就是隐变量)

你真的了解EM算法吗?_第1张图片
EM算法解释

不知道上图这个计算流程小伙伴明白吗?我还是用ipad手写一遍,供大家参考一下


你真的了解EM算法吗?_第2张图片

下面从数学的角度解释一下什么是EM算法得推导

1. 在推导之前介绍两个基本的概念:

1. 完全数据:观测随机变量的数据(上图中出现的九正一反)以及表示隐随机变量的数据(使用哪个硬币),两者连在一起称为完全数据

2. 不完全数据:只出现观测数据而不出现隐随机变量数据就叫做不完全数据

2. 明白我们解决的问题是什么?

在举上图的例子的时候,我特意的把问题加粗了,我用EM算法解决的问题到底是什么,这才是最关键的!再次表达一遍:直接给出观测随机变量的数据了,但是这些观测的数据依赖于一些隐藏的变量,最终的问题就是出现这样的观测随机变量的数据的概率是多少?

3. EM算法数学推导(纯手写,尽量在我理解的范围内把问题说清楚)


你真的了解EM算法吗?_第3张图片
EM算法迭代方式
你真的了解EM算法吗?_第4张图片
Jessen不等式的证明
你真的了解EM算法吗?_第5张图片
EM算法最终简化本质


EM迭代

4. EM算法的收敛性证明


你真的了解EM算法吗?_第6张图片
EM算法收敛性的证明

5. EM算法得应用以及启发

EM算法是算法不Model,而与EM算法最密切最常用的就是GMM模型,对于GMM的应用,我们下一章再说!

其实很多数学公式猛一看真的很吓人,我的很多同学,学ML或者DL很多公式不自己推,就是寥寥看了一眼,其实自己静下心去推,没什么吓人的,都是“纸老虎”。如果真的想在这个行业干下去,我觉得这真的是一种能力吧!如果只是大概了解原理,只会陷入“你以为你明白了”这种困境!

希望大家一起进步,共勉!

你可能感兴趣的:(你真的了解EM算法吗?)