D y n a m i c M o d e l { 离 散 → H M M 连 续 → { 线 性 → K a l m a n F i l t e r 非 线 性 → P a r t i c l e F i l t e r D y n a m i c M o d e l \left \{ \begin{matrix} 离散\rightarrow\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \;\;\;HMM\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\ 连续\rightarrow \left\{\begin{matrix} 线性\;\;\;\rightarrow Kalman\; Filter\\ 非线性\rightarrow Particle\; Filter \end{matrix}\right. \end{matrix}\right. Dynamic Model⎩⎨⎧离散→HMM连续→{线性→KalmanFilter非线性→ParticleFilter
相关定义
Hidden Markov Model的拓扑结构图如下所示:
- A = [ a i j ] \color{red}\mathcal{A} = [a_{ij}] A=[aij]表示 状 态 转 移 矩 阵 \color{red}状态转移矩阵 状态转移矩阵, a i j = P ( i ( i + 1 ) = q j ∣ i ( t ) = q i ) \color{red}a_{ij} = P(i_{(i+1)}=q_j|i_{(t)}=q_i) aij=P(i(i+1)=qj∣i(t)=qi)。 A \mathcal{A} A表示为各个状态转移之间的概率。
- B = [ b j ( k ) ] \color{red}\mathcal{B} = [b_j(k)] B=[bj(k)]表示 发 射 矩 阵 \color{red}发射矩阵 发射矩阵, b j ( k ) = P ( o t = V k ∣ i t = q j ) \color{red}b_j(k) = P(o_t = V_k | i_t = q_j) bj(k)=P(ot=Vk∣it=qj)。 B \mathcal{B} B表示为观测变量和隐变量之间的关系。
- 而 π \color{red}\pi π是什么意思呢?假设当 t t t时刻的隐变量 i t i_t it,可能有 { q 1 , q 2 , ⋯ , q N } \color{red}\{ q_1,q_2,\cdots,q_N \} {q1,q2,⋯,qN}个状态,而这些状态出现的概率分别为 { p 1 , p 2 , ⋯ , p N } \color{blue}\{ p_1,p_2,\cdots,p_N \} {p1,p2,⋯,pN}。这就是一个关于 i t i_t it隐变量的离散随机分布。
两个假设
这是有关Hidden Markov Model的两个假设:
齐次Markov假设(无后效性) 和 观察独立假设。
三个问题
Hidden Markov Model,可以被我们总结成一个模型 λ = ( π , A , B ) \lambda = (\pi,\mathcal{A},\mathcal{B}) λ=(π,A,B),两个假设,三个问题。而其中关注最多的是Decoding的问题。
本节主要是讲Evaluation中的Forward。
后向概率的推导实际上比前向概率的理解要难,前向算法是一个联合概率,而后向算法则是一个条件概率,所以后向的概率实际上比前向难求很多。
基本思路
下图是Hidden Markov Model的拓扑结构图:
定义:
β t ( i ) = P ( o t + 1 , ⋯ , o T ∣ i t = q i , λ ) (14.3.1) \color{red}\beta _{t}(i)=P(o_{t+1},\cdots ,o_{T}|i_{t}=q_{i},\lambda )\tag{14.3.1} βt(i)=P(ot+1,⋯,oT∣it=qi,λ)(14.3.1)
则 β 1 ( t ) = P ( o 2 , ⋯ , o T ∣ i 1 = q i , λ ) \color{blue}\beta_1(t)= P(o_{2},\cdots,o_T|i_1 = q_i,\lambda) β1(t)=P(o2,⋯,oT∣i1=qi,λ)。计算目标 P ( O ∣ λ ) \color{blue}P(O|\lambda) P(O∣λ)可以表示为::
P ( O ∣ λ ) = P ( o 1 , ⋯ , o T ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯ , o T , i 1 = q i ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯ , o T ∣ i 1 = q i , λ ) P ( i 1 = q i ∣ λ ) ⏟ π i = ∑ i = 1 N P ( o 1 ∣ o 2 , ⋯ , o T , i 1 = q i , λ ) P ( o 2 , ⋯ , o T ∣ i 1 = q i , λ ) ⏟ β 1 ( i ) π i = ∑ i = 1 N P ( o 1 ∣ i 1 = q i , λ ) β 1 ( i ) π i = ∑ i = 1 N b i ( o 1 ) β 1 ( i ) π i (14.3.2) \begin{array}{ll}P(O|\lambda )&=P(o_{1},\cdots ,o_{T}|\lambda )\\ &=\sum_{i=1}^{N}P(o_{1},\cdots ,o_{T},i_{1}=q_{i}|\lambda )\\ &=\sum_{i=1}^{N}P(o_{1},\cdots ,o_{T}|i_{1}=q_{i},\lambda )\underset{\pi _{i}}{\underbrace{P(i_{1}=q_{i}|\lambda )}}\\ &=\sum_{i=1}^{N}P(o_{1}|o_{2},\cdots ,o_{T},i_{1}=q_{i},\lambda )\underset{\beta _{1}(i)}{\underbrace{P(o_{2},\cdots ,o_{T}|i_{1}=q_{i},\lambda )}}\pi _{i}\\ &=\sum_{i=1}^{N}P(o_{1}|i_{1}=q_{i},\lambda )\beta _{1}(i)\pi _{i}\\ &=\sum_{i=1}^{N}b_{i}(o_{1})\beta _{1}(i)\pi _{i}\end{array}\tag{14.3.2} P(O∣λ)=P(o1,⋯,oT∣λ)=∑i=1NP(o1,⋯,oT,i1=qi∣λ)=∑i=1NP(o1,⋯,oT∣i1=qi,λ)πi P(i1=qi∣λ)=∑i=1NP(o1∣o2,⋯,oT,i1=qi,λ)β1(i) P(o2,⋯,oT∣i1=qi,λ)πi=∑i=1NP(o1∣i1=qi,λ)β1(i)πi=∑i=1Nbi(o1)β1(i)πi(14.3.2)
现在已成功的找到 P ( O ∣ λ ) 和 第 一 个 状 态 之 间 的 关 系 \color{red}P(O|\lambda)和第一个状态之间的关系 P(O∣λ)和第一个状态之间的关系。其中:
求解递推关系
因此如果我们能找到 β t ( i ) \color{blue}\beta _{t}(i) βt(i)到 β t + 1 ( j ) \color{blue}\beta _{t+1}(j) βt+1(j)的递推式,就可以由通过递推得到 β 1 ( i ) \color{blue}\beta _{1}(i) β1(i),从而计算 P ( O ∣ λ ) P(O|\lambda ) P(O∣λ),则递推公式是:
β t ( i ) = P ( o t + 1 , ⋯ , o T ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , ⋯ , o T , i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , ⋯ , o T ∣ i t + 1 = q j , i t = q i , λ ) P ( i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , ⋯ , o T ∣ i t + 1 = q j , λ ) a i j = ∑ j = 1 N P ( o t + 1 ∣ o t + 2 , ⋯ , o T , i t + 1 = q j , λ ) P ( o t + 2 , ⋯ , o T ∣ i t + 1 = q j , λ ) a i j ( 从 这 一 步 到 下 一 步 满 足 : A ⊥ C ∣ B ⇔ 若 B 被 观 测 , 则 路 径 被 阻 塞 。 ) = ∑ j = 1 N P ( o t + 1 ∣ i t + 1 = q j , λ ) β t + 1 ( j ) a i j = ∑ j = 1 N b j ( o t + 1 ) a i j β t + 1 ( j ) (14.3.3) \begin{array}{ll}\beta _{t}(i)&=P(o_{t+1},\cdots ,o_{T}|i_{t}=q_{i},\lambda )\\ &=\sum_{j=1}^{N}P(o_{t+1},\cdots ,o_{T},i_{t+1}=q_{j}|i_{t}=q_{i},\lambda )\\ &=\sum_{j=1}^{N}{\color{Red}{P(o_{t+1},\cdots ,o_{T}|i_{t+1}=q_{j},i_{t}=q_{i},\lambda)}}{\color{Blue}{P(i_{t+1}=q_{j}|i_{t}=q_{i},\lambda )}}\\ &=\sum_{j=1}^{N}{\color{Red}{P(o_{t+1},\cdots ,o_{T}|i_{t+1}=q_{j},\lambda)}}{\color{Blue}{a_{ij}}}\\ &=\sum_{j=1}^{N}{\color{Orange}{P(o_{t+1}|o_{t+2},\cdots ,o_{T},i_{t+1}=q_{j},\lambda)}}{\color{Orchid}{P(o_{t+2},\cdots ,o_{T}|i_{t+1}=q_{j},\lambda)}}{\color{Blue}{a_{ij}}}\\ & (从这一步到下一步满足:A\perp C|B\Leftrightarrow 若B被观测,则路径被阻塞。)\\ &=\sum_{j=1}^{N}{\color{Orange}{P(o_{t+1}|i_{t+1}=q_{j},\lambda)}}{\color{Orchid}{\beta _{t+1}(j)}}{\color{Blue}{a_{ij}}}\\ &=\sum_{j=1}^{N}{\color{Orange}{b_{j}(o_{t+1})}}{\color{Blue}{a_{ij}}}{\color{Orchid}{\beta _{t+1}(j)}}\end{array}\tag{14.3.3} βt(i)=P(ot+1,⋯,oT∣it=qi,λ)=∑j=1NP(ot+1,⋯,oT,it+1=qj∣it=qi,λ)=∑j=1NP(ot+1,⋯,oT∣it+1=qj,it=qi,λ)P(it+1=qj∣it=qi,λ)=∑j=1NP(ot+1,⋯,oT∣it+1=qj,λ)aij=∑j=1NP(ot+1∣ot+2,⋯,oT,it+1=qj,λ)P(ot+2,⋯,oT∣it+1=qj,λ)aij(从这一步到下一步满足:A⊥C∣B⇔若B被观测,则路径被阻塞。)=∑j=1NP(ot+1∣it+1=qj,λ)βt+1(j)aij=∑j=1Nbj(ot+1)aijβt+1(j)(14.3.3)
其中第五行到第六行的推导 P ( o t + 1 , ⋯ , o T ∣ i t + 1 = q j , i t = q i ) = P ( o t + 1 , ⋯ , o T ∣ i t + 1 = q j ) \color{blue}P(o_{t+1},\cdots,o_T |i_{t+1} = q_j, i_t = q_i) = P(o_{t+1},\cdots,o_T |i_{t+1} = q_j) P(ot+1,⋯,oT∣it+1=qj,it=qi)=P(ot+1,⋯,oT∣it+1=qj)使用的马尔可夫链的性质,每一个状态都是后面状态的充分统计量,与之前的状态无关。
定 义 : β t ( i ) = P ( o t + 1 , ⋯ , o T ∣ i t = q i , λ ) P ( O ∣ λ ) = ∑ i = 1 N b i ( o 1 ) β 1 ( i ) π i β t ( i ) = ∑ j = 1 N b j ( o t + 1 ) a i j β t + 1 ( j ) (14.3.4) \color{red}定义:\beta _{t}(i)=P(o_{t+1},\cdots ,o_{T}|i_{t}=q_{i},\lambda )\\ P(O|\lambda )=\sum_{i=1}^{N}b_{i}(o_{1})\beta _{1}(i)\pi _{i}\\ \beta _{t}(i)=\sum_{j=1}^{N}{\color{Orange}{b_{j}(o_{t+1})}}{\color{Blue}{a_{ij}}}{\color{Orchid}{\beta _{t+1}(j)}}\tag{14.3.4} 定义:βt(i)=P(ot+1,⋯,oT∣it=qi,λ)P(O∣λ)=i=1∑Nbi(o1)β1(i)πiβt(i)=j=1∑Nbj(ot+1)aijβt+1(j)(14.3.4)
通过这样的迭代从后往前推,我们就可以得到 β i ( 1 ) \beta_i(1) βi(1)的概率,从而推断出 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)。整体的推断流程图如下图所示:
这就是后向算法,其复杂度也为 O ( T N 2 ) \color{red}O(TN^{2}) O(TN2)。