机器学习之 EM算法
2016-03-15 14:12
281 查看
算法概述
EM算法,即期望极大算法(expectation maximization algorithm)是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望;M步,求极大。数学表示
我们用Y表示观测随机变量(不完全随机变量)的数据,Z表示隐随机变量的数据。Y和Z一起称为完全数据。假设给定观测数据Y,其概率分布是P(Y|θ),其中θ是需要估计的模型参数,那么不完全数据Y的似然函数是P(Y|θ),对数似然函数是L(θ)=logP(Y|θ);假设Y和Z的联合概率分布是P(Y,Z|θ),那么完全数据的对数似然函数是logP(Y,Z|θ)。EM算法通过迭代求L(θ)=logP(Y|θ)的极大似然估计。为降低算法表述的抽象性,我们引入下面的实例。例1. 假设有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假设只能观测到最后掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率。
问题表述:观测数据(硬币B或C的结果)表示为Y=(Y1,Y2,…,Yn),未观测数据(硬币A的结果)表示为Z=(Z1,Z2,…,Zn),则观测数据的似然函数为
P(Y|θ)=∑ZP(Z|θ)P(Y|Z,θ)即P(Y|θ)=∏j=1n[πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj]这里θ=(π,p,q)为模型参数。考虑求模型参数θ的极大似然估计,即θ∗=argmaxθlogP(Y|θ)由于上式没有解析解,故不能用常规的极大似然估计法来求解,而EM提供了一种求解该问题的迭代算法。
EM算法
输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ);输出:输出参数θ.
(1)选择参数的初值θ(0),开始迭代;
(2)E步:记θ(i)为第i次迭代参数θ的估计值,在第i+1次迭代的E步,计算
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))这里,P(Z|Y,θ(i))是在给定观测数据Y和当前的参数估计θ(i)下隐变量数据Z的条件概率分布;
(3)M步:求使Q(θ,θ(i))极大化的θ,确定第i+1次迭代的参数的估计值θ(i+1)
θ(i+1)=argmaxθQ(θ,θ(i))
(4)重复第(2)步和第(3)步,直到收敛.
注:第二步函数Q(θ,θ(i))是EM算法的核心,称为Q函数,即完全数据的对数似然函数logP(Y,Z|θ)关于在给定观测数据Y和当前参数θ(i)下对未观测数据Z的条件概率分布P(Y,Z|θ(i))的期望称为Q函数.
算法说明
(1)迭代时参数的初值可以任意选择,但EM算法对初值敏感;(2)M步求Q函数的极大化,每次迭代使似然函数增大或达到局部极值,即EM不能保证全局最优。
(3)算法停止迭代的条件是对较小的ϵ1,ϵ2,满足
||θ(i+1)−θ(i)||<ϵ1或
||Q(θ(i+1),θ(i))−Q(θ(i),θ(i))||<ϵ2
(4)算法的数学推导可通过迭代逐步近似极大化观测数据Y关于参数θ的对数似然函数得到。假设第i次迭代后θ的估计值是θ(i),若要新估计值θ使L(θ)增加,则有L(θ)>L(θ(i))。则对L(θ)−L(θ(i))运用Jensen不等式容易得到。详细推导可参考《统计学习方法》。
算法推广
广义期望极大(GEM)算法.博文参考自李航老师的《统计学习方法》,未完待续。
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- 反向传播(Backpropagation)算法的数学原理
- 也谈 机器学习到底有没有用 ?
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误
- 机器学习书单
- 北美常用的机器学习/自然语言处理/语音处理经典书籍
- 如何提升COBOL系统代码分析效率
- 自动编程体系设想(一)
- 自动编程体系设想(一)
- 支持向量机(SVM)算法概述
- [Ng机器学习公开课1]机器学习概述