Hidden Markov Models笔记
Andrew Ng CS229 讲义: https://pan.baidu.com/s/12zMYBY1NLzkluHNeMNO6MQ
HMM模型常用于NLP、语音等领域。
- 马尔科夫模型(Markov Model)
只有状态序列z。状态转移矩阵A。
有限视野假设(limited horizon assumption),Markov性:
静态过程假设(stationary process assumption),参数时不变性:
两个问题:1)概率问题,2)学习问题
问题1)概率问题:已知转移矩阵A,求某观测状态序列z的概率是多少
根据有限视野假设,
带入计算即可。
问题2)学习问题:已知观测状态序列z,求参数A最大化z出现的概率
使用最大似然估计,最大化log似然函数
即求解问题
分别对参数求偏导并令其为零:
代入得到状态转移矩阵A的估计:
- 隐马尔科夫模型(Hidden Markov Model)
状态序列z,观测序列x。状态转移矩阵A,发射(生成输出)矩阵B。
输出独立假设(output independence assumption):
三个问题:1)概率问题,2)解码问题,3)学习问题
1)概率问题:已知转移矩阵A、发射矩阵B,求观测序列x的概率 - 前向算法
根据输出独立假设,
更快的做法是动态规划,即前向算法。
定义
重新推导概率:
类似地,对应有后向算法:
2)解码问题:已知转移矩阵A、发射矩阵B,观测序列x,求状态序列z的概率 - Viterbi算法
使用贝叶斯定理:
更快的做法同样是动态规划。和前向算法不同的地方在于,使用最大化操作代替求和操作,即Viterbi算法。也就是说,现在是跟踪最大化见过的观测子序列的概率,而不是前向算法是对见过的观测子序列的概率全部求和。
3)学习问题:已知观测序列x,求转移矩阵A、发射矩阵B - Baum-Welch算法(前向-后向算法)
可以理解x是一个很长的序列,和通常的监督学习问题不同在于并非是批量的label-feature样本。
状态序列是隐变量序列。根据EM算法,E步找一个下界逼近目标函数,M步调整参数最大化这个下界:
转化为Lagrange multipliers:
分别对参数求偏导并令其为零:
代入得到参数A,B的估计:
对A的分子部分使用bayes定理并用前向算法和后向算法转化:
A的分母部分类似:
综合得到A的估计:
同理得到B的估计:
实际计算中直接计算充分统计量
和通常的EM求解的问题类似,也是非凸问题,容易陷入局部极值。因此需要做不同的初始化运行多次算法。另外,对于没有样本覆盖到A、B的转移或发射概率的实际问题,需要做平滑操作。
Hidden Markov Models笔记的更多相关文章
- 隐马尔科夫模型(Hidden Markov Models)
链接汇总 http://www.csie.ntnu.edu.tw/~u91029/HiddenMarkovModel.html 演算法笔记 http://read.pudn.com/downloads ...
- PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)
主讲人 张巍 (新浪微博: @张巍_ISCAS) 软件所-张巍<zh3f@qq.com> 19:01:27 我们开始吧,十三章是关于序列数据,现实中很多数据是有前后关系的,例如语音或者DN ...
- 机器学习 Hidden Markov Models 1
Introduction 通常,我们对发生在时间域上的事件希望可以找到合适的模式来描述.考虑下面一个简单的例子,比如有人利用海草来预测天气,民谣告诉我们说,湿漉漉的海草意味着会下雨,而干燥的海草意味着 ...
- 机器学习 Hidden Markov Models 2
Hidden Markov Models 下面我们给出Hidden Markov Models(HMM)的定义,一个HMM包含以下几个要素: ∏=(πi)表示初始状态的向量.A={aij}状态转换矩阵 ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之三
转自:http://blog.csdn.net/eaglex/article/details/6418219 隐马尔科夫模型(Hidden Markov Models) 定义 隐马尔科夫模型可以用一个 ...
- [Bayesian] “我是bayesian我怕谁”系列 - Markov and Hidden Markov Models
循序渐进的学习步骤是: Markov Chain --> Hidden Markov Chain --> Kalman Filter --> Particle Filter Mark ...
- 机器学习 Hidden Markov Models 3
Viterbi Algorithm 前面我们提到过,HMM的第二类问题是利用HMM模型和可观察序列寻找最有可能生成该观察序列的隐藏变量的序列.简单来说,第一类问题是通过模型计算生成观察序列的概率,而第 ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之五
转自:http://blog.csdn.net/eaglex/article/details/6458541 维特比算法(Viterbi Algorithm) 找到可能性最大的隐藏序列 通常我们都有一 ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之四
转自:http://blog.csdn.net/eaglex/article/details/6430389 前向算法(Forward Algorithm) 一.如果计算一个可观察序列的概率? 1 ...
随机推荐
- backstop无法访问
解决方案:重新build代码,重新启动虚拟机.再等一会儿,就OK了.
- 《Head First Servlets & JSP》-2-概述
什么是容器 Servlet没有main()方法,他们受控于另一个Java应用,这个java应用称为容器(Container). Web服务器应用(如Apache)得到一个指向Servlet的请求(如何 ...
- Visual Studio2012快捷键总结
(1)如何设置更改快捷键 1.进入工具----选项 对话框 2.选择 环境---->键盘 3.在 [显示命令包含] 下面的对话框中输入“对齐”关键字,然后就会在这个编辑框下面一个文本窗口中显 ...
- java打成jar包后,class,getResource()出现null指针异常
1.SqlHelper.java有包路径没?如果有,是不是类似于com.db.jdbc? 不管怎么办,你SqlHelper.class.getResourceAsStream("/mysql ...
- Java50道经典习题-程序42 求数字
题目:809*??=800*??+9*??+1其中??代表两位数,若有这样得数,求??代表的两位数 public class Prog42{ public static void main(Strin ...
- Linq to Objects for Java
好几年不写博客了,人也慢慢变懒了.然而想写了却不知道写点啥,正好最近手头有点小项目就分享一下经历. 现在 java 的大环境下,基本都是围着 spring 转,加上一堆其他的库.有了架子就开始搞业务了 ...
- How to publish a pointcloud of ros msgs in a topic from a pcd file?
How to publish a pointcloud of ros msgs in a topic from a pcd file? Two methods 1. modified source 2 ...
- [haut] 1281: 邪能炸弹 dp
题目描述 正在入侵艾泽拉斯的古尔丹偶然间得到了一颗邪能炸弹,经过研究,他发现这是一颗威力极其巨大且难以控制的炸弹.但是精通邪能的古尔丹突然有了一个大胆的想法,他对炸弹进行了一些小小的改造.这使得炸弹需 ...
- Bit(位) and Byte(字节) ASCll 编码【基础】
Bit(位) 与Byte(字节)的区别bit意为“位”,是计算机运算的基础,与数据处理速度和传输速度有关.比如:USB2.0标准接口传输速率为480Mbps,其中bps=bits per second ...
- P1959 遗址_NOI导刊2009普及(6)
题意:平面上n个点(坐标$0\le x,y\le 5000,n \le 3000$) 求以其中四个点为顶点的正方形的最大面积 $O(n^2)$枚举两个点作为当前正方形的对角线 那么如何求出另外两个点呢 ...