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
原创粉丝点击