Baum-Welch算法(EM算法)对HMM模型的训练
Baum-Welch算法就是EM算法,所以首先给出EM算法的Q函数
\[\sum_zP(Z|Y,\theta')\log P(Y,Z|\theta)\]
换成HMM里面的记号便于理解
\[Q(\lambda,\lambda') = \sum_zP(I|O,\lambda')\log P(I,O|\lambda)\]
根据状态序列和观测序列的联合分布
\[\begin{align*}
P(O,I|\lambda) &= \sum_IP(O|I,\lambda)P(I|\lambda)\\
&= \pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)\dots a_{i_{T-1}i_T}b_{i_T}(o_T)\\
\end{align*}\]
代入上式后得
\[\begin{align*}
Q(\lambda, \lambda') &= \sum_IP(I|O,\lambda')\log\pi_{i_1}\\ &+ \sum_IP(I|O,\lambda')\log\sum_{t=1}^Tb_{i_t}(o_t) \\ &+ \sum_IP(I|O,\lambda')\log\sum_{t=2}^Ta_{i_{t-1}i_T}
\end{align*}\]
这便是E步,下面看看M步.
看Q函数得第一步, 由于带有约束
\[\sum_i^N\pi_i = 1\]
这个时候就需要请出拉格朗日乘子了
\[\begin{align*}
L &= \sum_IP(I|O,\lambda')\log\pi_1 + \gamma(\sum_{i=1}^N\pi_i -1)\\
&= \sum_{i=1}^NP(O,i_1=i|\lambda')\log\pi_i + \gamma(\sum_{i=1}^N\pi_i -1)\\
\end{align*}\]
令\(\dfrac{\partial L}{\partial\pi_i} = 0\)得到
\[\begin{align*}
P(O, i_1 = i|\lambda') + \gamma \pi_i &= 0\\
P(O, i_1 = i|\lambda') &= -\gamma \pi_i\\
\sum_{i=1}^NP(O, i_1 = i|\lambda') &= -\gamma \sum_{i=1}^N\pi_i\\
\gamma &= -P(O|\lambda')
\end{align*}\]
回代,得到
\[\pi_i = \dfrac{P(O, i_1=i|\lambda')}{P(O|\lambda')}\]
其他得参数同样可以得到
Baum-Welch算法(EM算法)对HMM模型的训练的更多相关文章
- 简单易学的机器学习算法——EM算法
简单易学的机器学习算法——EM算法 一.机器学习中的参数估计问题 在前面的博文中,如“简单易学的机器学习算法——Logistic回归”中,采用了极大似然函数对其模型中的参数进行估计,简单来讲即对于一系 ...
- 详解十大经典机器学习算法——EM算法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第14篇文章,我们来聊聊大名鼎鼎的EM算法. EM算法的英文全称是Expectation-maximization al ...
- NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)
最近接触了pLSA模型,该模型需要使用期望最大化(Expectation Maximization)算法求解. 本文简述了以下内容: 为什么需要EM算法 EM算法的推导与流程 EM算法的收敛性定理 使 ...
- 极大似然估计、贝叶斯估计、EM算法
参考文献:http://blog.csdn.net/zouxy09/article/details/8537620 极大似然估计 已知样本满足某种概率分布,但是其中具体的参数不清楚,极大似然估计估计就 ...
- EM算法原理以及高斯混合模型实践
EM算法有很多的应用: 最广泛的就是GMM混合高斯模型.聚类.HMM等等. The EM Algorithm 高斯混合模型(Mixtures of Gaussians)和EM算法 EM算法 求最大似然 ...
- EM算法(3):EM算法运用
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(3):EM算法运用 1. 内容 EM算法全称为 Exp ...
- EM算法(2):GMM训练算法
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(2):GMM训练算法 1. 简介 GMM模型全称为Ga ...
- 高斯混合模型参数估计的EM算法
# coding:utf-8 import numpy as np def qq(y,alpha,mu,sigma,K,gama):#计算Q函数 gsum=[] n=len(y) for k in r ...
- 机器学习(七)EM算法、GMM
一.GMM算法 EM算法实在是难以介绍清楚,因此我们用EM算法的一个特例GMM算法作为引入. 1.GMM算法问题描述 GMM模型称为混合高斯分布,顾名思义,它是由几组分别符合不同参数的高斯分布的数据混 ...
随机推荐
- 安装python3后,没有Scripts目录的解决办法
设置好python环境变量后,执行命令即可:python -m ensurepip
- jmeter参考网址
http://blog.csdn.net/dongdong9223/article/details/49248979 http://blog.csdn.net/hjh00/article/detail ...
- 洛谷 P2691 逃离
题目描述 一个n×n栅格是由n行和n列顶点组成的一个无向图,如图所示.用(i,j)表示处于第i行第j列的顶点.除了边界顶点(即满足i=1,i=n,j=1或j=n的顶点(i,j)),栅格中的所有其他顶点 ...
- python基础教程总结11——图形用户界面GUI
1. 丰富的平台 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了 ...
- 10分钟搞懂toString和valueOf函数(详细版)
首先要说明的是这两种方法是toPrimitive抽象操作里会经常用到的. 默认情况下,执行这个抽象操作时会先执行valueOf方法,如果返回的不是原始值,会继续执行toString方法,如果返回的还不 ...
- c#中的里氏转换和Java中强制类型转换在多态中的应用
在c#中: 注意: 子类并没有继承父类的构造函数,而是会默认调用父类那个无参数的构造函数. 如果一个子类继承了一个父类,那么这个子类除了可以使用自己的成员外,还可以使用从父类那里继承过来的成员.但是父 ...
- 原型与原型继承demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js中charAt()与charCodeAt()区别
1. str.charAt(index); 返回指定位置的字符 字符串中第一个字符的下标是 0.如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串. ind ...
- [LUOGU] 4149 [IOI2011]Race
点分治裸题 #include<iostream> #include<cstring> #include<cstdio> using namespace std; i ...
- 【模板】树套树(线段树套Splay)
如题,这是一个模板... #include <algorithm> #include <iostream> #include <cstring> #include ...