隐马尔可夫模型是基于时序的概率模型,由初始状态概率向量Π、状态转移概率矩阵A和观测概率矩阵B组成。 隐马尔可夫做了两个基本假设:
齐次马尔可夫性假设:任意时刻的状态只与上一时刻的状态有关观测独立性假设:任意时刻的观测值只与该时刻的状态有关隐马尔科夫模型主要用来解决三个问题:
概率计算问题:给定模型λ=(Π,A,B)和观察序列O,求在模型λ下观测序列O出现的概率P(O|λ)学习问题:已知观察序列O,求模型λ的三个参数,使得P(O|λ)最大预测(解码)问题:给定模型λ=(Π,A,B)和观察序列O,求在给定观察序列O的基础上,最有可能对应的状态序列I,即P(I|O)其中前向概率 α t ( i ) \alpha_t(i) αt(i)表示t时刻产生观察序列 o 1 , o 2 , o 3 . . . o t o_1,o_2,o_3...o_t o1,o2,o3...ot且t时刻的状态为i的概率。
公式10.15表示状态为i,观察序列为 o 1 o_1 o1的联合概率公式10.16中[]里面的内容表示状态为i,观测序列为 o 1 , o 2 , o 3 . . . o t o_1,o_2,o_3...o_t o1,o2,o3...ot的联合概率,最后乘以 b i ( o t + 1 ) b_i(o_{t+1}) bi(ot+1)得到状态为i,观察序列为 o 1 , o 2 , o 3 . . . o t + 1 o_1,o_2,o_3...o_{t+1} o1,o2,o3...ot+1的联合概率公式10.17表示将所有可能的状态i且对应的观察序列为 o 1 , o 2 , o 3 . . . o T o_1,o_2,o_3...o_T o1,o2,o3...oT联合概率累加可以得到在模型λ下观测序列O出现的概率P(O|λ)其中后向概率 β t ( i ) \beta_t(i) βt(i)表示t+1时刻到T时刻产生观察序列 o t + 1 , o t + 2 , o t + 3 . . . o T o_{t+1},o_{t+2},o_{t+3}...o_T ot+1,ot+2,ot+3...oT且t时刻的状态为i的概率。 后向算法的思路与前向算法的思路是相似的,只不过前向算法是从第一个观察状态开始往后算,后向算法是从最后一个观察状态开始往前算。 区别:
用动态规划求最优路径(一条路径对应一个状态序列) 其中 δ t ( i ) \delta_t(i) δt(i)表示t时刻观察序列为 o 1 , o 2 , o 3 . . . o t o_1,o_2,o_3...o_t o1,o2,o3...ot和t时刻状态为i的联合概率, φ t ( i ) \varphi _t(i) φt(i)存储t-1时刻对应的概率最大的状态。
假设 A = [ 0.5 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.5 ] , B = [ 0.5 0.5 0.4 0.6 0.7 0.3 ] , π = ( 0.2 , 0.4 , 0.4 ) T A = \begin{bmatrix}0.5 & 0.2 & 0.3 \\0.3 & 0.5 & 0.2 \\0.2 & 0.3 & 0.5\end{bmatrix}, B=\begin{bmatrix}0.5 & 0.5\\0.4 & 0.6\\0.7 & 0.3\end{bmatrix},\pi=(0.2,0.4,0.4)^T A=⎣⎡0.50.30.20.20.50.30.30.20.5⎦⎤,B=⎣⎡0.50.40.70.50.60.3⎦⎤,π=(0.2,0.4,0.4)T ,状态集合Q={1,2,3},观察集合V = {红,白}已知观察序列O = (红,白,红),求最优状态序列I。
