隐马尔可夫模型
文章目录
- 隐马尔可夫模型
- 定义
- HMM模型的应用
- Problem 1
- 直接计算
- 前向计算
- 后向计算
- Problem 2
定义
隐马尔科夫模型(Hidden Markov Model, HMM)是建模序列数据的图模型
在HMM模型存在隐藏状态,以及观测状态
设为所有隐藏状态的集合,为所有观测状态的集合,即
设存在长度为的序列,其中对应的状态序列,是对应的观察序列
其中HMM满足齐次马尔科夫链假设,即即任意时刻的隐藏状态只依赖于它前一个隐藏状态,一般来说, 给定状态,对于时刻 和, 则与相互独立。同时满足观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态,即给定状态,对于输出状态与也相互独立
定义在时刻隐藏状态为到时刻隐藏状态为的转移概率为,即
同时可以组成马尔科夫链的状态转移矩阵
定义在时刻隐藏状态为观测到的概率为,即
同时可以组成马尔科夫链的观测概率矩阵
并定义在时刻的隐藏状态概率分布
可知一个HMM模型可以由隐藏状态初始概率分布 , 状态转移概率矩阵 和观测状态概率矩阵 决定。 决定状态序列, 决定观测序列。因此,HMM模型可以由一个三元组表示如下:
HMM模型的应用
其中HMM主要设计到三个经典问题
problem 1: 在给定HMM模型的的情况下,预测出现的概率
problem 2: 在给定HMM模型与观测状态的情况下,预测相应的隐状态
problem 3:
Problem 1
直接计算
当给定模型HMM模型和观测序列,求观测序列在HMM中出现的概率
计算出现的概率
其中观测序列在情况下出现的概率
根据联合概率公式可得
然后计算边缘概率
虽然直接计算方法有效,但是如果隐藏状态数 非常多,此时预测状态有 种组合,算法的时间复杂度是
前向计算
前向概率:时刻部分观测序列为 ,且隐藏状态为的概率为
可得时刻部分观测序列为 ,隐藏状态为且时刻隐藏状态为的概率为,可推出时刻部分观测序列为 ,且时刻隐藏状态为的概率为,若时刻的观测状态为,则可以得到时刻观测序列为且时刻隐藏状态为的概率为:
由此得到了从前向概率的递推表达式
算法描述
输入:HMM模型 ,观测序列
输出:观测序列概率 。
- 初值
- 递推 对
- 终止
算法时间复杂度是
后向计算
后向概率:时刻到最后时刻的部分观测序列为 ,且时刻的隐藏状态为的概率为
可得到最后时刻观测状态为,时刻隐藏状态为,时刻隐藏状态为的概率为,当时刻观测到的状态,此时概率为,可得时刻到最后时刻的部分观测序列为 ,且时刻的隐藏状态为的概率为
算法描述
输入:HMM模型 ,观测序列
输出:观测序列概率
- 初始化时刻的各个隐藏状态后向概率:
- 递推时刻
- 计算最终结果:
算法时间复杂度是
Problem 2
在给定HMM模型与观测状态的情况下,预测相应的隐状态
这里主要采用Viterbi算法
设在时刻观测序列为,隐状态为,其中隐状态集合为
设在时刻隐藏状态为在观测序列为且所有可能的状态转移路径 中的概率最大值为
此时可以推导出时刻
为了能够回溯,定义在时刻隐藏状态为(其中为所有可能的状态转移路径 中的概率最大的)从时刻隐藏状态为,则存在
因为在时刻的观测状态确定所以确定,于是存在
算法描述
输入:HMM模型 ,观测序列
输出:最有可能的隐藏状态序列
- 初始化
- 递推 对
- 计算时刻最大的即为隐藏状态出现最大的概率,为时刻最有可能出现的隐藏状态
- 利用进行回溯得到最有可能的隐藏状态序列
最有可能的隐藏状态序列