2015.2.10--记录我的机器学习之路--hmm模型
来源:互联网 发布:阿里云盾 80端口 编辑:程序博客网 时间:2024/06/06 03:30
隐马尔科夫模型(hmm model)
作为解决标注问题的三个常用模型之一(另两个分别是最大熵马尔科夫模型和条件随机场),初学者可以看看李航老师的《统计学习方法》第十章,这里对隐马尔科夫模型的介绍非常清晰明了,电子版在这里,密码:xv9d,不过,还是希望大家支持正版,这样写好书的作者才有更多动力继续创作。下面我主要谈谈对hmm model的一个总体的认识。
一、hmm model概述
hmm model是基于概率的时序的模型,本质上是一个生成模型。对生成模型,我的理解是:其实思想非常类似统计非参数估计中的极大似然估计,已知的样本数据,其实是一个实验模型的结果,而我们认为这个结果既然“出现了”,那么它的出现的概率一定非常大,所以我们就通过极大化这个结果的出现概率,得到了模型中参数的估计值;
二、hmm model的假设与不足
hmm model有两个非常强的假设:
(1)马尔科夫性假设:假设隐藏的马尔科夫状态链在任何时刻t的状态只依赖与其前一个时刻的状态,与其他时刻的状态和观察结果无关,也与时刻t无关;
(2)观测独立性假设:假设任意时刻的观察结果只依赖于该时刻的马尔科夫状态(或者说隐状态),而与其他观测及状态无关;
所以其实hmm model非常简单,在观察结果序列之上插入了一个隐状态序列层(即隐马尔科夫状态层),每一个隐状态由上一个隐状态决定,每个观察结果由一个隐状态决定,借用一张图可以清晰表示hmm model的结构:
不足:hmm model的缺点来源于它的假设,尤其是观测独立性假设,因为很多场景之下,观测值之间都不是完全独立的,可能与多个状态,多个其他观测值有联系,针对这个问题,才有了改进模型最大熵马尔科夫模型,以及之后的条件随机场。
三、hmm model的三个基本问题
(1)估计问题
已知hmm模型和观察序列s1,s2,...sn,求出现这个序列的概率。
这个问题就是一个动态规划问题(不过有人专门给这个算法取名:前向算法),把所有可能产生s1,s2,...sn观察序列的路径的概率求和。
(2)解码问题
已知hmm模型和观察序列s1,s2,...sn,求出现这个序列的最可能的隐状态序列。(这个问题就是我们常说的标注问题的估计过程了)
这个问题其实也是动态规划问题(这个算法也被命名为Viterbi算法= =),与估计问题不同的是,这里不是求和,而是求概率最大的那一个路径。
(3)学习问题
hmm形式已知,其中的参数未知,观察序列已知,求出hmm模型的参数。
这个问题是典型的极大似然估计问题,但是由于含有隐变量,所以得用EM算法去求参数的估计值。
上述我大致梳理了hmm模型的框架思路,具体的细节,大家还是去看看李航老师的书吧,或者其他比较清晰的文章。
笔者才疏学浅,若有理解不到位的地方,还望高人指点,不甚感激。
0 0
- 2015.2.10--记录我的机器学习之路--hmm模型
- 机器学习:隐马尔可夫模型(HMM)
- 2015.2.8--记录我的机器学习之路--现代启发式算法之蚁群算法
- 2015.2.7--记录我的机器学习之路--现代启发式算法之遗传算法
- 2015.2.9--记录我的机器学习之路--元胞自动机
- 学习笔记之HMM模型
- 机器学习-隐Markov模型(hmm)
- 王小草【机器学习】笔记--隐马尔可夫模型HMM
- 机器学习_隐马尔可夫模型HMM
- 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库
- 机器学习读书笔记之4 - HMM
- 机器学习算法(九)EM和贝叶斯网络的结合 HMM模型
- 我的机器学习之路
- 我的机器学习之路-决策树
- 我的机器学习之路(三)
- 机器学习:HMM隐马尔可夫模型用于中文分词
- 机器学习中的隐马尔科夫模型(HMM)详解
- 机器学习中的隐马尔科夫模型(HMM)详解
- 把Java数组转换为List时的注意事项
- 【封装】java中为什么要将属性进行私有化,又使用set和get方法来设置和获取属性呢?
- [程序员面试题精选100题]19.反转链表
- 开发团队的效率
- 如何按占用内存大小查看Linux下的进程
- 2015.2.10--记录我的机器学习之路--hmm模型
- Java回调理解,以Android中Button为例
- 在ubuntu12.04下安装rtl8723be无线网卡驱动
- 梯度、散度和旋度及在图像处理中的应用(图像融合)
- 灰度图像--图像分割 Sobel算子,Prewitt算子和Scharr算子平滑能力比较
- Valid Parentheses - LeetCode
- lightoj 1005 - Rooks
- ubuntu12.04 secureCRT 安装、破解、修改权限
- <string.h>和<string>的区别