隐马尔可夫模型(hidden Markov model,HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型

隐马尔可夫模型定义

隐马尔可夫模型由初始概率分布状态转移概率分布以及观测概率分布确定。

设Q是所有可能的状态的集合,V是所有可能的观测的集合。

java隐马科夫算法 隐马尔科夫模型理解_机器学习

其中,N为可能状态数,M为可能的观测数。

I是长度为T的状态序列,O是对应的观测序列。

java隐马科夫算法 隐马尔科夫模型理解_HMM_02

A状态转移概率矩阵

java隐马科夫算法 隐马尔科夫模型理解_概率分布_03

其中,

java隐马科夫算法 隐马尔科夫模型理解_统计学习_04

表示在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率。

B观测概率矩阵

java隐马科夫算法 隐马尔科夫模型理解_统计学习_05

其中,

java隐马科夫算法 隐马尔科夫模型理解_统计学习_06

表示在时刻t处于状态qj 的条件下生成观测vk的概率。

π初始状态概率向量

java隐马科夫算法 隐马尔科夫模型理解_java隐马科夫算法_07

其中,

java隐马科夫算法 隐马尔科夫模型理解_统计学习_08

表示时刻t=1处于状态qi的概率。

隐马尔可夫模型由πAB决定。πA决定状态序列,B决定观测序列。

隐马尔可夫模型λ=( A, B,π),A,B,π称为隐马尔科夫模型的三要素

隐马尔可夫模型的两个基本假设:

(1).齐次马尔可夫性假设

java隐马科夫算法 隐马尔科夫模型理解_统计学习_09

(2).观测独立性假设

java隐马科夫算法 隐马尔科夫模型理解_java隐马科夫算法_10

隐马尔可夫模型的三个基本问题

概率计算问题

给定模型λ=( A, B,π)和观测序列

java隐马科夫算法 隐马尔科夫模型理解_HMM_11

 。计算在模型λ下观测序列O出现的概率P(O|λ)。

解决此问题的方法为前向、后向算法

学习问题

已知观测序列

java隐马科夫算法 隐马尔科夫模型理解_机器学习_12

 ,估计模型λ=( A, B,π)参数,使得在该模型下观测序列概率P(O|λ)最大。

当同时给定观测序列和对应状态序列时,使用极大似然估计方法估计参数。

当只给定观测序列,没有对应状态序列时,基于EM算法进行参数估计。(Baum-Welch算法

预测问题

也称为解码问题。已知模型λ=( A, B,π)和观测序列

java隐马科夫算法 隐马尔科夫模型理解_HMM_13

,求对给定观测序列条件概率P(I|O)最大的状态序列 。即给定观测序列

java隐马科夫算法 隐马尔科夫模型理解_概率分布_14

,求最有可能的对应状态序列

java隐马科夫算法 隐马尔科夫模型理解_概率分布_15


解决此问题的方法为维特比算法

 参考资料:

《统计学习方法》,李航