HMM基础
一、HMM建模
HMM参数:
二、HMM的3个假设
(一)马尔科夫假设
(二)观测独立性假设
(三)不变性假设
转移矩阵A不随时间变化
三、HMM的3个问题
(一)概率计算/评估---likelihood
给定模型参数以及观测序列,求当前模型参数下生成给定观测序列的概率。
1、穷举法
2、前向算法
为了降低穷举法的计算复杂度。
注:
在概率计算问题中,无需用到后向概率,
之所以计算后向概率,是为参数估计问题服务。
3、维特比近似
与穷举法,前向算法遍历所有可能的状态序列不同的是,
维特比近似使用最大概率状态序列代替所有可能的状态序列进行近似计算,
具体算法参见2)解码问题中的维特比算法。
(二)解码/状态分割---decoding
给定模型参数以及观测序列,求当前模型参数下,给定观测序列下,使得观测序列生成概率最大的状态序列。
1、近似算法
2、维特比算法
关于概率计算问题中的维特比近似:
注意:
近似算法与维特比算法得到的状态路径常不同。
(三)参数估计---training
若观测序列和状态序列都已知,属于监督学习问题,应用MLE;
通常观测序列已知,状态序列未知,属于无监督学习问题,应用EM。
首先得确定HMM拓扑结构:
1、分段k-means/Viterbi训练
1)GSM-HMM
2)GMM-HMM
分裂高斯:
(1)通过加上或减去小数字调整均值;
(2)将原高斯分量权重一分为二,分给生成的高斯分量。
N个高斯分量变为N+1个高斯分量
维特比训练将每个观测值唯一地分配给一个状态:
这只是一种估计,有可能会出错。
2、Baum Welch算法/前向后向算法
soft decision---将每个观测值以一定的概率分配给每个状态
1)GSM-HMM
E步:根据当前参数,计算下面2个统计量。
gamma:在t时刻占据状态j的概率。
isu:在t时刻占据状态i,t+1时刻占据状态j的概率。
M步:
根据这2个状态占有概率,对模型参数进行更新,重新估计。
2)GMM-HMM
E步:根据当前参数,计算下面2个统计量。
gamma:在t时刻占据状态j的混合分量m的概率。
isu:在t时刻占据状态i,t+1时刻占据状态j的概率。
M步:
根据这2个状态占有概率,对模型参数进行更新,重新估计。
注:
实现BW时为防止下溢(值趋近于0),
可对相应值进行适当的缩放,
可在对数域计算(乘法变为加法)。
HMM基础的更多相关文章
- 自然语言处理(1)-HMM隐马尔科夫模型基础概念(一)
隐马尔科夫模型HMM 序言 文本序列标注是自然语言处理中非常重要的一环,我先接触到的是CRF(条件随机场模型)用于解决相关问题,因此希望能够对CRF有一个全面的理解,但是由于在学习过程中发现一个算法像 ...
- 结巴分词3--基于汉字成词能力的HMM模型识别未登录词
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 算法简介 在 结巴分词2--基于前缀词典及动态规划实现分词 博 ...
- 一文搞懂HMM(隐马尔可夫模型)
什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序,意味着具有确定和有 ...
- NLP&数据挖掘基础知识
Basis(基础): SSE(Sum of Squared Error, 平方误差和) SAE(Sum of Absolute Error, 绝对误差和) SRE(Sum of Relative Er ...
- HMM基本原理及其实现(隐马尔科夫模型)
HMM(隐马尔科夫模型)基本原理及其实现 HMM基本原理 Markov链:如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程.马尔可夫链是时间和状态 ...
- 转:隐马尔可夫模型(HMM)攻略
隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价 ...
- [综]隐马尔可夫模型Hidden Markov Model (HMM)
http://www.zhihu.com/question/20962240 Yang Eninala杜克大学 生物化学博士 线性代数 收录于 编辑推荐 •2216 人赞同 ×××××11月22日已更 ...
- 应用HTK搭建语音拨号系统3:创建绑定状态的三音素HMM模型
选自:http://maotong.blog.hexun.com/6261873_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...
- 算法系列:HMM
隐马尔可夫(HMM)好讲,简单易懂不好讲. 用最经典的例子,掷骰子.假设我手里有三个不同的骰子.第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1 ...
随机推荐
- Web安全概述
互联网刚开始是安全的,但是伴随着黑客(Hacker)的诞生,互联网变得越来越不安全.任何一个事情都有两面性,黑客也有好有坏,好的黑客叫白帽子,坏的黑客叫黑帽子.与此同时,随着Web技术发展越来越成熟, ...
- 基于bootstrap的表格数据展示
一.导入bootstrap文件 二.前端html代码 对应的是前台条件查询和js数据获取 js数据获取部分在第四段 三.后台数据 total为集合总数 int类型 rows为前台需要展示的数据集合 ...
- 听翁恺老师mooc笔记(4)--指针的应用场景
指针应用场景一:交换两个变量的值 在学习函数时,交换两个数的值,做一个swap函数,传递值进去,也可以将两个值交换过来,没问题,可是离开swap就没有用了,为什么?因为传进去的是两个值. #inclu ...
- 冲刺NO.12
Alpha冲刺第十二天 站立式会议 项目进展 项目核心功能,如学生基本信息管理模块,学生信用信息模块,奖惩事务管理模块等等都已完成,测试工作大体结束. 问题困难 项目结束后对项目的阶段性总结缺乏一定的 ...
- Tornado 网站demo 二
连接数据库 methods 中建立一个文件 db.py 分别建立起连接对象和游标对象 #!/usr/bin/env Python # coding=utf-8 import pymysql conn ...
- logging日志
import logging logging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname) ...
- listview、gradview滚动到最后时,滑动至顶部
listview.gradview滑动顶端.底部的判断及底部滑动至顶端 mPhotoWall.setOnScrollListener(new AbsListView.OnScrollListener( ...
- 搭建vue项目环境
前言 在开发本项目之前,我对vue,react,angular等框架了解,仅限于知道它们是什么框架,他们的核心是什么,但是并没有实际使用过(angular 1.0版本用过,因为太难用,所以对这类框架都 ...
- fabric.js和高级画板
本文介绍fabric.js框架使用,以及使用fabricjs打造一个高级画板程序. 高级画板功能介绍 全局绘制颜色选择 护眼模式.网格模式切换 自由绘制 画箭头 画直线 画虚线 画圆/椭圆/矩形/直角 ...
- RocketMQ(二):RPC通讯
匠心零度 转载请注明原创出处,谢谢! RocketMQ网络部署图 NameServer:在系统中是做命名服务,更新和发现 broker服务. Broker-Master:broker 消息主机服务器. ...