EM算法推导

忘了用了几天的时间来学习EM算法、GMM,学习老师的语音识别程序,先看老师的PPT(简单介绍EM算法和GMM,MFCC的步骤),源代码(刚开始看的时候完全不懂),然后在网上搜索了MFCC方法,通过博客和别人的文档学习GMM,EM算法,又去看了PRLM这本书的第九章(关于GMM和EM的),现在感觉还是似懂非懂,主要是推到过程不清楚加上没有程序实现。可能是我的学习方法有问题。可以和同学多交流,向别人请教下学习方法。也希望看到这篇文章的童鞋在学习方法上不吝赐教。
周日下午,抓住周末的尾巴,知识只有总结了才能更好的理解。

似然函数

假设样本集 D 中有 n 个样本: x1,x2,...xn。其中每个样本都是独立的根据已知形式的概率密度函数 p(x|θ) 抽取得到的。因此下式成立:

p(D|θ)=k=1np(xk|θ)

D 已知所以可以把 p(D|θ) 看成是参数向量 θ 的函数,被称为样本集 D 下的似然函数。
参数向量 θ 的最大似然估计,就是使 p(x|θ) 达到最大值的那个参数向量 θ^ 。也就是说,参数向量 θ 的最大似然估计就是最符合已有的观测样本集的那一个[1]。
为了方便分析,通常情况下,总是使用对数似然函数。
l(θ)=lnp(D|θ)

l(θ)=k=1nlnp(xk|θ)

这个式子会在EM推到过程中用到。

Jensen不等式

没有仔细学习,简单说就是,如果函数 f(x) 是凸函数,那么有 E[f(X)]f([E(X)]) 。如果f是严格凸函数,那么当且仅当 x=c 即x是常量时,等号成立。
如果是凹函数,上式变为小于等于。

EM算法

解决带有隐含变量的模型的最大似然问题。可以用于聚类,参数估计等

1

通过最大似然估计来得到模型中的参数 θ ,目标函数就是上面的对数似然函数。 l(θ)=ni=1lnp(xi;θ)
对于有隐含变量的模型来说(隐含变量可以是丢失的特征或样本的类别),对数似然函数的形式:

l(θ)=i=1nlnp(xi,zi;θ)

隐含变量 zk 对我们来说完全是未知的,假设 z 满足某种分布 Qi(z) ,则有 Qi(z)=1
上面的对数似然函数就可以写成:
l(θ)=i=1nlnzp(xi,zi;θ)

2

要最大化上面的 l(θ) 显然比较困难。这时就要用到Jensen不等式了。
可以把 l(θ) 写成

l(θ)=i=1nlnzQi(zi)p(xi,zi;θ)Qi(zi)

上式最右边的分式 p(xi,zi;θ)Qi(zi) 是Jensen不等式中的随机变量X,把它看作 zi 的函数, Qi(zi) 为概率密度,那么 zQi(zi)p(xi,zi;θ)Qi(zi) 就是Jensen不等式中的 E(X)
因为 ln(x) 为凹函数,所以有
l(θ)=i=1nlnzQi(zi)p(xi,zi;θ)Qi(zi)

i=1nzlnQi(zi)p(xi,zi;θ)Qi(zi)(1)

这样我们就可以不断增大上面(1)式,再使等号成立,从而获得 l(θ) 的最大值。
最大化(1)式的过程为 maximum(M step),更新参数 θ
使等号成立的过程为E step,更新z的分布Q。

3

来看一下,Jensen不等式等号成立时,Q的值。
等号成立时,X为常量,也就是 p(xi,zi;θ)Qi(zi)=c 同时又知道 zQi(z)=1 所以,就可以使 Qi(zi)=p(xi,zi;θ)zp(xi,zi;θ)=p(xi,zi;θ)p(xi;θ)=p(zi|xi;θ) 也就是隐含变量的后验概率。

4

在M步中利用最大似然估计来得到 θ

maximumi=1nzlnQi(zi)p(xi,zi;θ)Qi(zi)

参考文献:
[1] 模式分类 Richard O.Duda,Peter E. Hart,David G.Stock 68~69
另外有几位前辈写的非常好,值得学习
Rachel Zhang EM算法原理
JerryLead EM算法
还有一篇百度文库里的
EM算法和GMM训练应用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值