机器学习几种模块的原理及公式推导——EM算法

关于EM算法的笔记

本文只是用于作者自己做笔记,防止遗忘,请勿做其它用途~
如果有引用到其它帖子,希望原作者与我联系,我会将您的链接补在后面,最后希望能够帮到各位~

目录

  • 1、EM算法的原理
  • 2、EM算法的公式推导

1、EM算法的原理

  • 1.1 EM算法的引入——在哪种情况下使用EM算法?(EM算法解决哪类问题)
  • 1.2 EM算法原理的描述
  • 1.3 EM算法与KMeans的关系

1.1 EM算法的引入

概率模型有时既含有观测变量(observable variable),又含有隐变量或潜在变量(latent variable)。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,上述方法就失去了作用,而EM算法就是为了计算出含有隐变量的概率模型参数 —— [ 李航,《统计学习方法》,P155]


EM(Expectation-Maximization)算法是常用的估计参数隐变量的利器,它是一种迭代式的方法。在现实应用中,常常会遇到不完整的数据集,比如由于西瓜的根蒂已脱落,无法看出是“蜷缩”还是“硬挺”,则训练样本的“根蒂”属性变量值未知。此时,可以通过EM算法EM算法去解决,EM算法的基本思想是:
若参数Θ已知,则可根据训练数据推断出最优隐变量 Z 的值(E步);
Z 的值已知,则可方便地对参数Θ做极大似然估计(M步)
—— [ 周志华,《机器学习》,P163]

在引入EM算法前,先记录两个概念,一个是极大似然估计,一个是关于条件概率

极大似然估计

原理:极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。(极大似然原理可以用一个例子说明,有两个外形完全相同的箱子,甲箱中有99只白球,1只黑球;乙箱中有99只黑球,1只白球。一次试验中取出一个球,该球是黑球,那么这个黑球是从哪个箱子取出的?回答更像是从乙箱取出的,“更像”的意思就是“最大似然”的意思,这种想法称为“最大似然原理”)。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。
以下图片转自博客(http://blog.csdn.net/zengxiantao1994/article/details/72787849):
转
以下图片转自博客(http://blog.csdn.net/xueyingxue001/article/details/51374100):
转

求解极大似然估计

求解极大似然估计值的一般步骤为:
1、写出似然函数;
2、对似然函数取对数,并整理;
3、求导数/偏导数,令其为0,得到似然方程;
4、解似然方程,得到的参数即为所求。

条件概率

在EM算法中,在得到极大似然函数的时候,有一个地方困惑了很久,原因是条件概率没理解的很透彻。先介绍一下条件概率,然后再根据条件概率的概念,将公式推导一下(具体见2.1EM算法的推导)。

条件概率的定义式: P(A|B)=P(AB) / P(B)

说明: |右边为知道已发生的事件,即条件;|左边为已知条件下,你要判断发生概率的事件
定义式的理解:在事件B已发生的条件下,事件A发生的概率(即B条件下A的条件概率),等于AB都发生的(绝对)概率,除以B发生的(绝对)概率。
Ps:” | “左边和右边的事件,都可以是一个,也都可以是两个以上。如果是两个以上,形式上可以用逗号隔开,也可以不写逗号。即不论是P(A,B|C)(即 P(AB|C));P(A|B,C) (即P(A|BC)),在定义上和P(A|B)没有本质区别,带入条件概率的定义式你就明白等于什么了。介绍条件概率,对P(Y,Z | θ) = P(Y | Z,θ) * P(Z | θ)的推导有很大的帮助。

EM算法的使用情况

使用EM算法一定要待处理样本中包含有隐变量。这句话可以这么理解,我们对于某一个函数f(x; θ),f函数中的x是已知的,但 θ 未知,于是使用极大似然估计可以求得 θ ;但是,如果该函数多了 一个隐变量z,即原函数f(x,z; θ),这里面x已知,z未知,θ未知。对于这种情况,极大似然函数就没办法做了,为了解决上述这种情况,于是发明了EM算法。

EM算法的缺点

EM算法不能保证找到全局最优值(因为EM算法可能会因为陷入局部最优值而找不到全局最优值)。

1.2 EM算法的原理描述

简单来说,EM算法使用两个步骤交替计算:
第一步,期望(E步):利用当前估计的参数值 Θ(i) 来计算对数似然的期望值(为什么这里要计算的是对数似然函数?因为1、对数似然函数是将原始似然函数的连乘变成了连加;2、通常似然函数中的值都比较小,许多很小的数字相乘起来在计算机里很容易造成浮点数下溢,所以对其取对数将其变成连加的。);
第二步,最大化(M步):寻找能使E步产生的似然期望最大化的参数值 Θ(i+1)
然后,新得到的参数值重新被用于E步,如此循环迭代,直至收敛到局部最优解。

EM算法流程

以下图片转自博客(https://www.cnblogs.com/pinard/p/6912636.html):
这里写图片描述

1.3 EM算法与K-means的关系

K-means聚类算法

K-means算法是一种常用的聚类算法,它认为由一组数据点构成的一个聚类中,聚类内部点之间的距离应该小于数据点与聚类外部的点之间的距离。K-means聚类算法也是用于解决隐变量的问题的,首先使用K-means聚类算法的目的是将样本分成k个类,也就是对观测变量 x ,求隐含类别y,最终通过极大似然估计来度量聚类的结果。
K-means聚类算法的具体算法描述:
1、人为指定k值,随机选取k个聚类质心点为μ1,μ2…..μk。
2、重复下面过程直到收敛:
a、对于每个样例 X=Xi,计算其应该属于的类
这里写图片描述
b、对于每个类 μj ,重新计算该类的质心。
这里写图片描述
以下图片转自博客(http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html):
这里写图片描述

★★★★EM算法与K-means聚类算法之间的关系

1、首先K-means聚类算法与EM算法都是用于含有隐变量的概率模型参数的极大似然估计。
2、其次,K-means聚类算法与EM算法都需要在开始前,人为指定一个参数,对于K-means聚类算法需要指定K值,而对于EM算法需要指定起始估计的参数值 Θ。
3、K-means聚类算法与EM算法都是迭代完成的,并且迭代的每一步中,假设的(或上一步得到的)Θ与极大似然期望之间有联系,知道了Θ 就可以计算极大似然期望,而得到极大似然期望,又可以得到参数Θ。
4、(重要)K-Means算法归类为GMM的EM解法的一个特例。(详细参考博客:http://blog.csdn.net/tingyue_/article/details/70739671):
说明:
a、K-Means算法其实是GMM的EM解法在高斯分量协方差 ϵ I→0时的一个特例。
b、K-Means算法对数据点的聚类进行了“硬分配”,即每个数据点只属于唯一的聚类;而GMM的EM解法则基于后验概率分布,对数据点进行“软分配”,即每个单独的高斯模型对数据聚类都有贡献,不过贡献值有大有小。
c、实际应用中,对于 K-means,我们通常是重复一定次数然后取最好的结果,但由于 GMM 每一次迭代的计算量比 K-means 要大许多,使用GMM时,一个更流行的做法是先用 K-means (已经重复并取最优值了)得到一个粗略的结果,然后将其作为初值(只要将 K-means 所得的 聚类中心传给 GMM即可),再用 GMM 进行细致迭代。

2、EM算法的公式推导

  • 2.1 通过近似求解观测数据的对数似然函数的极大化问题推导出EM算法
  • 2.2 EM算法收敛性的证明

2.1 EM算法的公式推导

在EM算法的公式推导中,需要注意如下两点:
1、参数的初值可以任意选择,但是EM算法对初值的选取是敏感的。
2、EM算法的每次迭代,实际上是在求Q函数,及其极大值。
3、E步骤,是将参数的当前估计值代入Q函数中,然后求得Q函数的表达式。
4、M步骤,是通过求Q函数的极大值,从而得到新的参数值θ
5、在运用EM算法时,需要给出停止迭代的条件,一般是两次更新的Q值相减小于较小的正数或者两次更新的参数值相减小于较小的正数即可。
★★★★ EM算法是通过不断求解下界的极大化 逼近 对数似然函数极大化的算法
详见博客:https://www.cnblogs.com/pinard/p/6912636.html 以及 李航的《统计学习方法》P158

2.2 EM算法收敛性的证明

详见 李航的《统计学习方法》P161

猜你喜欢

转载自blog.csdn.net/m0_37885286/article/details/79374587