机器学习之EM算法(一)期望极大算法原理及代码实现

期望极大算法(Expectation Maximization)

概率模型有时既含有观测变量( observable variable),又含有隐变量或潜在变量( latent variable)。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。

  • 介绍:EM算法是一种迭代算法,1977年由 Dempster等人总结提出,用于含有隐变量( hidden variable)的概率模型参数的极大似然估计等
  • 组成:E步,求期望( expectation);M步,求极大( maximization)
  • 应用:高斯混合模型GMM、隐式马尔科夫模型HMM等

EM算法的引出

假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是π,p和q。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次试验(这里,n=10),观测结果为1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币各自的正面朝上的概率,即三硬币模型的参数。三硬币模型可以写作:
在这里插入图片描述
这是一个很神奇的式子,p和(1-p)二选一的效果,q和(1-q)也是二选一的效果。
考虑求模型参数θ=(π,p,q)的极大似然估计,即
在这里插入图片描述

EM算法

我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)Y关于参数θ的对数似然函数,即极大化:
在这里插入图片描述
注意到这一极大化的主要困难是式中有未观测数据并有包含和(或积分)的对数。事实上,EM算法是通过迭代逐步近似极大化L(θ)的。假设在第i次迭代后θ的估计值是θ(i)。我们希望新估计值θ能使L(θ)增加,即L(θ)>L(θ(i)),并逐步达到极大值。为此,考虑两者的差:
在这里插入图片描述
利用Jensen不等式( Jensen inequality)得到其下界:
在这里插入图片描述
在这里插入图片描述
L(θ)的下界为:
在这里插入图片描述

B可以简约的看做:B = L(θi) + L(θi) * log(L(θ)/L(θi)) (理解一下)
因此,任何使B增大的θ,也可以让L(θ)增大,为了使L(θ)有尽可能大的增长,选择θ(i+1)
使B达到极大,即
在这里插入图片描述
省去对求θ极大化而言是常数的项:
在这里插入图片描述
这里可以理解为:最大化=L(θi)*log(L(θ))

EM算法步骤

  1. 步骤一: 参数的初值可以任意选择,但需注意EM算法对初值是敏感的
  2. 步骤二: E步求Q(θ,θ(i))。Q函数式中Z是未观测数据,Y是观测数据。注意,Q(θ,θ(i))的第1个变元表示要极大化的参数,第2个变元表示参数的当前估计值。
  3. 步骤三: M步求Q(θ,θ(i))的极大化,得到θ(i+1)。
  4. 步骤四: 给出停止迭代的条件,一般是对较小的正数ε1,ε2,若满足下面条件则停止迭代
    在这里插入图片描述

EM算法简易理解

  • EM算法就是含有隐变量的概率模型参数的极大似然估计法
  • 步骤一: 小猴子先随机找个台阶
  • 步骤二: E步求小猴子在当前位置起跳,跳起高度的期望(Q函数,内部有变量θ),这是一个下界(小猴子至少能跳这么高)
  • 步骤三:
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值