隐马尔可夫模型(HHM)学习笔记2
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)的极大似然估计,即θ^= argmaxθlogP(Y∣θ)\widehat \theta {\text{ = }}\arg \mathop {max}\limits_\theta \log P\left( {Y|\theta } \right)θ = argθmaxlogP(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[logP(Y,Z∣θ)∣Y,θ(i)]=∑ZlogP(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)=argmaxθQ(θ,θ(i)){\theta ^{\left( {i + 1} \right)}} = \arg \mathop {max}\limits_\theta Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right)θ(i+1)=argθmaxQ(θ,θ(i))4)重复第2步和第3步,直到收敛。
Q函数的定义:完全数据的对数似然函数logP(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))=∑ZlogP(Y,Z∣θ)P(Z∣Y,θ(i))=∑j=110∑k=12logP(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∑10k=1∑2logP(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∑10logπ(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∑101−μ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(θ)=logP(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)如果 logP(Y∣θ)\log P\left( {Y|\theta } \right)logP(Y∣θ)有上界,则L(θ(i))=logP(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相关推荐
- 隐马尔可夫模型HMM学习笔记
参考: https://www.cnblogs.com/pinard/p/6945257.html https://www.cnblogs.com/pinard/p/6991852.html http ...
- 隐马尔可夫模型HMM学习备忘
隐马尔可夫模型HMM学习备忘 目录 隐马尔可夫模型HMM学习备忘 1.马尔可夫模型的理解 2.隐马尔可夫模型 2.1.HHM的组成 2.2.HMM解决的三个基本问题 隐马尔可夫模型示意图如图[1]: ...
- 隐马尔可夫模型HHM重要公式推导
我终于把HMM看完了,这些笔记都是看的过程中自己对推导过程写的注释,还有知识框架.原来卡尔曼和粒子滤波都是属于HMM模型里面的.笔记结构如下: 1. HMM简介:知识体系 + "一个模型&q ...
- 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现
[机器学习]隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现 一.一些概率与期望值的计算 二.非监督学习方法(Baum-Welch算法) 三.python实现 隐马尔可夫模型参数 ...
- 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现
1.隐马尔可夫模型HMM 学习算法,看中文不如看英文,中文喜欢描述的很高深. http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...
- 时序分析:隐马尔可夫模型
在AI综合领域,HMM模型是离散贝叶斯网络,最主要用于非确定性(概率)推理. 上次的文章被标记为链接,真是有意思. 一:隐马尔科夫模型 本人对这篇转载做了修改! 英文链接:h ...
- 隐马尔科夫模型C#语言算法实现
开发工具: Visual Studio v2010 .NET Framework 4 Client Profile 版本历史: V1.1 2011年06月09日 修正UMDHMM在Baum-Welch ...
- 隐马尔科夫模型(HMM)笔记(公式+代码)
文章目录 1. 基本概念 1.1 HMM模型定义 1.2 盒子和球模型 1.3 观测序列生成过程 1.4 HMM模型3个基本问题 2. 概率计算问题 2.1 直接计算法 2.2 前向算法 2.2.1 ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之三
隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 10_隐马尔科夫模型HMM2_统计学习方法
文章目录 四.学习算法 1.监督学习方法 2.非监督学习方法(Baum-Welch算法) 五.预测算法 1.近似算法 2.维特比算法 (1)最优路径特性 (2)两个变量 (3)维特比算法流程 隐马尔科 ...
最新文章
- Linux中assert头文件,linux系统下如何使用assert函数
- python处理csv数据-Python处理csv文件
- python怎么读取列表-python读入列表
- HTTP状态码:204 No Content(总结HTTP状态码)
- 父页面与子ifream传值,父页面获取子页面document元素与方法
- CC3200底板测试-烧写CC3200-LAUNCHXL
- c语言交通灯程序闪烁,用C语言编写的交通灯程序
- 应用filestream设置时存在未知错误_开机黑屏?常见启动黑屏错误的中文解释!学习电脑知识电脑小匠...
- 【Qt教程】1.3 - Qt5 工程文件的功能解读、快捷键
- ip dhcp snooping的设置
- php语言中不能包含html标签,在邮件主题中包含html标签[PHP]
- 正样本和负样本,前景类/ 背景,hard negative mining
- 英特尔傲腾内存linux,英特尔至强6226R处理器性能测评,支持英特尔傲腾持久内存...
- 特征提取 --- 文本特征抽取
- 为什么微信付款服务器异常,微信付款怎么老是交易异常怎么回事?可能是这些原因...
- java校验特殊字符_java 中文及特殊字符校验
- android 系统级闹铃,Android 设置系统闹铃和日历
- 【NLP开发】Python实现中文、英文分词
- 注解的作用 常用注解
- k8s入门:部署应用到 k8s 集群