cs229EM algorithm

参考的博客如下,谢谢这几篇文章,让我在理解EM算法的路上少走了许多弯路。

https://blog.csdn.net/v_july_v/article/details/81708386

https://www.cnblogs.com/bigmoyan/p/4550375.html

https://blog.csdn.net/u010834867/article/details/90762296

对应文档note8

 The EM algorithm

Jensen’s inequality

设f是定义域为实数的函数

如果对于所有的实数x,f(x)的二次导数大于0,那么f是凸函数。

当x是向量时,如果其hessian矩阵H是半正定的(H>=0),那么f是凸函数。

如果f的二阶导大于0或者H>0,那么称f是严格凸函数

convex函数(凸函数):E[f(X)] ≥ f(EX). 在这里EX就代表E[X]均值。

特别地,当且仅当P(X = EX) = 1,即X是常量时, 上式取等号,即E[f(X)] = f(EX)。

同样,concave函数(凹函数):E[f(X)] ≤ f(EX)

如图所示:实线f是凸函数, X是随机变量,有0.5的概率是a,有0.5的概率是b


  • 最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。
  • 似然函数:它是给定样本值X下关于(未知)参数θ的函数。常说的概率是指给定参数后,预测即将发生的事件的可能性,然而似然函数关心不再是事件的发生概率,而是已知发生了某些事件,我们希望知道参数应该是多少
  • L(θ|x) = f(x|θ)

  这里的x是指联合样本随机变量X取到的值,即X=x;

  这里的θ是指未知参数;

  这里的f(x|θ)是一个概率密度函数

  • 最大似然函数:似然函数取得最大值表示相应的参数能够使得统计模型最为合理
  • 假定已知某个参数B时,推测事件A会发生的概率写作
  •  通过贝叶斯公式,可以得出

The EM algorithm

EM算法描述:

首先,初始化参数θ   

(1)E-Step:根据参数θ计算每个样本属于zi的概率,这个概率就是Q   

(2)M-Step:根据计算得到的Q,求出含有θ的似然函数的下界并最大化它,得到新的参数θ 重复(1)和(2)直到收敛。

说起来不太容易理解,可以看下面的图理解一下。

左边的图:是初始化一个θ1,然后通过θ1利用Jensen不等式构造下边界J,当使下边界与对数似然函数有一点相等时,即到达圆圈2所在的状态,就最大化这个下边界,找到新的θ2,接着重复上面的步骤。右边的图中黑线就是Jensen不等式构造的下边界函数。


接下来就是公式实现EM算法部分。

首先,列出我们的对数似然函数

转换成下面这种形式:

 

在这里Qi是z的概率分布。 满足条件:

log函数是凹函数,f(EX) ≥ E[f(X)]

在这里X变量是

EX是


接下来就是E-step和M-step的推导过程:


 接下来就是证明似然函数收敛,即证明 即可

 第一个不等式里面Qi的t和P的t+1不同,这是没关系的,因为分子分母都加了一个Qi,可以相互抵消。这一点从

这里面得出来的。

 第二个不等式是根据下面这一点得出来的。


Mixture of Gaussians revisited

在这里,没有介绍混合高斯,建议先学习一下混合高斯再来理解下面的内容。

前面是EM算法的一般形式,现在运用EM算法来解决混合高斯时,EM算法可写成如下形式:

 

现在回顾一下高斯混合算法,由于含有隐藏变量,无法像高斯判别分析一样解决,由此我们借助EM算法。

一般形式的EM算法E步输出:

高斯混合的EM算法E步输出:

所以在M步需要最大化的下边界J变成了

 第三个等式的由来:

 已经得到需要最大化的下边界,接下来就是进行参数的更新。一般的EM算法只需要更新参数θ,在这里我们需要更新三个参数: φ, µ, Σ。

原文地址:https://www.cnblogs.com/loyolh/p/13523815.html