文章目录
- 前言
- 一、为什么要用EM算法?
- 二、EM算法
- 三、EM算法公式推导
- 总结
前言
之前已经说过极大似然估计问题,链接在这,自行查看,极大似然估计就是利用极大似然的原理去解决概率生成模型的参数估计问题,像之前文章中举得对全国人们身高进行估计的例子,就是假设全国人民身高服从高斯分布,已知条件是抽样的n个人的身高,然后利用极大估计去求解这个高斯分布的均值和方差,然后得出答案。
一、为什么要用EM算法?
前言中已经简单回顾了一下极大似然估计,那么为什么要有EM算法呢?或者说EM算法是用来干什么的呢??
其实EM算法跟极大似然估计一样,也是用来解决参数估计问题的。EM算法的目的是解决具有隐变量的混合模型的参数估计问题。注意两个点:隐变量和混合模型
举个简单的例子:(具体例子可以到之前的文章查看)
极大似然估计可以解决的全国人们身高估计问题是单高斯模型的问题。
单高斯模型还是比较简单,实际上还有高斯混合模型(GMM)。
首先通过一个例子引出高斯混合模型。这个例子的数据集被称为“老忠实间歇喷泉”数据集,由美国黄石国家公园的老忠实间歇喷泉的272次喷发的测量数据组成。每条测量记录包括喷发持续了几分钟(横轴)和距离下次喷发间隔了几分钟(纵轴)。我们看到数据集主要聚集在两大堆中,一个简单的高斯分布不能描述这种结构,而两个高斯分布的线性叠加可以更好地描述这个数据集的特征。
我们看上图就是“老忠实间歇喷泉”的数据集,左图,我们用一个高斯模型对样本来做分析,显然,一个高斯分布是不合适的。一般来说越靠近椭圆中心样本出现的概率越大,这是由概率密度函数决定的,但是这个高斯分布的椭圆中心的样本量却极少。显然样本服从单高斯分布的假设并不合理。单高斯模型无法产生这样的样本。基于此,我们引入了高斯混合模型,我们发现用两个高斯模型通过一定的权重形成的混合高斯模型可以产生这样的样本,如上面右图。
高斯混合模型的本质就是融合几个单高斯模型,来使的模型更加复杂,从而产生更复杂的样本。理论上,如果某个混个高斯模型融合的高斯模型个数足够多,他们之间的权重设定的足够合理,这个混合模型可以拟合任意分布的样本。
更一般话的描述为:假设混合高斯模型有K个高斯模型组成(即数据包含K个类),则GMM的概率密度函数如下:
此时,高斯混合模型的参数θ={μ,Σ,α},其中α为单高斯混合模型的权重。如果我们按照前面单高斯模型求解参数,则我们要用似然函数来求解,此混合模型的对数似然函数为:
用MLE求参数θ为:
根据上图,我们可以看到,如果我们用MLE来求解高斯混合模型的话,我们很难求得,因为上式中log后面有一个求和并且高斯分布也是多维的,这样我们是无法通过求导得到参数。
此时,我们就可以引入EM算法来解决。
二、EM算法
----------------证明EM算法的收敛性,这个证明可以不看,但是要知道结论----------
这个证明,就是用来证明EM算法求解的合法性的。EM算法是逐步迭代来求解使期望最大的参数θ的。
也就是θt到θt+1,应该使下式成立,只有下式成立,才能说明EM算法是通过迭代,一步一步的求解到最大值的。
证明过程:
根据上面的证明,我们看到,似然函数在每一步都会增大。也就是EM算法通过迭代的方式求解。
----------------证明EM算法的收敛性,这个证明可以不看,但是要知道结论----------
三、EM算法公式推导
进一步的,我们看 EM 迭代过程中的式子是怎么来的:
总结
三、EM算法公式推导是怎么来的呢?或者说我们为什么要这么推导?为什么要这样转换呢???现在来解释一下:
现在我们只有一些样本X,这些样本X是满足什么分布的我们并不知道。假如说将其看作是概率模型的话,那么这个P(X)可能非常的复杂,我们无法只根据手中的样本X去知道P(X)。现在我们可以做出合理的假设,假设存在隐变量z,生成模型是通过隐变量z生成x。而且对z会做出一些合理假设,z可能是离散的,也可能满足均匀分布,也可能是服从高斯分布等等。
一旦有了这种假设,P(X)就有了结构,P(X)=P(Z,X)/P(Z|X),那么我们去求解P(X)就相当于求解等式的右边P(Z,X)/P(Z|X)。因此我们可以进行如三、EM算法公式推导中那样的推导,最终得到EM算法的总公式。