一、基本思想
隐马尔可夫模型是基于时序的概率模型,由初始状态概率向量Π、状态转移概率矩阵A和观测概率矩阵B组成。
隐马尔可夫做了两个基本假设:
- 齐次马尔可夫性假设:任意时刻的状态只与上一时刻的状态有关
- 观测独立性假设:任意时刻的观测值只与该时刻的状态有关
隐马尔科夫模型主要用来解决三个问题:
- 概率计算问题:给定模型λ=(Π,A,B)和观察序列O,求在模型λ下观测序列O出现的概率P(O|λ)
- 学习问题:已知观察序列O,求模型λ的三个参数,使得P(O|λ)最大
- 预测(解码)问题:给定模型λ=(Π,A,B)和观察序列O,求在给定观察序列O的基础上,最有可能对应的状态序列I,即P(I|O)
二、算法流程
1. 概率计算问题
1)前向算法
其中前向概率\(\alpha_t(i)\)表示t时刻产生观察序列\(o_1,o_2,o_3...o_t\)且t时刻的状态为i的概率。
- 公式10.15表示状态为i,观察序列为\(o_1\)的联合概率
- 公式10.16中[]里面的内容表示状态为i,观测序列为\(o_1,o_2,o_3...o_t\)的联合概率,最后乘以\(b_i(o_{t+1})\)得到状态为i,观察序列为\(o_1,o_2,o_3...o_{t+1}\)的联合概率
- 公式10.17表示将所有可能的状态i且对应的观察序列为\(o_1,o_2,o_3...o_T\)联合概率累加可以得到在模型λ下观测序列O出现的概率P(O|λ)
2)后向算法
其中后向概率\(\beta_t(i)\)表示t+1时刻到T时刻产生观察序列\(o_{t+1},o_{t+2},o_{t+3}...o_T\)且t时刻的状态为i的概率。
2. 学习问题
Baum-Welch算法(EM算法)
- EM算法的E步:求Q函数
累加对数似然函数logP(O,I|λ) - EM算法的M步:极大化Q函数
通过拉格朗日乘子法求参数A,B,Π - 不断迭代,最后得到满足终止条件的的三个参数A,B,Π
3. 预测问题
维特比算法
用动态规划求最优路径(一条路径对应一个状态序列)
其中\(\delta_t(i)\)表示t时刻观察序列为\(o_1,o_2,o_3...o_t\)和t时刻状态为i的联合概率,\(\varphi _t(i)\)存储t-1时刻对应的概率最大的状态。