萌新的机器学习人工智能/模式识别/机器学习精华专题机器学习与数据挖掘

隐马尔科夫模型

2017-10-28  本文已影响29人  初七123

模型定义

隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成的状态随序列,并且由状态序列生成观测序列的过程。不同于分类和回归,其主要用于标注问题

观测序列的生成
1.由初始概率 π 生成初始隐藏状态 i(1)
2.令 t = 1
3.按照隐藏状态 i(t) 的观测分布 b(j,k) 生成观测状态 o(t)
4.按照转移矩阵 a(i,j) 生成 i(t+1)
5.t = t + 1, 直到 t < T

概率计算算法

概率计算问题的定义:已知模型参数和观测序列,求改观测序列出现的概率

通常来说我们可以穷举马尔科夫链的所有情况,得到给定观测序列出现的次数,便可基于频率计算出观测序列的概率。然而,这种算法时间复杂度太高。所以就有了下面的算法:

前向算法

前向概率
给定隐马尔科夫模型,t 时刻其观测序列为 {o(1), o(2), ..., o(t)} 并且隐状态为 q(i)的概率为:

前向概率定义

前向算法

前向算法的实质是基于“状态序列路径结构”的递推算法。其高效之处在于每一次计算直接引用上一次计算的结果。

学习问题

模型学习就是给定训练数据求隐马尔科夫模型参数

监督学习方法

如果给定观测序列以及相应的状态序列,可以用极大似然估计来求解

非监督学习方法

此时我们只有观测序列,并不知道对应的隐状态序列。所以我们需用EM算法来做包含隐变量的极大似然估计。这又被称之为Baum-Welch算法

省略EM算法推导过程可得

算法中用到的公式

证明略 证明略

解码问题

给定模型和观测序列,求隐状态序列

这里给出一种简单的算法

参考

《统计学习方法》

上一篇下一篇

猜你喜欢

热点阅读