HMM(1)前向后向算法推导
看了很多博客的HMM模型,自己做一个总结加固知识点的记忆。
1 HMM基础知识点
对于HMM模型,其主要是处理序列问题,并且该问题包括一个表象的观测序列和一个可能无法直接观察到的隐藏序列(或者叫状态序列),且这两个序列都是包括
T
T
T个时刻的序列。观测序列的数学表达如式(1-1),状态序列的数学表达如式(1-2):
O
=
{
o
1
,
o
2
,
.
.
.
,
o
T
}
(1-1)
O=\lbrace o_1,o_2,...,o_T \rbrace \tag{1-1}
O={o1,o2,...,oT}(1-1)
Q
=
{
q
1
,
q
2
,
.
.
.
,
q
T
}
(1-2)
Q=\lbrace q_1,q_2,...,q_T \rbrace \tag{1-2}
Q={q1,q2,...,qT}(1-2)
对于观测序列的每一个
o
t
o_t
ot可以有
N
N
N个不同的观测值,对于状态序列的每一个
q
t
q_t
qt可以有
M
M
M个不同的状态值,具体的数学表达如下:
o
t
=
{
v
1
,
v
2
,
.
.
.
,
v
N
}
(1-3)
o_t=\lbrace v_1,v_2,...,v_N\rbrace\tag{1-3}
ot={v1,v2,...,vN}(1-3)
q
t
=
{
σ
1
,
σ
2
,
.
.
.
,
σ
M
}
(1-4)
q_t=\lbrace \sigma_1,\sigma_2,...,\sigma_M\rbrace\tag{1-4}
qt={σ1,σ2,...,σM}(1-4)
HMM中有两个重要的假设:
- 齐次马尔科夫链假设。也就是说任意时刻的隐藏状态都只和前一时刻的隐藏状态有关,如式(1-5)。因此产生了一个概念,就是隐状态转移概率,
a
i
j
a_{ij}
aij,表示隐藏状态从
t
t
t时刻的状态
i
i
i转换为
t
+
1
t+1
t+1时刻的状态
j
j
j的概率。每一个隐状态转移到另一个状态的概率集合可以通过状态转移矩阵来表示,如(1-6)。
P ( q t + 1 ∣ q t , q t − 1 , q t − 2 , . . . , q 1 ) = P ( q t + 1 ∣ q t ) (1-5) P(q_{t+1}|q_t,q_{t-1},q_{t-2},...,q_{1})=P(q_t+1|q_t)\tag{1-5} P(qt+1∣qt,qt−1,qt−2,...,q1)=P(qt+1∣qt)(1-5) A = [ a i j ] M × M ; i ∈ { 1 , 2 , . . . , M } , j ∈ { 1 , 2 , . . . , M } (1-6) A=[a_{ij}]_{M\times M} ;i\in\{1,2,...,M\},j\in\{1,2,...,M\}\tag{1-6} A=[aij]M×M;i∈{1,2,...,M},j∈{1,2,...,M}(1-6) - 观测独立性假设。也就是说任意时刻的观测状态只与当前时刻的隐藏状态有关,如式(1-7)。因此产生了一个概念,就是发射概率
b
j
(
k
)
b_j(k)
bj(k),表示在时刻
t
t
t时隐藏状态
q
t
q_t
qt是
i
j
i_j
ij时,观测结果
o
t
o_t
ot是
v
k
v_k
vk的概率。每一个有状态到每一个不同的观测结果的发射概率的集合可以通过发射矩阵来表示,如(1-8)。
P ( o t ∣ q t , q t − 1 , . . . , q 1 ) = P ( o t ∣ q t ) (1-7) P(o_t|q_t,q_{t-1},...,q_1)=P(o_t|q_t)\tag{1-7} P(ot∣qt,qt−1,...,q1)=P(ot∣qt)(1-7) B = [ b j ( k ) ] M × N ; j ∈ { 1 , 2 , . . . , M } , k ∈ { 1 , 2 , . . . , N } (1-8) B=[b_j(k)]_{M\times N};j\in\{1,2,...,M\},k\in\{1,2,...,N\}\tag{1-8} B=[bj(k)]M×N;j∈{1,2,...,M},k∈{1,2,...,N}(1-8)
除了上面的隐状态转移矩阵和发射矩阵,还需要一个在
t
=
1
t=1
t=1时每一个隐藏状态的初始分布
Π
\Pi
Π,如(1-9)所示。
Π
=
[
π
(
i
)
]
N
;
π
(
i
)
=
P
(
q
1
=
i
)
;
i
∈
{
1
,
2
,
.
.
.
,
M
}
(1-9)
\Pi=[\pi(i)]_N;\pi(i)=P(q_1=i);i\in\{1,2,...,M\}\tag{1-9}
Π=[π(i)]N;π(i)=P(q1=i);i∈{1,2,...,M}(1-9)
因此,一个HMM模型可以通过一个三元组
λ
(
A
,
B
,
Π
)
\lambda(A,B,\Pi)
λ(A,B,Π)来表示。
2 前向后向算法
前向和后向算法都是为了解决HMM中的第一个问题,即在观测序列 O O O和模型参数 λ \lambda λ都已知,状态序列 Q Q Q未知的条件下求产生这样的观测序列的概率是多少,也就是求 P ( O ∣ λ ) = ∑ Q P ( O , Q ∣ λ ) P(O|\lambda)=\sum_QP(O,Q|\lambda) P(O∣λ)=∑QP(O,Q∣λ)。由于通过暴力搜索来计算每一种隐状态序列产生观测序列概率的复杂度很高, Θ ( T N T ) \Theta(TN^T) Θ(TNT),所以需要通过前向后向算法来简化计算的复杂度, Θ ( T N 2 ) \Theta(TN^2) Θ(TN2)。
2-1 前向算法
前向算法的推导可以通过动态规划的思想逐步求解出来,首先我们定义前向概率,即观测序列是
o
1
,
o
2
,
.
.
.
,
o
t
o_1,o_2,...,o_t
o1,o2,...,ot,且
t
t
t时刻的隐状态是
σ
i
\sigma_i
σi时的概率,数学表达如式(2-1):
α
t
(
i
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
∣
λ
)
;
i
∈
{
1
,
2
,
.
.
.
,
M
}
(2-1)
\alpha_t(i)=P(o_1,o_2,...,o_t,q_t=\sigma_i|\lambda);i\in\{1,2,...,M\}\tag{2-1}
αt(i)=P(o1,o2,...,ot,qt=σi∣λ);i∈{1,2,...,M}(2-1)
前向算法推导过程如下所示:
α
t
+
1
(
i
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
o
t
+
1
,
q
t
+
1
=
σ
j
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
o
t
+
1
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
o
t
+
1
∣
q
t
+
1
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
+
1
=
σ
j
∣
λ
)
P
(
o
t
+
1
∣
q
t
+
1
,
λ
)
=
∑
i
M
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
,
q
t
+
1
=
σ
j
∣
λ
)
P
(
o
t
+
1
∣
q
t
+
1
,
λ
)
=
∑
i
M
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
P
(
q
t
=
σ
i
∣
λ
)
P
(
o
t
+
1
∣
q
t
+
1
,
λ
)
=
∑
i
M
P
(
o
1
,
o
2
,
.
.
.
,
o
t
∣
q
t
=
σ
i
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
P
(
q
t
=
σ
i
∣
λ
)
P
(
o
t
+
1
∣
q
t
+
1
,
λ
)
=
∑
i
M
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
∣
λ
)
P
(
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
P
(
o
t
+
1
∣
q
t
+
1
,
λ
)
=
[
∑
i
M
α
t
(
i
)
a
i
j
]
b
j
(
o
t
+
1
)
=
[
∑
i
M
α
t
(
i
)
×
状
态
转
移
概
率
]
×
发
射
概
率
\begin{aligned} \alpha_{t+1}(i) & =P(o_1,o_2,...,o_t,o_{t+1},q_{t+1}=\sigma_j|\lambda) \\ & = P(o_1,o_2,...,o_t,o_{t+1}|q_{t+1}=\sigma_j,\lambda)P(q_{t+1}=\sigma_j|\lambda)\\ & = P(o_1,o_2,...,o_t|q_{t+1}=\sigma_j,\lambda)P(o_{t+1}|q_{t+1},\lambda)P(q_{t+1}=\sigma_j|\lambda)\\ & = P(o_1,o_2,...,o_t,q_{t+1}=\sigma_j|\lambda)P(o_{t+1}|q_{t+1},\lambda)\\ & =\sum_{i}^MP(o_1,o_2,...,o_t,q_t=\sigma_i,q_{t+1}=\sigma_j|\lambda)P(o_{t+1}|q_{t+1},\lambda) \\ & =\sum_{i}^MP(o_1,o_2,...,o_t,q_{t+1}=\sigma_j|q_t=\sigma_i,\lambda)P(q_t=\sigma_i|\lambda)P(o_{t+1}|q_{t+1},\lambda) \\ & =\sum_{i}^MP(o_1,o_2,...,o_t|q_t=\sigma_i,\lambda)P(q_{t+1}=\sigma_j|q_t=\sigma_i,\lambda)P(q_t=\sigma_i|\lambda)P(o_{t+1}|q_{t+1},\lambda) \\ & =\sum_{i}^MP(o_1,o_2,...,o_t,q_t=\sigma_i|\lambda)P(q_{t+1}=\sigma_j|q_t=\sigma_i,\lambda)P(o_{t+1}|q_{t+1},\lambda) \\ & =\left[\sum_i^M\alpha_t(i)a_{ij}\right]b_j(o_{t+1}) \\ & =\left[\sum_i^M\alpha_t(i)\times状态转移概率\right]\times发射概率 \end{aligned}
αt+1(i)=P(o1,o2,...,ot,ot+1,qt+1=σj∣λ)=P(o1,o2,...,ot,ot+1∣qt+1=σj,λ)P(qt+1=σj∣λ)=P(o1,o2,...,ot∣qt+1=σj,λ)P(ot+1∣qt+1,λ)P(qt+1=σj∣λ)=P(o1,o2,...,ot,qt+1=σj∣λ)P(ot+1∣qt+1,λ)=i∑MP(o1,o2,...,ot,qt=σi,qt+1=σj∣λ)P(ot+1∣qt+1,λ)=i∑MP(o1,o2,...,ot,qt+1=σj∣qt=σi,λ)P(qt=σi∣λ)P(ot+1∣qt+1,λ)=i∑MP(o1,o2,...,ot∣qt=σi,λ)P(qt+1=σj∣qt=σi,λ)P(qt=σi∣λ)P(ot+1∣qt+1,λ)=i∑MP(o1,o2,...,ot,qt=σi∣λ)P(qt+1=σj∣qt=σi,λ)P(ot+1∣qt+1,λ)=[i∑Mαt(i)aij]bj(ot+1)=[i∑Mαt(i)×状态转移概率]×发射概率
因此,问题一的最终结果是
P
(
O
∣
λ
)
=
∑
i
M
α
T
(
i
)
P(O|\lambda)=\sum_i^M\alpha_T(i)
P(O∣λ)=∑iMαT(i),其中
α
T
(
i
)
\alpha_T(i)
αT(i)可以通过以上的公式推导逐步的计算出来。
2-2 后向算法
后向算法的推导和前向算法的思想一样,都是通过动态规划的思想逐步推导出最终结果。和前向概率一样,我们需要先定义一个后向概率如式(2-2)。
β
t
+
1
(
j
)
=
P
(
o
t
+
2
,
o
t
+
3
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
(2-2)
\beta_{t+1}(j)=P(o_{t+2},o_{t+3},...,o_T|q_{t+1}=\sigma_j,\lambda)\tag{2-2}
βt+1(j)=P(ot+2,ot+3,...,oT∣qt+1=σj,λ)(2-2)
后向算法推导过程如下所示:
β
t
(
i
)
=
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
=
σ
i
,
λ
)
=
∑
j
M
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
,
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
=
∑
j
M
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
q
t
=
σ
i
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
=
∑
j
M
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
=
∑
j
M
P
(
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
P
(
o
t
+
1
∣
q
t
+
1
=
σ
j
,
λ
)
=
∑
j
M
β
t
+
1
(
j
)
a
i
j
b
j
(
o
t
+
1
)
=
∑
j
M
β
t
+
1
(
j
)
×
状
态
转
移
概
率
×
发
射
概
率
\begin{aligned} \beta_t(i) &= P(o_{t+1},o_{t+2},...,o_T|q_{t}=\sigma_i,\lambda) \\ & =\sum_{j}^MP(o_{t+1},o_{t+2},...,o_T,q_{t+1}=\sigma_j|q_{t}=\sigma_i,\lambda) \\ & =\sum_j^MP(o_{t+1},o_{t+2},...,o_T|q_{t+1}=\sigma_j,q_{t}=\sigma_i,\lambda)P(q_{t+1}=\sigma_j|q_{t}=\sigma_i,\lambda) \\ & =\sum_j^MP(o_{t+1},o_{t+2},...,o_T|q_{t+1}=\sigma_j,\lambda)P(q_{t+1}=\sigma_j|q_{t}=\sigma_i,\lambda) \\ & =\sum_j^MP(o_{t+2},...,o_T|q_{t+1}=\sigma_j,\lambda)P(q_{t+1}=\sigma_j|q_{t}=\sigma_i,\lambda)P(o_{t+1}|q_{t+1}=\sigma_j,\lambda) \\ & =\sum_j^M\beta_{t+1}(j)a_{ij}b_j(o_{t+1}) \\ & =\sum_j^M\beta_{t+1}(j)\times状态转移概率\times发射概率 \end{aligned}
βt(i)=P(ot+1,ot+2,...,oT∣qt=σi,λ)=j∑MP(ot+1,ot+2,...,oT,qt+1=σj∣qt=σi,λ)=j∑MP(ot+1,ot+2,...,oT∣qt+1=σj,qt=σi,λ)P(qt+1=σj∣qt=σi,λ)=j∑MP(ot+1,ot+2,...,oT∣qt+1=σj,λ)P(qt+1=σj∣qt=σi,λ)=j∑MP(ot+2,...,oT∣qt+1=σj,λ)P(qt+1=σj∣qt=σi,λ)P(ot+1∣qt+1=σj,λ)=j∑Mβt+1(j)aijbj(ot+1)=j∑Mβt+1(j)×状态转移概率×发射概率
因此,问题一的最终结果是
P
(
O
∣
λ
)
=
∑
i
π
(
i
)
b
i
(
o
1
)
β
1
(
i
)
P(O|\lambda)=\sum_i\pi(i)b_i(o_1)\beta_1(i)
P(O∣λ)=∑iπ(i)bi(o1)β1(i),其中
β
1
(
i
)
\beta_1(i)
β1(i)可以通过以上的公式推导逐步的计算出来。
2-3 衍生公式推导
根据前向和后向算法我们可以推导出其他的公式。如式(2-3)所示,是在模型参数
λ
\lambda
λ和观测序列
O
O
O都已知的情况下,
t
t
t时刻的隐状态是
σ
i
\sigma_i
σi的概率。
γ
t
(
i
)
=
P
(
q
t
=
σ
i
∣
O
,
λ
)
=
P
(
O
,
q
t
=
σ
i
∣
λ
)
P
(
O
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
i
∣
λ
)
∑
j
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
j
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
T
∣
q
t
=
σ
i
,
λ
)
P
(
q
t
=
σ
i
∣
λ
)
∑
j
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
∣
q
t
=
σ
j
,
λ
)
P
(
q
t
=
σ
j
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
∣
λ
)
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
=
σ
i
,
λ
)
∑
j
M
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
j
∣
λ
)
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
=
σ
j
,
λ
)
=
α
t
(
i
)
β
t
(
i
)
∑
j
M
α
t
(
j
)
β
t
(
j
)
(2-3)
\begin{aligned} \gamma_t(i) & =P(q_t=\sigma_i|O,\lambda) \\ & =\frac{P(O,q_t=\sigma_i|\lambda)}{P(O|\lambda)} \tag{2-3}\\[4ex] & = \frac{P(o_1,o_2,...,o_T,q_t=\sigma_i|\lambda)}{\sum_j^MP(o_1,o_2,...,o_T,q_t=\sigma_j|\lambda)} \\[4ex] & =\frac{P(o_1,o_2,...,o_T|q_t=\sigma_i,\lambda)P(q_t=\sigma_i|\lambda)}{\sum_j^MP(o_1,o_2,...,o_T|q_t=\sigma_j,\lambda)P(q_t=\sigma_j|\lambda)} \\[4ex] & =\frac{P(o_1,o_2,...,o_t,q_t=\sigma_i|\lambda)P(o_{t+1},o_{t+2},...,o_T|q_t=\sigma_i,\lambda)}{\sum_j^MP(o_1,o_2,...,o_t,q_t=\sigma_j|\lambda)P(o_{t+1},o_{t+2},...,o_T|q_t=\sigma_j,\lambda)} \\[4ex] & =\frac{\alpha_t(i)\beta_t(i)}{\sum_j^M\alpha_t(j)\beta_t(j)} \end{aligned}
γt(i)=P(qt=σi∣O,λ)=P(O∣λ)P(O,qt=σi∣λ)=∑jMP(o1,o2,...,oT,qt=σj∣λ)P(o1,o2,...,oT,qt=σi∣λ)=∑jMP(o1,o2,...,oT∣qt=σj,λ)P(qt=σj∣λ)P(o1,o2,...,oT∣qt=σi,λ)P(qt=σi∣λ)=∑jMP(o1,o2,...,ot,qt=σj∣λ)P(ot+1,ot+2,...,oT∣qt=σj,λ)P(o1,o2,...,ot,qt=σi∣λ)P(ot+1,ot+2,...,oT∣qt=σi,λ)=∑jMαt(j)βt(j)αt(i)βt(i)(2-3)
如式(2-4)所示,在模型参数
λ
\lambda
λ和观测序列
O
O
O都已知的情况下,
t
t
t时刻的隐状态是
σ
i
\sigma_i
σi,
t
+
1
t+1
t+1时刻的隐状态是
σ
j
\sigma_j
σj的概率。
ξ
t
(
i
,
j
)
=
P
(
q
t
=
σ
i
,
q
t
+
1
=
σ
j
∣
O
,
λ
)
=
P
(
q
t
=
σ
i
,
q
t
+
1
=
σ
j
,
O
∣
λ
)
P
(
O
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
i
,
q
t
+
1
=
σ
j
∣
λ
)
∑
s
M
∑
r
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
s
,
q
t
+
1
=
σ
r
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
i
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
λ
)
∑
s
M
∑
r
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
s
,
q
t
+
1
=
σ
r
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
o
t
+
1
,
o
t
+
2
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
q
t
+
1
=
σ
j
∣
λ
)
∑
s
M
∑
r
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
s
,
q
t
+
1
=
σ
r
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
,
q
t
+
1
=
σ
j
∣
λ
)
P
(
o
t
+
1
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
o
t
+
2
,
o
t
+
3
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
∑
s
M
∑
r
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
s
,
q
t
+
1
=
σ
r
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
,
λ
)
P
(
q
t
=
σ
i
∣
λ
)
P
(
o
t
+
1
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
o
t
+
2
,
o
t
+
3
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
∑
s
M
∑
r
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
s
,
q
t
+
1
=
σ
r
∣
λ
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
q
t
=
σ
i
∣
λ
)
P
(
q
t
+
1
=
σ
j
∣
q
t
=
σ
i
)
P
(
o
t
+
1
∣
q
t
+
1
=
σ
j
,
λ
)
P
(
o
t
+
2
,
o
t
+
3
,
.
.
.
,
o
T
∣
q
t
+
1
=
σ
j
,
λ
)
∑
s
M
∑
r
M
P
(
o
1
,
o
2
,
.
.
.
,
o
T
,
q
t
=
σ
s
,
q
t
+
1
=
σ
r
∣
λ
)
=
α
t
(
i
)
a
i
j
b
j
(
o
t
+
1
)
β
t
+
1
(
j
)
∑
s
M
∑
r
M
α
t
(
s
)
a
s
r
b
r
(
o
t
+
1
)
β
t
+
1
(
r
)
(2-4)
\begin{aligned} \xi_t(i,j) & =P(q_t=\sigma_i,q_{t+1}=\sigma_j|O,\lambda) \\ & =\frac{P(q_t=\sigma_i,q_{t+1}=\sigma_j,O|\lambda)}{P(O|\lambda)} \\[2ex] & =\frac{P(o_1,o_2,...,o_T,q_t=\sigma_i,q_{t+1}=\sigma_j|\lambda)}{\sum_s^M\sum_r^MP(o_1,o_2,...,o_T,q_t=\sigma_s,q_{t+1}=\sigma_r|\lambda)} \\[4ex] & =\frac{P(o_1,o_2,...,o_T,q_t=\sigma_i|q_{t+1}=\sigma_j,\lambda)P(q_{t+1}=\sigma_j|\lambda)}{\sum_s^M\sum_r^MP(o_1,o_2,...,o_T,q_t=\sigma_s,q_{t+1}=\sigma_r|\lambda)} \tag{2-4}\\[4ex] & =\frac{P(o_1,o_2,...,o_t,q_t=\sigma_i|q_{t+1}=\sigma_j,\lambda)P(o_{t+1},o_{t+2},...,o_T|q_{t+1}=\sigma_j,\lambda)P(q_{t+1}=\sigma_j|\lambda)}{\sum_s^M\sum_r^MP(o_1,o_2,...,o_T,q_t=\sigma_s,q_{t+1}=\sigma_r|\lambda)} \\[4ex] & =\frac{P(o_1,o_2,...,o_t,q_t=\sigma_i,q_{t+1}=\sigma_j|\lambda)P(o_{t+1}|q_{t+1}=\sigma_j,\lambda)P(o_{t+2},o_{t+3},...,o_T|q_{t+1}=\sigma_j,\lambda)}{\sum_s^M\sum_r^MP(o_1,o_2,...,o_T,q_t=\sigma_s,q_{t+1}=\sigma_r|\lambda)} \\[4ex] & =\frac{P(o_1,o_2,...,o_t,q_{t+1}=\sigma_j|q_t=\sigma_i,\lambda)P(q_t=\sigma_i|\lambda)P(o_{t+1}|q_{t+1}=\sigma_j,\lambda)P(o_{t+2},o_{t+3},...,o_T|q_{t+1}=\sigma_j,\lambda)}{\sum_s^M\sum_r^MP(o_1,o_2,...,o_T,q_t=\sigma_s,q_{t+1}=\sigma_r|\lambda)} \\[4ex] & =\frac{P(o_1,o_2,...,o_t,q_t=\sigma_i|\lambda)P(q_{t+1}=\sigma_j|q_t=\sigma_i)P(o_{t+1}|q_{t+1}=\sigma_j,\lambda)P(o_{t+2},o_{t+3},...,o_T|q_{t+1}=\sigma_j,\lambda)}{\sum_s^M\sum_r^MP(o_1,o_2,...,o_T,q_t=\sigma_s,q_{t+1}=\sigma_r|\lambda)} \\[4ex] & =\frac{\alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j)}{\sum_s^M\sum_r^M\alpha_t(s)a_{sr}b_r(o_{t+1})\beta_{t+1}(r)} \end{aligned}
ξt(i,j)=P(qt=σi,qt+1=σj∣O,λ)=P(O∣λ)P(qt=σi,qt+1=σj,O∣λ)=∑sM∑rMP(o1,o2,...,oT,qt=σs,qt+1=σr∣λ)P(o1,o2,...,oT,qt=σi,qt+1=σj∣λ)=∑sM∑rMP(o1,o2,...,oT,qt=σs,qt+1=σr∣λ)P(o1,o2,...,oT,qt=σi∣qt+1=σj,λ)P(qt+1=σj∣λ)=∑sM∑rMP(o1,o2,...,oT,qt=σs,qt+1=σr∣λ)P(o1,o2,...,ot,qt=σi∣qt+1=σj,λ)P(ot+1,ot+2,...,oT∣qt+1=σj,λ)P(qt+1=σj∣λ)=∑sM∑rMP(o1,o2,...,oT,qt=σs,qt+1=σr∣λ)P(o1,o2,...,ot,qt=σi,qt+1=σj∣λ)P(ot+1∣qt+1=σj,λ)P(ot+2,ot+3,...,oT∣qt+1=σj,λ)=∑sM∑rMP(o1,o2,...,oT,qt=σs,qt+1=σr∣λ)P(o1,o2,...,ot,qt+1=σj∣qt=σi,λ)P(qt=σi∣λ)P(ot+1∣qt+1=σj,λ)P(ot+2,ot+3,...,oT∣qt+1=σj,λ)=∑sM∑rMP(o1,o2,...,oT,qt=σs,qt+1=σr∣λ)P(o1,o2,...,ot,qt=σi∣λ)P(qt+1=σj∣qt=σi)P(ot+1∣qt+1=σj,λ)P(ot+2,ot+3,...,oT∣qt+1=σj,λ)=∑sM∑rMαt(s)asrbr(ot+1)βt+1(r)αt(i)aijbj(ot+1)βt+1(j)(2-4)