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似然函数

即求解问题

转化为Lagrange multipliers

分别对参数求偏导并令其为零:

代入得到状态转移矩阵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笔记的更多相关文章

  1. 隐马尔科夫模型(Hidden Markov Models)

    链接汇总 http://www.csie.ntnu.edu.tw/~u91029/HiddenMarkovModel.html 演算法笔记 http://read.pudn.com/downloads ...

  2. PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)

    主讲人 张巍 (新浪微博: @张巍_ISCAS) 软件所-张巍<zh3f@qq.com> 19:01:27 我们开始吧,十三章是关于序列数据,现实中很多数据是有前后关系的,例如语音或者DN ...

  3. 机器学习 Hidden Markov Models 1

    Introduction 通常,我们对发生在时间域上的事件希望可以找到合适的模式来描述.考虑下面一个简单的例子,比如有人利用海草来预测天气,民谣告诉我们说,湿漉漉的海草意味着会下雨,而干燥的海草意味着 ...

  4. 机器学习 Hidden Markov Models 2

    Hidden Markov Models 下面我们给出Hidden Markov Models(HMM)的定义,一个HMM包含以下几个要素: ∏=(πi)表示初始状态的向量.A={aij}状态转换矩阵 ...

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

    转自:http://blog.csdn.net/eaglex/article/details/6418219 隐马尔科夫模型(Hidden Markov Models) 定义 隐马尔科夫模型可以用一个 ...

  6. [Bayesian] “我是bayesian我怕谁”系列 - Markov and Hidden Markov Models

    循序渐进的学习步骤是: Markov Chain --> Hidden Markov Chain --> Kalman Filter --> Particle Filter Mark ...

  7. 机器学习 Hidden Markov Models 3

    Viterbi Algorithm 前面我们提到过,HMM的第二类问题是利用HMM模型和可观察序列寻找最有可能生成该观察序列的隐藏变量的序列.简单来说,第一类问题是通过模型计算生成观察序列的概率,而第 ...

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

    转自:http://blog.csdn.net/eaglex/article/details/6458541 维特比算法(Viterbi Algorithm) 找到可能性最大的隐藏序列 通常我们都有一 ...

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

    转自:http://blog.csdn.net/eaglex/article/details/6430389 前向算法(Forward Algorithm) 一.如果计算一个可观察序列的概率?   1 ...

随机推荐

  1. WordCount编码和测试

    WordCount编码和测试 项目地址:https://github.com/handsomesnail/WordCount PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) ...

  2. 【转】深入理解java的String

    要理解 java中String的运作方式,必须明确一点:String是一个非可变类(immutable).什么是非可变类呢?简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创 ...

  3. MVC Controller传值到View的几种方式总结

    Controller中的代码如下 var bingo = new Web1.Models.Bingo() { Title = "测试", desc = "嘻嘻" ...

  4. requireJS入门基础

    参考  require.js详解 1.引用requireJS的html文件 <!DOCTYPE html> <head> <title>requireJS</ ...

  5. Unity3D 接口使用

    C#怎么实现多继承? 说起多继承,首先大家可以想想这个问题:你知道在C#中怎么实现多继承吗? 主流的答案无非2种. 答案一:用接口啊,一个类可以继承自多个接口的.答案二:C#不支持多继承,C++才支持 ...

  6. sqlserver高版本还原到低版本方法

    想要将Sqlserver2014高版本备份的数据还原到低版本SqlServer2008R2上去,但是这在SqlServer中是没法直接还原数据库的,通过以下方法可以顺利还原. 通过高版本生成sql脚本 ...

  7. 利用excel制作二维码

    1 将想要通过扫描二维码访问的目标网址放入A1单位格 2 在excel 编辑区右击选择“自定义功能区” 3 然后将“开发者工具”选上 4 点击菜单栏的“开发者工具---插入--->其他控件” 5 ...

  8. ubuntu - 14.04,安装VirtualBox 5.0(虚拟机软件)!

    VirtualBox是一款免费.开源的虚拟机软件,可以运行在多种操作系统上,真的是一款值得我们使用的虚拟机软件! 官方网址:https://www.virtualbox.org/ ubuntu14.0 ...

  9. 图像特征提取之Haar特征

    1.Haar-like特征 Haar-like特征最早是由Papageorgiou等应用于人脸表示,Viola和Jones在此基础上,使用3种类型4种形式的特征. Haar特征分为三类:边缘特征.线性 ...

  10. AI进阶之路

    一.方法论 二.发展趋势 三.入门查看 1. https://hongyuxie.github.io/MyResume_CN/ 上班后大家还刷算法题吗 编程面试的 10 大算法概念汇总 技术面试宝典: ...