EM算法
简介:本文主要介绍以下两个方面内容:
- 混合高斯(Mixtures of Gaussians)和EM算法
- EM算法相关推导证明
混合高斯和EM算法
关于混合高斯可以看 漫谈 Clustering (3): Gaussian Mixture Model 和 混合高斯模型(Mixtures of Gaussians)和EM算法。观察样本数据X满足公式一概率密度函数:
公式1
其中
表示第i个Gaussian选中的概率,满足
,数据满足第i个Guassian分布的概率为
,那么公式一中未知参数为
采用
极大似然估计法maximum-likelihood estimation (MLE)求参数,似然函数如公式2所示:
公式2
- 公式2对求导并令其等于0可得:
设一个
后验概率(Posterior probability
)如公式3所示:
公式3
可以得出
的表达式如公式4所示:
公式4
- 用拉格朗日乘数法Lagrange multiplier求对。构造拉格朗日乘子如下:
求导可得
易知
,那么最终可以得到
如公式5所示:
公式5
- 计算。这里用到单高斯分布极大似然估计的相关结论(详见Pattern Recognition and Machine Learning 练习2.34)。对于单高斯分布,有如公式6所示结论:
公式6
其中
。那么公式2对
求导并令其等于0可得:
最终整理可以得到 的表达式如公式7所示:
公式7
我们得到问题相关参数的表达式如公式4、公式5、公式7所示,但是无法根据样本数据直接获得,因为在计算后验概率
无法直接计算。EM算法给出这类问题的解决方法,即先初始化一组参数
,在E-Step计算后验概率
,在M步骤更新参数
. 如算法一所示:
算法1:EM算法求解混合高斯
- Initialize:
, ,
- E-Step:
- M-Step:
这部分主要是利用混合高斯引出EM算法,下部分内容详细讲解EM算法推导及相关证明。
EM算法
EM算法是用极大似然估计法求解存在隐含变量(如混合高斯中的
)问题时的一种有效的方法。下面假定观察样本为X,隐含变量为H,联合概率密度
由参数
决定:
我们的目标就是极大化公式8来求参数
:
公式8
直接求解公式8有难度,通常如果隐含变量H知道,那么公式8的求解将会容易一些。
EM算法对此类问题提供了一个有效的解决方法:
重复构造的一个下界(E-Step),优化(提高)这个下界(M-Step)。如果构造和优化下界的任务比较容易,那么我们就间接的极大化公式8求得参数
。
对于每一个i,我们定义隐含变量满足某种分布的概率
(即满足
和
),那么我们可以得到公式9:
公式9
这里公式9最后一步用到了
Jensen不等式,如过f是一个凹函数(如开口向下的抛物线),X是随机变量,有如下结论:
等式成立的条件是X=E[X]即X是常量。易知lnx是一个凹函数,那么最后一步推导如下:
给定一组隐含变量的分布
,公式9给出了
的一个下界。对于给定一组参数
等号成立的条件是
,那么我们可以得到
如公式10所示:
公式10
即
定义为给定样本x和参数
时隐含变量h的后验概率。
给出这个下界后我们可以通过
来优化这个下界:
最终我们可以得到EM算法如算法2所示:
算法2:EM算法过程
- Initialize:
- E-Step:
- M-Step:
剩余的最后一个问题是如何证明EM算法会收敛,也就是证明
,证明如公式11所示:
公式11
其中第一个不等式利用就是公式9结论,第二个不等式是第t+1次迭代式M-Step的过程,最后一个等号就是t次迭代完的结果。至此,关于EM算法的相关推导证明全部结束。
参考文献
3、Gaussian Mixture Model and EM(Expectation Maximization) Algorithm(清华大学PR课件)