隐马尔科夫模型HMM自学 (2)
HMM 定义
崔晓源 翻译
HMM是一个三元组 (,A,B).
the vector of the initial state probabilities;
the state transition matrix;
the confusion matrix;
这其中,所有的状态转移概率和混淆概率在整个系统中都是一成不变的。这也是HMM中最不切实际的假设。
HMM的应用
有三个主要的应用:前两个是模式识别后一个作为参数估计
(1) 评估
根据已知的HMM找出一个观察序列的概率。
这类问题是假设我们有一系列的HMM模型,来描述不同的系统(比如夏天的天气变化规律和冬天的天气变化规律),我们想知道哪个系统生成观察状态序列的概率最大。反过来说,把不同季节的天气系统应用到一个给定的观察状态序列上,得到概率最大的哪个系统所对应的季节就是最有可能出现的季节。(也就是根据观察状态序列,如何判断季节)。在语音识别中也有同样的应用。
我们会用forward algorithm 算法来得到观察状态序列对应于一个HMM的概率。
(2) 解码
根据观察序列找到最有可能出现的隐状态序列
回想水藻和天气的例子,一个盲人隐士只能通过感受水藻的状态来判断天气状况,这就显得尤为重要。我们使用viterbi algorithm来解决这类问题。
viterbi算法也被广泛的应用在自然语言处理领域。比如词性标注。字面上的文字信息就是观察状态,而词性就是隐状态。通过HMM我们就可以找到一句话上下文中最有可能出现的句法结构。
(3) 学习
从观察序列中得出HMM
这是最难的HMM应用。也就是根据观察序列和其代表的隐状态,生成一个三元组HMM (,A,B)。使这个三元组能够最好的描述我们所见的一个现象规律。
我们用forward-backward algorithm来解决在现实中经常出现的问题--转移矩阵和混淆矩阵不能直接得到的情况。
总结 HMM可以解决的三类问题
- Matching the most likely system to a sequence of observations -evaluation, solved using the forward algorithm;
- determining the hidden sequence most likely to have generated a sequence of observations - decoding, solved using the Viterbi algorithm;
- determining the model parameters most likely to have generated a sequence of observations - learning, solved using the forward-backward algorithm.
4-1)Forward Algorithm
找到观察序列的概率
崔晓源 翻译
Finding the probability of an observed sequence
1、穷举搜索方法
对于水藻和天气的关系,我们可以用穷举搜索方法的到下面的状态转移图(trellis):
Pr(dry,damp,soggy | HMM) = Pr(dry,damp,soggy | sunny,sunny,sunny) + Pr(dry,damp,soggy | sunny,sunny ,cloudy) + Pr(dry,damp,soggy | sunny,sunny ,rainy) + . . . . Pr(dry,damp,soggy | rainy,rainy ,rainy)
隐马尔科夫模型HMM自学 (4-2)Forward Algorithm
崔晓源 翻译
书接上文,前一话我们讲到了Forward Algorithm中初始状态的部分概率的计算方法。这次我们继续介绍。
2c.如何计算t>1时刻的部分概率
回忆一下我们如何计算部分概率:
t ( j )= Pr( observation | hidden state is j ) * Pr(all paths to state j at time t)
我们可知(通过递归)乘积中第一项是可用的。那么如何得到Pr(all paths to state j at time t) 呢?
为了计算到达一个状态的所有路径的概率,就等于每一个到达这个状态的路径之和:
where each of the y is one of the observable set. Intermediate probabilities (‘s) are calculated recursively by first calculating for all states at t=1.
Then for each time step, t = 2, ..., T, the partial probability is calculated for each state;
that is, the product of the appropriate observation probability and the sum over all possible routes to that state, exploiting recursion by knowing these values already for the previous time step. Finally the sum of all partial probabilities gives the probability of the observation, given the HMM, . =======================================================
隐马尔科夫模型HMM自学 (2)相关推荐
- 隐马尔科夫模型HMM自学 (3)
Viterbi Algorithm 本来想明天再把后面的部分写好,可是睡觉今天是节日呢?一时情不自禁就有打开电脑.......... 找到可能性最大的隐含状态序列 崔晓源 翻译 多数情况下,我们都希望 ...
- 隐马尔科夫模型HMM自学(1)
介绍 崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首 ...
- 【NLP】用于语音识别、分词的隐马尔科夫模型HMM
大家好,今天介绍自然语言处理中经典的隐马尔科夫模型(HMM).HMM早期在语音识别.分词等序列标注问题中有着广泛的应用. 了解HMM的基础原理以及应用,对于了解NLP处理问题的基本思想和技术发展脉络有 ...
- python地图匹配_基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法
1. 摘要 本篇博客简单介绍下用隐马尔科夫模型(Hidden Markov Model, HMM)来解决地图匹配(Map-Matching)问题.转载请注明网址. 2. Map-Matching(MM ...
- 隐马尔科夫模型 HMM 与 语音识别 speech recognition (1):名词解释
0.引言 想在 CSDN 上看一下隐马尔科夫模型,简称HMM(Hidden Markov Model)的例子,找了几篇博文,却发现大部分都是转载的,转载的还没有出处,文中的表述与逻辑也看的人晕头转向, ...
- 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数
在本篇我们会讨论HMM模型参数求解的问题,这个问题在HMM三个问题里算是最复杂的.在研究这个问题之前,建议先阅读这个系列的前两篇以熟悉HMM模型和HMM的前向后向算法,以及EM算法原理总结,这些在本篇 ...
- 一、隐马尔科夫模型HMM
隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用. ...
- 隐马尔科夫模型 (HMM) 算法介绍及代码实现
Table of Contents Hidden Markov Model (隐马尔科夫模型) 定义 基本问题 前向算法 算法流程 实现代码 后向算法 算法流程 实现代码 Viterbi算法 算法流程 ...
- 隐马尔科夫模型(HMM)择时应用的量化策略
HMM模型 隐马尔科夫模型(HMM)择时应用的量化策略. 仅为研究学习使用, 不作为任何投资策略建议. 文章内容从各处整理汇总而成, 感谢各位大神分享. 具体策略代码均调试通过. 一.从大奖章讲起 ...
最新文章
- sample java_从sample来学习Java堆(转)
- PHP多台服务实现单点登录,如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO)...
- SpringBoot-hello world
- list对oracle结果集排序了_详解SQL窗口函数和分组排序函数
- 【洛谷 2661】信息传递
- 从无到有:阿里巴巴中国站手机客户端项目设计
- Android使用百度翻译api
- 有一列数列,1,11,21,1211,111221,.........,
- JS-记事本(代码)
- 服务器连接电脑显示屏花屏怎么解决,电脑显示器花屏怎么办 电脑显示器花屏解决方法【详解】...
- python土味情话_GitHub - MMstarry/itchat: 微信机器人 土味情话
- 算法设计与分析基础 第一章谜题
- Echarts-实现3D柱状图显示,并单个柱子变色
- 如何用C语言实现小游戏——扫雷
- bugku-web-source
- AWS - Redshift - Unload 数据到S3产生的文件名
- ubuntu18.04 使用calibration_camera_lidar 实现激光雷达和相机联合标定
- flex 开发的电子画板(桌面应用程序)
- 量化投资常用技能——指标篇3:详解RSI指标,及其代码实现和绘图
- 学习突围1 - 关于学习的痛点
热门文章
- 关于Linux访问web遇到403 Forbidden的问题
- 数据结构源码笔记(C语言):二路归并排序
- linux空洞目录,学习笔记:linux之文件空洞
- java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现
- Python+Selenium 自动化-指定chrome驱动运行selenium实例演示,运行指定位置下的浏览器驱动
- Python 微信机器人-用itchat库下载微信接收到的语音、图片等资源实例演示
- windows卸载程序提示“请等待当前程序完成卸载或更改“问题解决方法,windows卸载卡进程问题解决方法
- C# 学习笔记(15)自己的串口助手----波形显示
- Android studio导出的apk在真机上安装提示“文件不存在或已失效”的解决方法
- 双击SDK Manager.exe和AVD Manager.exe时,弹出提示:failed to execute tools\android.bat解决办法