EM算法

整理了李航的书。
EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计,EM算法的每次迭代由两步组成:E步,求期望;M步,求极大。下文仅讨论极大似然估计。
由一个例子引入EM算法:
假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别为π\piπ,ppp,qqq。进行如下掷硬币实验:先掷硬币A,若正面则再掷硬币B;若反面则再掷硬币C;记第二次掷硬币的结果,正面记为1,反面记为0;独立地重复nnn次实验(这里n=10n=10n=10),结果如下:1,1,0,1,0,0,1,0,1,11,1,0,1,0,0,1,0,1,11,1,0,1,0,0,1,0,1,1。假设只能观测到掷硬币的结果,不能观测掷硬币的过程,估计π\piπ,ppp,qqq。
三硬币模型可以写作:P(y∣θ)=∑z(y,z∣θ)=∑zP(z∣θ)P(y∣z,θ)=πpy(1−p)1−y+(1−π)q1−y(1−q)qP\left( {y|\theta } \right) = \sum\limits_z {\left( {y,z|\theta } \right) = \sum\limits_z {P\left( {z|\theta } \right)P\left( {y|z,\theta } \right) = \pi {p^y}{{\left( {1 - p} \right)}^{1 - y}} + \left( {1 - \pi } \right){q^{1 - y}}{{\left( {1 - q} \right)}^q}} } P(y∣θ)=z∑​(y,z∣θ)=z∑​P(z∣θ)P(y∣z,θ)=πpy(1−p)1−y+(1−π)q1−y(1−q)q这里随机变量yyy是观测变量,表示某次试验的结果是1或0;随机变量zzz是隐变量,表示未观测到的掷硬币A的结果;θ=(π,p,q)\theta = \left( {\pi ,p,q} \right)θ=(π,p,q)是模型参数。
然后求模型θ=(π,p,q)\theta = \left( {\pi ,p,q} \right)θ=(π,p,q)的极大似然估计,即θ^= arg⁡maxθlog⁡P(Y∣θ)\widehat \theta {\text{ = }}\arg \mathop {max}\limits_\theta \log P\left( {Y|\theta } \right)θ = argθmax​logP(Y∣θ)。这个问题没有解析解,只能通过迭代的方法求解。EM算法就是一种解决这类问题的迭算法。

EM算法步骤:
输入:观测变量数据YYY,隐变量数据ZZZ,联合分布P(Y,Z∣θ)P\left( {Y,Z|\theta } \right)P(Y,Z∣θ),条件分布P(Z∣Y,θ)P\left( {Z|Y,\theta } \right)P(Z∣Y,θ);
输出:模型参数θ\thetaθ
1)选择参数的初值θ(0){\theta ^{\left( 0 \right)}}θ(0),开始迭代。初值是可以任意选择,但是EM算法是初值敏感的。
2)E步:记θ(i){\theta ^{\left( i \right)}}θ(i)为第iii次迭代参数θ\thetaθ的估计值,在第i+1i+1i+1次迭代的E步,计算Q(θ,θ(i))=EZ[log⁡P(Y,Z∣θ)∣Y,θ(i)]=∑Zlog⁡P(Y,Z∣θ)P(Z∣Y,θ(i))Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right) = {E_Z}\left[ {\log P\left( {Y,Z|\theta } \right)|Y,{\theta ^{\left( i \right)}}} \right] = \sum\limits_Z {\log P\left( {Y,Z|\theta } \right)P\left( {Z|Y,{\theta ^{\left( i \right)}}} \right)} Q(θ,θ(i))=EZ​[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑​logP(Y,Z∣θ)P(Z∣Y,θ(i))函数Q(θ,θ(i))Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right)Q(θ,θ(i))是EM算法的核心,称为Q函数。
3)M步:求使Q(θ,θ(i))Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right)Q(θ,θ(i))极大化的θ\thetaθ,确定第i+1i+1i+1次迭代的参数的估计值θ(i+1){{\theta ^{\left( i+1 \right)}}}θ(i+1)θ(i+1)=arg⁡maxθQ(θ,θ(i)){\theta ^{\left( {i + 1} \right)}} = \arg \mathop {max}\limits_\theta Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right)θ(i+1)=argθmax​Q(θ,θ(i))4)重复第2步和第3步,直到收敛。
Q函数的定义:完全数据的对数似然函数log⁡P(Y,Z∣θ)\log P\left( {Y,Z|\theta } \right)logP(Y,Z∣θ)关于在给定观测数据YYY和当前参数θ(i)\theta ^{\left( i \right)}θ(i)下对未观测数据ZZZ的条件概率分布P(Z∣Y,θ(i))P\left( {Z|Y,{\theta ^{\left( i \right)}}}\right)P(Z∣Y,θ(i))的期望称为Q函数。
求解上述三硬币问题:
1)选择模型参数初值为θ(0)={0.5,0.5,0.5}{\theta ^{\left( 0 \right)}} = \left\{ {0.5,0.5,0.5} \right\}θ(0)={0.5,0.5,0.5}。
2)E步:Q(θ,θ(i))=∑Zlog⁡P(Y,Z∣θ)P(Z∣Y,θ(i))=∑j=110∑k=12log⁡P(yj,zk∣θ)P(zk∣yj,θ(i))=Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right) = \sum\limits_Z {\log P\left( {Y,Z|\theta } \right)P\left( {Z|Y,{\theta ^{\left( i \right)}}} \right)} = \sum\limits_{j = 1}^{10} {\sum\limits_{k = 1}^2 {\log P\left( {{y_j},{z_k}|\theta } \right)P\left( {{z_k}|{y_j},{\theta ^{\left( i \right)}}} \right)} } = Q(θ,θ(i))=Z∑​logP(Y,Z∣θ)P(Z∣Y,θ(i))=j=1∑10​k=1∑2​logP(yj​,zk​∣θ)P(zk​∣yj​,θ(i))= ∑j=110log⁡π(i+1)(p(i+1))yj(1−p(i+1))1−yjπ(i)(p(i))yj(1−p(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i))1−yj+log⁡(1−π(i+1))(q(i+1))yj(1−q(i+1))1−yj(1−π(i))(q(i))yj(1−q(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i))1−yj\begin{matrix}\sum\limits_{j = 1}^{10}\end{matrix}\begin{matrix} {\log {\pi ^{\left( {i + 1} \right)}}{{\left( {{p^{\left( {i + 1} \right)}}} \right)}^{{y_j}}}{{\left( {1 - {p^{\left( {i + 1} \right)}}} \right)}^{1 - {y_j}}}\frac{{{\pi ^{\left( i \right)}}{{\left( {{p^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {p^{\left( i \right)}}} \right)}^{1 - {y_j}}}}}{{{\pi ^{\left( i \right)}}{{\left( {{p^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {p^{\left( i \right)}}} \right)}^{1 - {y_j}}} + \left( {1 - {\pi ^{\left( i \right)}}} \right){{\left( {{q^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {q^{\left( i \right)}}} \right)}^{1-{y_j}}}}} + } \\ {\log \left( {1 - {\pi ^{\left( i+1 \right)}}} \right){{\left( {{q^{\left( i+1 \right)}}} \right)}^{{y_j}}}{{\left( {1 - {q^{\left( i+1 \right)}}} \right)}^{1-{y_j}}}\frac{{\left( {1 - {\pi ^{\left( i \right)}}} \right){{\left( {{q^{\left( i \right)}}} \right)}^{y_j}}{{\left( {1 - {q^{\left( i \right)}}} \right)}^{1-{y_j}}}}}{{{\pi ^{\left( i \right)}}{{\left( {{p^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {p^{\left( i \right)}}} \right)}^{1 - {y_j}}} + \left( {1 - {\pi ^{\left( i \right)}}} \right){{\left( {{q^{\left( i \right)}}} \right)}^{y_j}}{{\left( {1 - {q^{\left( i \right)}}} \right)}^{1-{y_j}}}}}}\end{matrix}j=1∑10​​logπ(i+1)(p(i+1))yj​(1−p(i+1))1−yj​π(i)(p(i))yj​(1−p(i))1−yj​+(1−π(i))(q(i))yj​(1−q(i))1−yj​π(i)(p(i))yj​(1−p(i))1−yj​​+log(1−π(i+1))(q(i+1))yj​(1−q(i+1))1−yj​π(i)(p(i))yj​(1−p(i))1−yj​+(1−π(i))(q(i))yj​(1−q(i))1−yj​(1−π(i))(q(i))yj​(1−q(i))1−yj​​​
3)M步:求使Q(θ,θ(i))Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right)Q(θ,θ(i))极大化的θ\thetaθ。令μj(i+1)=π(i)(p(i))yj(1−p(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i))1−yj{\mu_j ^{\left( {i + 1} \right)}} = \frac{{{\pi ^{\left( i \right)}}{{\left( {{p^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {p^{\left( i \right)}}} \right)}^{1 - {y_j}}}}}{{{\pi ^{\left( i \right)}}{{\left( {{p^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {p^{\left( i \right)}}} \right)}^{1 - {y_j}}} + \left( {1 - {\pi ^{\left( i \right)}}} \right){{\left( {{q^{\left( i \right)}}} \right)}^{{y_j}}}{{\left( {1 - {q^{\left( i \right)}}} \right)}^{1 - {y_j}}}}}μj(i+1)​=π(i)(p(i))yj​(1−p(i))1−yj​+(1−π(i))(q(i))yj​(1−q(i))1−yj​π(i)(p(i))yj​(1−p(i))1−yj​​∂Q∂π(i+1)=∑j=110μj(i+1)π(i+1)−1−μj(i+1)1−π(i+1)=0{\bf \frac{{\partial Q}}{{\partial {\pi ^{\left( {i + 1} \right)}}}}} = \sum\limits_{j = 1}^{10} {\frac{{{\mu_j ^{\left( i+1 \right)}}}}{{{\pi ^{\left( {i + 1} \right)}}}} - \frac{{1 - {\mu_j ^{\left( i+1 \right)}}}}{{1 - {\pi ^{\left( {i + 1} \right)}}}}} = 0∂π(i+1)∂Q​=j=1∑10​π(i+1)μj(i+1)​​−1−π(i+1)1−μj(i+1)​​=0⇒∑j=110μj(i+1)(1−π(i+1))−(1−μj(i+1))π(i+1)=0\Rightarrow\sum\limits_{j = 1}^{10} {{\mu_j ^{\left( i+1 \right)}}\left( {1 - {\pi ^{\left( {i + 1} \right)}}} \right) - \left( {1 - {\mu_j ^{\left( i+1 \right)}}} \right){\pi ^{\left( {i + 1} \right)}}} = 0⇒j=1∑10​μj(i+1)​(1−π(i+1))−(1−μj(i+1)​)π(i+1)=0⇒π(i+1)=∑i=110μj(i+1)10\Rightarrow{\pi ^{\left( {i + 1} \right)}} = {\bf\frac{{\sum\limits_{i = 1}^{10} {{\mu_j ^{\left( i+1 \right)}}} }}{{10}}}⇒π(i+1)=10i=1∑10​μj(i+1)​​∂Q∂p(i+1)=∑j=110μj(i+1)(yi(p(i+1))yi−1(1−p(i+1))1−yi−(1−yi)(p(i+1))yi(1−p(i+1))−yi)(p(i+1))yi(1−p(i+1))1−yi=0{\bf \frac{{\partial {\text{Q}}}}{{\partial {p^{\left( {i + 1} \right)}}}}} = \sum\limits_{j = 1}^{10} {\frac{{{\mu _j}^{\left( {i + 1} \right)}\left( {{y_i}{{\left( {{p^{\left( {i + 1} \right)}}} \right)}^{{y_i} - 1}}{{\left( {1 - {p^{\left( {i + 1} \right)}}} \right)}^{1 - {y_i}}} - \left( {1 - {y_i}} \right){{\left( {{p^{\left( {i + 1} \right)}}} \right)}^{{y_i}}}{{\left( {1 - {p^{\left( {i + 1} \right)}}} \right)}^{ - {y_i}}}} \right)}}{{{{\left( {{p^{\left( {i + 1} \right)}}} \right)}^{{y_i}}}{{\left( {1 - {p^{\left( {i + 1} \right)}}} \right)}^{1 - {y_i}}}}}} = 0∂p(i+1)∂Q​=j=1∑10​(p(i+1))yi​(1−p(i+1))1−yi​μj​(i+1)(yi​(p(i+1))yi​−1(1−p(i+1))1−yi​−(1−yi​)(p(i+1))yi​(1−p(i+1))−yi​)​=0⇒∑j=110μj(i+1)[yj(1−p(i+1))−(1−yj)p(i+1)]=0\Rightarrow \sum\limits_{j = 1}^{10} {{\mu _j}^{\left( {i + 1} \right)}\left[ {{y_j}\left( {1 - {p^{\left( {i + 1} \right)}}} \right) - \left( {1 - {y_j}} \right){p^{\left( {i + 1} \right)}}} \right]} = 0⇒j=1∑10​μj​(i+1)[yj​(1−p(i+1))−(1−yj​)p(i+1)]=0⇒∑j=110μj(i+1)yj=p(i+1)∑j=110μj(i+1)⇒p(i+1)=∑j=110μj(i+1)yj∑j=110μj(i+1)\Rightarrow \sum\limits_{j = 1}^{10} {{\mu _j}^{\left( {i + 1} \right)}{y_j}} = {p^{\left( {i + 1} \right)}}\sum\limits_{j = 1}^{10} {{\mu _j}^{\left( {i + 1} \right)}} \Rightarrow {\bf{p^{\left( {i + 1} \right)}} = \frac{{\sum\limits_{j = 1}^{10} {{\mu _j}^{\left( {i + 1} \right)}{y_j}} }}{{\sum\limits_{j = 1}^{10} {{\mu _j}^{\left( {i + 1} \right)}} }}}⇒j=1∑10​μj​(i+1)yj​=p(i+1)j=1∑10​μj​(i+1)⇒p(i+1)=j=1∑10​μj​(i+1)j=1∑10​μj​(i+1)yj​​同理,由∂Q∂q(i+1)=0{\bf \frac{{\partial {\text{Q}}}}{{\partial {q^{\left( {i + 1} \right)}}}} = 0}∂q(i+1)∂Q​=0得q(i+1)=∑j=110(1−μj(i+1))yj∑j=1101−μj(i+1){\bf{q^{\left( {i + 1} \right)}} = \frac{{\sum\limits_{j = 1}^{10} {\left( {1 - {\mu _j}^{\left( {i + 1} \right)}} \right){y_j}} }}{{\sum\limits_{j = 1}^{10} {1 - {\mu _j}^{\left( {i + 1} \right)}} }}}q(i+1)=j=1∑10​1−μj​(i+1)j=1∑10​(1−μj​(i+1))yj​​

EM算法的收敛性

定理一:设P(Y∣θ)P\left( {Y|\theta } \right)P(Y∣θ)为观测数据的似然函数,θ(i)(i=1,2,⋯){\theta ^{\left( i \right)}}\left( {i = 1,2, \cdots } \right)θ(i)(i=1,2,⋯)为EM算法得到的参数估计序列,P(Y∣θ(i))(i=1,2,⋯)P\left( {Y|{\theta ^{\left( i \right)}}} \right)\left( {i = 1,2, \cdots } \right)P(Y∣θ(i))(i=1,2,⋯)为对应的似然函数序列,则P(Y∣θ(i))P\left( {Y|{\theta ^{\left( i \right)}}} \right)P(Y∣θ(i))是单调递增的,即P(Y∣θ(i+1))⩾P(Y∣θ(i))P\left( {Y|{\theta ^{\left( {i + 1} \right)}}} \right) \geqslant P\left( {Y|{\theta ^{\left( i \right)}}} \right)P(Y∣θ(i+1))⩾P(Y∣θ(i))。
定理二:设L(θ)=log⁡P(Y∣θ)L\left( \theta \right) = \log P\left( {Y|\theta } \right)L(θ)=logP(Y∣θ)为观测数据的对数似然函数,θ(i)(i=1,2,⋯){\theta ^{\left( i \right)}}\left( {i = 1,2, \cdots } \right)θ(i)(i=1,2,⋯)为EM算法得到的参数估计序列,L(θ(i))(i=1,2,⋯)L\left( {{\theta ^{\left( i \right)}}} \right)\left( {i = 1,2, \cdots } \right)L(θ(i))(i=1,2,⋯)为对应的对数似然函数序列。
1)如果 log⁡P(Y∣θ)\log P\left( {Y|\theta } \right)logP(Y∣θ)有上界,则L(θ(i))=log⁡P(Y∣θ(i))L\left( {{\theta ^{\left( i \right)}}} \right) = \log P\left( {Y|{\theta ^{\left( i \right)}}} \right)L(θ(i))=logP(Y∣θ(i))收敛到某一值L∗{L^*}L∗;
2)在函数Q(θ,θ′)Q\left( {\theta ,{\theta^\prime}} \right)Q(θ,θ′)与L(θ)L\left( \theta \right)L(θ)满足一定条件下,由EM算法得到的参数估计序列θ(i)\theta ^{\left( i \right)}θ(i)的收敛值θ∗{\theta ^ * }θ∗是L(θ)L\left( \theta \right)L(θ)的稳定点。
EM算法的收敛性包含关于对数似然函数序列L(θ(i))L\left( {{\theta ^{\left( i \right)}}} \right)L(θ(i))的收敛性和关于参数估计序列θ(i)\theta ^{\left( i \right)}θ(i)的收敛性两层意思,前者不包括后者。定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。
下一篇《隐马尔可夫模型的训练》

隐马尔可夫模型(HHM)学习笔记2相关推荐

  1. 隐马尔可夫模型HMM学习笔记

    参考: https://www.cnblogs.com/pinard/p/6945257.html https://www.cnblogs.com/pinard/p/6991852.html http ...

  2. 隐马尔可夫模型HMM学习备忘

    隐马尔可夫模型HMM学习备忘 目录 隐马尔可夫模型HMM学习备忘 1.马尔可夫模型的理解 2.隐马尔可夫模型 2.1.HHM的组成 2.2.HMM解决的三个基本问题 隐马尔可夫模型示意图如图[1]: ...

  3. 隐马尔可夫模型HHM重要公式推导

    我终于把HMM看完了,这些笔记都是看的过程中自己对推导过程写的注释,还有知识框架.原来卡尔曼和粒子滤波都是属于HMM模型里面的.笔记结构如下: 1. HMM简介:知识体系 + "一个模型&q ...

  4. 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现 一.一些概率与期望值的计算 二.非监督学习方法(Baum-Welch算法) 三.python实现 隐马尔可夫模型参数 ...

  5. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  6. 时序分析:隐马尔可夫模型

         在AI综合领域,HMM模型是离散贝叶斯网络,最主要用于非确定性(概率)推理. 上次的文章被标记为链接,真是有意思.      一:隐马尔科夫模型    本人对这篇转载做了修改! 英文链接:h ...

  7. 隐马尔科夫模型C#语言算法实现

    开发工具: Visual Studio v2010 .NET Framework 4 Client Profile 版本历史: V1.1 2011年06月09日 修正UMDHMM在Baum-Welch ...

  8. 隐马尔科夫模型(HMM)笔记(公式+代码)

    文章目录 1. 基本概念 1.1 HMM模型定义 1.2 盒子和球模型 1.3 观测序列生成过程 1.4 HMM模型3个基本问题 2. 概率计算问题 2.1 直接计算法 2.2 前向算法 2.2.1 ...

  9. 隐马尔科夫模型(Hidden Markov Models) 系列之三

    隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  10. 10_隐马尔科夫模型HMM2_统计学习方法

    文章目录 四.学习算法 1.监督学习方法 2.非监督学习方法(Baum-Welch算法) 五.预测算法 1.近似算法 2.维特比算法 (1)最优路径特性 (2)两个变量 (3)维特比算法流程 隐马尔科 ...

最新文章

  1. Linux中assert头文件,linux系统下如何使用assert函数
  2. python处理csv数据-Python处理csv文件
  3. python怎么读取列表-python读入列表
  4. HTTP状态码:204 No Content(总结HTTP状态码)
  5. 父页面与子ifream传值,父页面获取子页面document元素与方法
  6. CC3200底板测试-烧写CC3200-LAUNCHXL
  7. c语言交通灯程序闪烁,用C语言编写的交通灯程序
  8. 应用filestream设置时存在未知错误_开机黑屏?常见启动黑屏错误的中文解释!学习电脑知识电脑小匠...
  9. 【Qt教程】1.3 - Qt5 工程文件的功能解读、快捷键
  10. ip dhcp snooping的设置
  11. php语言中不能包含html标签,在邮件主题中包含html标签[PHP]
  12. 正样本和负样本,前景类/ 背景,hard negative mining
  13. 英特尔傲腾内存linux,英特尔至强6226R处理器性能测评,支持英特尔傲腾持久内存...
  14. 特征提取 --- 文本特征抽取
  15. 为什么微信付款服务器异常,微信付款怎么老是交易异常怎么回事?可能是这些原因...
  16. java校验特殊字符_java 中文及特殊字符校验
  17. android 系统级闹铃,Android 设置系统闹铃和日历
  18. 【NLP开发】Python实现中文、英文分词
  19. 注解的作用 常用注解
  20. k8s入门:部署应用到 k8s 集群

热门文章

  1. 串口通信协议数据处理二
  2. PHP JS浏览器实时获取摄像头内容(附代码)
  3. 要怎么通过加密软件来实现企业的管理?迅软DSE帮你防止隐私泄露
  4. 老翁多年笔耕不断的奖赏
  5. matlab eig eigs,Matlab中的eig函数跟eigs函数的异同点
  6. MDaemon退信分析:553 MI:SUM
  7. win7 添加 快速启动方法
  8. APP安卓应用市场上架隐私政策问题、自启动和关联启动说明
  9. Storybook:组件开发
  10. 浏览器端 调用百度api定位