隐马尔可夫模型


文章目录

  • 隐马尔可夫模型
  • 定义
  • HMM模型的应用
  • Problem 1
  • 直接计算
  • 前向计算
  • 后向计算
  • Problem 2


定义

隐马尔科夫模型(Hidden Markov Model, HMM)是建模序列数据的图模型

HMM隐马尔可夫模型_Problem

在HMM模型存在隐藏状态HMM隐马尔可夫模型_建模_02,以及观测状态HMM隐马尔可夫模型_建模_03

HMM隐马尔可夫模型_建模_04为所有隐藏状态的集合,HMM隐马尔可夫模型_马尔科夫链_05为所有观测状态的集合,即
HMM隐马尔可夫模型_机器学习_06
设存在长度为HMM隐马尔可夫模型_机器学习_07的序列,其中HMM隐马尔可夫模型_建模_08对应的状态序列,HMM隐马尔可夫模型_建模_04是对应的观察序列
HMM隐马尔可夫模型_建模_10
其中HMM满足齐次马尔科夫链假设,即即任意时刻的隐藏状态只依赖于它前一个隐藏状态,一般来说, 给定状态HMM隐马尔可夫模型_马尔科夫链_11,对于时刻HMM隐马尔可夫模型_机器学习_12HMM隐马尔可夫模型_Problem_13, 则HMM隐马尔可夫模型_建模_14HMM隐马尔可夫模型_Problem_15相互独立。同时满足观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态,即给定状态HMM隐马尔可夫模型_马尔科夫链_11,对于输出状态HMM隐马尔可夫模型_机器学习_17HMM隐马尔可夫模型_机器学习_18也相互独立

定义在HMM隐马尔可夫模型_机器学习_19时刻隐藏状态为HMM隐马尔可夫模型_马尔科夫链_20HMM隐马尔可夫模型_建模_21时刻隐藏状态为HMM隐马尔可夫模型_Problem_22的转移概率为HMM隐马尔可夫模型_机器学习_23,即
HMM隐马尔可夫模型_Problem_24
同时HMM隐马尔可夫模型_机器学习_23可以组成马尔科夫链的状态转移矩阵HMM隐马尔可夫模型_Problem_26
HMM隐马尔可夫模型_Problem_27
定义在HMM隐马尔可夫模型_机器学习_19时刻隐藏状态为HMM隐马尔可夫模型_机器学习_29观测到HMM隐马尔可夫模型_建模_30的概率为HMM隐马尔可夫模型_建模_31,即
HMM隐马尔可夫模型_Problem_32
同时HMM隐马尔可夫模型_建模_31可以组成马尔科夫链的观测概率矩阵HMM隐马尔可夫模型_建模_34
HMM隐马尔可夫模型_机器学习_35
并定义在HMM隐马尔可夫模型_Problem_36时刻的隐藏状态概率分布HMM隐马尔可夫模型_Problem_37
HMM隐马尔可夫模型_建模_38
可知一个HMM模型可以由隐藏状态初始概率分布 HMM隐马尔可夫模型_Problem_37 , 状态转移概率矩阵 HMM隐马尔可夫模型_Problem_26 和观测状态概率矩阵 HMM隐马尔可夫模型_建模_34 决定。HMM隐马尔可夫模型_马尔科夫链_42 决定状态序列,HMM隐马尔可夫模型_建模_34 决定观测序列。因此,HMM模型可以由一个三元组HMM隐马尔可夫模型_机器学习_44表示如下: HMM隐马尔可夫模型_Problem_45

HMM模型的应用

其中HMM主要设计到三个经典问题

problem 1: 在给定HMM模型HMM隐马尔可夫模型_Problem_45的的情况下,预测HMM隐马尔可夫模型_建模_47出现的概率

problem 2: 在给定HMM模型HMM隐马尔可夫模型_Problem_45与观测状态HMM隐马尔可夫模型_建模_47的情况下,预测相应的隐状态

problem 3:

Problem 1

直接计算

当给定模型HMM模型HMM隐马尔可夫模型_Problem_45和观测序列HMM隐马尔可夫模型_建模_47,求观测序列HMM隐马尔可夫模型_机器学习_52在HMM中出现的概率HMM隐马尔可夫模型_建模_53

计算HMM隐马尔可夫模型_马尔科夫链_54出现的概率
HMM隐马尔可夫模型_机器学习_55
其中观测序列HMM隐马尔可夫模型_建模_47HMM隐马尔可夫模型_马尔科夫链_54情况下出现的概率
HMM隐马尔可夫模型_马尔科夫链_58
根据联合概率公式可得
HMM隐马尔可夫模型_Problem_59
然后计算边缘概率
HMM隐马尔可夫模型_马尔科夫链_60
虽然直接计算方法有效,但是如果隐藏状态数HMM隐马尔可夫模型_马尔科夫链_61 非常多,此时预测状态有HMM隐马尔可夫模型_机器学习_62 种组合,算法的时间复杂度是 HMM隐马尔可夫模型_建模_63

前向计算

前向概率:时刻HMM隐马尔可夫模型_机器学习_19部分观测序列为HMM隐马尔可夫模型_机器学习_65 ,且隐藏状态为HMM隐马尔可夫模型_Problem_66的概率为
HMM隐马尔可夫模型_机器学习_67
可得时刻HMM隐马尔可夫模型_机器学习_19部分观测序列为HMM隐马尔可夫模型_机器学习_65 ,隐藏状态为HMM隐马尔可夫模型_机器学习_70HMM隐马尔可夫模型_建模_21时刻隐藏状态为HMM隐马尔可夫模型_Problem_66的概率为HMM隐马尔可夫模型_Problem_73,可推出时刻HMM隐马尔可夫模型_机器学习_19部分观测序列为HMM隐马尔可夫模型_机器学习_65 ,且HMM隐马尔可夫模型_建模_21时刻隐藏状态为HMM隐马尔可夫模型_Problem_66的概率为HMM隐马尔可夫模型_建模_78,若HMM隐马尔可夫模型_建模_21时刻的观测状态为HMM隐马尔可夫模型_机器学习_80,则可以得到HMM隐马尔可夫模型_建模_21时刻观测序列为HMM隐马尔可夫模型_建模_82HMM隐马尔可夫模型_建模_21时刻隐藏状态为HMM隐马尔可夫模型_Problem_66的概率为:
HMM隐马尔可夫模型_建模_85
由此得到了从前向概率的递推表达式

算法描述

输入:HMM模型HMM隐马尔可夫模型_Problem_45 ,观测序列HMM隐马尔可夫模型_马尔科夫链_87
输出:观测序列概率 HMM隐马尔可夫模型_建模_53

  1. 初值

HMM隐马尔可夫模型_建模_89

  1. 递推 对HMM隐马尔可夫模型_马尔科夫链_90

HMM隐马尔可夫模型_马尔科夫链_91

  1. 终止

HMM隐马尔可夫模型_马尔科夫链_92

算法时间复杂度是HMM隐马尔可夫模型_机器学习_93

后向计算

后向概率:时刻HMM隐马尔可夫模型_建模_21到最后时刻HMM隐马尔可夫模型_机器学习_07的部分观测序列为HMM隐马尔可夫模型_建模_96 ,且时刻HMM隐马尔可夫模型_机器学习_19的隐藏状态为HMM隐马尔可夫模型_Problem_66的概率为
HMM隐马尔可夫模型_Problem_99
可得HMM隐马尔可夫模型_Problem_100到最后时刻HMM隐马尔可夫模型_机器学习_07观测状态为HMM隐马尔可夫模型_马尔科夫链_102HMM隐马尔可夫模型_机器学习_19时刻隐藏状态为HMM隐马尔可夫模型_Problem_66HMM隐马尔可夫模型_建模_21时刻隐藏状态为HMM隐马尔可夫模型_机器学习_70的概率为HMM隐马尔可夫模型_Problem_107,当HMM隐马尔可夫模型_建模_21时刻观测到的状态HMM隐马尔可夫模型_机器学习_80,此时概率为HMM隐马尔可夫模型_机器学习_110,可得时刻HMM隐马尔可夫模型_机器学习_19到最后时刻HMM隐马尔可夫模型_机器学习_07的部分观测序列为HMM隐马尔可夫模型_建模_96 ,且时刻HMM隐马尔可夫模型_机器学习_19的隐藏状态为HMM隐马尔可夫模型_Problem_66的概率为
HMM隐马尔可夫模型_马尔科夫链_116
算法描述

输入:HMM模型HMM隐马尔可夫模型_Problem_45 ,观测序列HMM隐马尔可夫模型_马尔科夫链_87
输出:观测序列概率HMM隐马尔可夫模型_建模_53

  1. 初始化时刻HMM隐马尔可夫模型_马尔科夫链_120的各个隐藏状态后向概率:

HMM隐马尔可夫模型_Problem_121

  1. 递推时刻HMM隐马尔可夫模型_马尔科夫链_122

HMM隐马尔可夫模型_机器学习_123

  1. 计算最终结果:

HMM隐马尔可夫模型_建模_124

算法时间复杂度是HMM隐马尔可夫模型_机器学习_93

Problem 2

在给定HMM模型HMM隐马尔可夫模型_Problem_45与观测状态HMM隐马尔可夫模型_建模_47的情况下,预测相应的隐状态

这里主要采用Viterbi算法

设在HMM隐马尔可夫模型_机器学习_19时刻观测序列为HMM隐马尔可夫模型_机器学习_65,隐状态为HMM隐马尔可夫模型_建模_130,其中隐状态集合为HMM隐马尔可夫模型_马尔科夫链_54

设在时刻HMM隐马尔可夫模型_机器学习_19隐藏状态为HMM隐马尔可夫模型_马尔科夫链_133在观测序列为HMM隐马尔可夫模型_机器学习_65且所有可能的状态转移路径HMM隐马尔可夫模型_建模_135 中的概率最大值为HMM隐马尔可夫模型_Problem_136
HMM隐马尔可夫模型_马尔科夫链_137
此时可以推导出HMM隐马尔可夫模型_建模_21时刻
HMM隐马尔可夫模型_Problem_139
为了能够回溯,定义在时刻HMM隐马尔可夫模型_机器学习_19隐藏状态为HMM隐马尔可夫模型_马尔科夫链_133(其中HMM隐马尔可夫模型_马尔科夫链_133为所有可能的状态转移路径HMM隐马尔可夫模型_建模_135 中的概率最大的)从时刻HMM隐马尔可夫模型_Problem_144隐藏状态为HMM隐马尔可夫模型_马尔科夫链_145,则存在
HMM隐马尔可夫模型_机器学习_146
因为在HMM隐马尔可夫模型_机器学习_19时刻的观测状态HMM隐马尔可夫模型_Problem_148确定所以HMM隐马尔可夫模型_机器学习_149确定,于是存在
HMM隐马尔可夫模型_机器学习_150
算法描述

输入:HMM模型HMM隐马尔可夫模型_Problem_45 ,观测序列HMM隐马尔可夫模型_马尔科夫链_87

输出:最有可能的隐藏状态序列HMM隐马尔可夫模型_机器学习_153

  1. 初始化

HMM隐马尔可夫模型_机器学习_154

  1. 递推 对HMM隐马尔可夫模型_马尔科夫链_155

HMM隐马尔可夫模型_建模_156

  1. 计算HMM隐马尔可夫模型_马尔科夫链_120时刻最大的HMM隐马尔可夫模型_Problem_158即为隐藏状态出现最大的概率,HMM隐马尔可夫模型_机器学习_159HMM隐马尔可夫模型_马尔科夫链_120时刻最有可能出现的隐藏状态

HMM隐马尔可夫模型_建模_161

  1. 利用HMM隐马尔可夫模型_机器学习_159进行回溯得到最有可能的隐藏状态序列

HMM隐马尔可夫模型_马尔科夫链_163

最有可能的隐藏状态序列HMM隐马尔可夫模型_机器学习_153