隐马尔可夫模型
隐马尔可夫模型
(hidden
  
Markov
  
model,HMM)
\text{(hidden\;Markov\;model,HMM)}
(hiddenMarkovmodel,HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫随机生成观测序列的过程,属于生成模型。
一、 隐马尔可夫模型的基本概念
定义1(隐马尔可夫模型) 隐马尔可夫模型是关于时序的概率模型,描述有一个隐藏的马尔可夫链随机生成不可预测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。
隐马尔可夫模型是由初始概率分布、状态概率分布以及观测概率分布确定。
隐马尔可夫模型的形式定义如下:
设
Q
Q
Q是所有可能的状态的集合,
V
V
V是所有可能的观测的集合
Q
=
{
q
1
,
q
2
,
⋯
 
,
q
N
}
,
V
=
{
v
1
,
v
2
,
⋯
 
,
v
M
}
Q=\left\{q_{1}, q_{2}, \cdots, q_{N}\right\}, \quad V=\left\{v_{1}, v_{2}, \cdots, v_{M}\right\}
Q={q1,q2,⋯,qN},V={v1,v2,⋯,vM}其中,
N
N
N是可能的状态数,
M
M
M是可能的观测数
I
I
I是长度为
T
T
T的状态序列,
Q
Q
Q是对应的观测序列
I
=
(
i
1
,
i
2
,
⋯
 
,
i
T
)
,
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
I=\left(i_{1}, i_{2}, \cdots, i_{T}\right), \quad O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
I=(i1,i2,⋯,iT),O=(o1,o2,⋯,oT)
A
A
A是状态转移概率矩阵:
A
=
[
a
i
j
]
N
×
N
A=\left[a_{i j}\right]_{N \times N}
A=[aij]N×N其中,
a
i
j
=
P
(
i
t
+
1
=
q
j
∣
i
t
=
q
i
)
,
i
=
1
,
2
,
⋯
 
,
N
;
j
=
1
,
2
,
⋯
 
,
N
a_{i j}=P\left(i_{t+1}=q_{j} | i_{t}=q_{i}\right), \quad i=1,2, \cdots, N ; j=1,2, \cdots, N
aij=P(it+1=qj∣it=qi),i=1,2,⋯,N;j=1,2,⋯,N是在时刻
t
t
t处于状态
q
i
q_i
qi的条件下在时刻
t
+
1
t+1
t+1转移到状态
q
j
q_j
qj的概率
B
B
B是观测概率矩阵:
B
=
[
b
j
(
k
)
]
N
×
M
B=\left[b_{j}(k)\right]_{N \times M}
B=[bj(k)]N×M其中,
b
j
(
k
)
=
P
(
o
t
=
v
k
∣
i
t
=
q
j
)
,
k
=
1
,
2
,
⋯
 
,
M
;
j
=
1
,
2
,
⋯
 
,
N
b_{j}(k)=P\left(o_{t}=v_{k} | i_{t}=q_{j}\right), \quad k=1,2, \cdots, M ; j=1,2, \cdots, N
bj(k)=P(ot=vk∣it=qj),k=1,2,⋯,M;j=1,2,⋯,N是在时刻
t
t
t处于状态
q
j
q_j
qj的条件下生成观测
v
k
v_k
vk的概率
π
\pi
π是初始状态概率向量:
π
=
(
π
i
)
\pi=\left(\pi_{i}\right)
π=(πi)其中
π
i
=
P
(
i
1
=
q
i
)
,
i
=
1
,
2
,
⋯
 
,
N
\pi_{i}=P\left(i_{1}=q_{i}\right), \quad i=1,2, \cdots, N
πi=P(i1=qi),i=1,2,⋯,N
是时刻
t
=
1
t=1
t=1处于状态
q
i
q_i
qi的概率
隐马尔可夫模型是由初始状态概率向量
π
\pi
π、状态概率转移矩阵
A
A
A和观测概率矩阵
B
B
B决定,
π
\pi
π和
A
A
A决定状态序列,
B
B
B决定观测序列。因此,隐马尔可夫模型
λ
\lambda
λ可以用三元符号表示,即
λ
=
(
A
,
B
,
π
)
\lambda=(A, B, \pi)
λ=(A,B,π)
A
,
B
,
π
A, B, \pi
A,B,π称为隐马尔可夫模型的三要素。
状态转移概率矩阵
A
A
A与初始状态概率向量
π
\pi
π确定了隐藏的马尔可夫链,生成了不可观测的状态序列,观测概率矩阵
B
B
B确定了如何从状态生成观测,与状态序列确定了如何产生观测序列
从定义知,隐马尔可夫模型作了两个基本假设:
(
1
)
(1)
(1) 齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻
t
t
t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻
t
t
t无关
P
(
i
t
∣
i
t
−
1
,
o
t
−
1
,
⋯
 
,
i
1
,
o
1
)
=
P
(
i
t
∣
i
t
−
1
)
,
t
=
1
,
2
,
⋯
 
,
T
P\left(i_{t} | i_{t-1}, o_{t-1}, \cdots, i_{1}, o_{1}\right)=P\left(i_{t} | i_{t-1}\right), \quad t=1,2, \cdots, T
P(it∣it−1,ot−1,⋯,i1,o1)=P(it∣it−1),t=1,2,⋯,T
(
2
)
(2)
(2) 观测独立性假设,即任意时刻的观测只依赖于该时刻的马尔可夫链状态,与其他观测及状态无关。
P
(
o
t
∣
i
T
,
o
T
,
i
T
−
1
,
o
T
−
1
,
⋯
 
,
i
t
+
1
,
o
t
+
1
,
i
t
−
1
,
i
t
−
1
,
⋯
 
,
i
1
,
o
1
)
=
P
(
o
t
∣
i
t
)
P\left(o_{t} | i_{T}, o_{T}, i_{T-1}, o_{T-1}, \cdots, i_{t+1}, o_{t+1}, i_{t-1}, i_{t-1}, \cdots, i_{1}, o_{1}\right)=P\left(o_{t} | i_{t}\right)
P(ot∣iT,oT,iT−1,oT−1,⋯,it+1,ot+1,it−1,it−1,⋯,i1,o1)=P(ot∣it)隐马尔可夫模型可以用于标注,这时状态对应着标记。标注问题是给定观测的序列预测其对应的标记序列,可以假设标注问题的数据是由隐马尔可夫模型生成的。这样可以利用隐马尔可夫模型的学习与预测算法进行标注。
隐马尔可夫模型的3个基本问题
(
1
)
(1)
(1)概率计算问题 给定模型
λ
=
(
A
,
B
,
π
)
\lambda=(A, B, \pi)
λ=(A,B,π)和观测序列
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
O=(o1,o2,⋯,oT),计算在模型
λ
\lambda
λ下观测序列
O
O
O出现的概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)
(
2
)
(2)
(2)学习问题 已知观测序列
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
O=(o1,o2,⋯,oT),估计模型
λ
=
(
A
,
B
,
π
)
\lambda=(A, B, \pi)
λ=(A,B,π)的参数,使得在该模型下观测序列概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)最大,即用极大似然估计的方法估计参数。
(
3
)
(3)
(3)预测问题,也称为解码(decoding)问题. 已知模型
λ
=
(
A
,
B
,
π
)
\lambda=(A, B, \pi)
λ=(A,B,π)和观测序列
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
O=(o1,o2,⋯,oT),求对给定观测序列条件概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)最大的状态序列
I
=
(
i
1
,
i
2
,
⋯
 
,
i
T
)
I=\left(i_{1}, i_{2}, \cdots, i_{T}\right)
I=(i1,i2,⋯,iT),即给定观测序列,求最有可能的对应的状态序列
二、概率计算方法
本部分介绍计算观测序列概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)的直接计算法及前向和后向算法
给定模型
λ
=
(
A
,
B
,
π
)
\lambda=(A, B, \pi)
λ=(A,B,π)和观测序列
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
O=(o1,o2,⋯,oT),计算在模型
λ
\lambda
λ下观测序列
O
O
O出现的概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ),最直接的方法是按照概率公式直接计算。通过列举所有可能的长度为
T
T
T的状态序列
I
=
(
i
1
,
i
2
,
⋯
 
,
i
T
)
I=\left(i_{1}, i_{2}, \cdots, i_{T}\right)
I=(i1,i2,⋯,iT),求各个状态序列与观测序列
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
O=(o1,o2,⋯,oT)的联合概率
P
(
O
,
I
;
λ
)
P(O, I ; \lambda)
P(O,I;λ),然后对所有可能的状态序列求和,得到
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)
状态序列
I
=
(
i
1
,
i
2
,
⋯
 
,
i
T
)
I=\left(i_{1}, i_{2}, \cdots, i_{T}\right)
I=(i1,i2,⋯,iT)的概率是
P
(
I
;
λ
)
=
π
i
1
a
i
1
i
2
a
i
2
i
3
⋯
a
i
r
−
1
i
r
P(I ; \lambda)=\pi_{i_{1}} a_{i_{1} i_{2}} a_{i_{2} i_{3}} \cdots a_{i_{r-1} i_{r}}
P(I;λ)=πi1ai1i2ai2i3⋯air−1ir对固定的状态序列
I
=
(
i
1
,
i
2
,
⋯
 
,
i
T
)
I=\left(i_{1}, i_{2}, \cdots, i_{T}\right)
I=(i1,i2,⋯,iT),观测序列
O
=
(
o
1
,
o
2
,
⋯
 
,
o
T
)
O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)
O=(o1,o2,⋯,oT)的概率是
P
(
O
,
I
;
λ
)
P(O, I ; \lambda)
P(O,I;λ)
P
(
O
∣
I
;
λ
)
=
b
i
1
(
o
1
)
b
i
2
(
o
2
)
⋯
b
i
r
(
o
T
)
P(O | I; \lambda)=b_{i_{1}}\left(o_{1}\right) b_{i_{2}}\left(o_{2}\right) \cdots b_{i_{r}}\left(o_{T}\right)
P(O∣I;λ)=bi1(o1)bi2(o2)⋯bir(oT)
Q
Q
Q和
I
I
I同时出现的联合概率为
P
(
O
,
I
;
λ
)
=
P
(
O
∣
I
;
λ
)
P
(
I
;
λ
)
=
π
i
1
b
i
1
(
o
1
)
a
i
1
i
2
b
i
2
(
o
2
)
⋯
a
i
T
−
1
i
T
b
i
T
(
o
T
)
P(O, I ; \lambda)=P(O | I ;\lambda) P(I ; \lambda)\\=\pi_{i_{1}} b_{i_{1}}\left(o_{1}\right) a_{i_{1} i_{2}} b_{i_{2}}\left(o_{2}\right)\cdots a_{i_{T-1} i_{T}} b_{i_{T}}\left(o_{T}\right)
P(O,I;λ)=P(O∣I;λ)P(I;λ)=πi1bi1(o1)ai1i2bi2(o2)⋯aiT−1iTbiT(oT)然后对所有可能的状态序列
I
I
I求和,得到观测序列
O
O
O的概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ),即
P
(
O
;
λ
)
=
∑
I
P
(
O
∣
I
;
λ
)
P
(
I
;
λ
)
=
∑
i
1
,
i
2
,
⋯
 
,
t
T
π
i
1
b
i
1
(
o
1
)
a
i
1
i
2
b
i
2
(
o
2
)
⋯
a
i
T
−
1
i
T
b
i
T
(
o
T
)
P(O ; \lambda)=\sum_{I} P(O | I; \lambda) P(I ;\lambda)\\=\sum_{i_{1}, i_{2}, \cdots, t_{T}}\pi_{i_{1}} b_{i_{1}}\left(o_{1}\right) a_{i_{1} i_{2}} b_{i_{2}}\left(o_{2}\right)\cdots a_{i_{T-1} i_{T}} b_{i_{T}}\left(o_{T}\right)
P(O;λ)=I∑P(O∣I;λ)P(I;λ)=i1,i2,⋯,tT∑πi1bi1(o1)ai1i2bi2(o2)⋯aiT−1iTbiT(oT)但,上式的计算量很大,是
O
(
T
N
T
)
O\left(T N^{T}\right)
O(TNT)阶的,前向和后向算法是计算观测序列概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)的更有效算法
前向算法
定义(前向概率) 给定隐马尔可夫模型
λ
\lambda
λ, 定义时刻
t
t
t部分观测序列为
o
1
,
o
2
,
⋯
 
,
o
t
o_{1}, o_{2}, \cdots, o_{t}
o1,o2,⋯,ot且状态为的概率为前向概率,记作
α
t
(
i
)
=
P
(
o
1
,
o
2
,
⋯
 
,
o
t
,
i
t
=
q
i
;
λ
)
\alpha_{t}(i)=P\left(o_{1}, o_{2}, \cdots, o_{t}, i_{t}=q_{i} ; \lambda\right)
αt(i)=P(o1,o2,⋯,ot,it=qi;λ)
可以递推地求得前向概率
α
t
(
i
)
\alpha_{t}(i)
αt(i)以及观测序列概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)
输入:隐马尔可夫模型
λ
\lambda
λ,观测序列
O
O
O
输出:观测序列概率
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)
(
1
)
(1)
(1)初值
α
1
(
i
)
=
π
i
b
i
(
o
1
)
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_{1}(i)=\pi_{i} b_{i}\left(o_{1}\right), \quad i=1,2, \cdots, N
α1(i)=πibi(o1),i=1,2,⋯,N
(
2
)
(2)
(2)递推 对
t
=
1
,
2
,
⋯
 
,
T
−
1
t=1,2, \cdots, T-1
t=1,2,⋯,T−1
α
t
+
1
(
i
)
=
[
∑
j
=
1
N
α
t
(
j
)
a
j
i
]
b
i
(
o
t
+
1
)
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_{t+1}(i)=\left[\sum_{j=1}^{N} \alpha_{t}(j) a_{j i}\right] b_{i}\left(o_{t+1}\right), \quad i=1,2, \cdots, N
αt+1(i)=[j=1∑Nαt(j)aji]bi(ot+1),i=1,2,⋯,N
(
3
)
(3)
(3)终止
P
(
O
;
λ
)
=
∑
i
=
1
N
α
T
(
i
)
P(O ; \lambda)=\sum_{i=1}^{N} \alpha_{T}(i)
P(O;λ)=i=1∑NαT(i)步骤
(
1
)
(1)
(1)初始化前向概率,是初始时刻状态
i
1
=
q
i
i_{1}=q_{i}
i1=qi和观测
o
1
o_1
o1的联合概率。
步骤
(
2
)
(2)
(2)是前向概率的递推公式,
α
t
+
1
(
i
)
\alpha_{t+1}(i)
αt+1(i)表示的是在时刻
t
+
1
t+1
t+1部分观测序列为
o
1
,
o
2
,
⋯
 
,
o
t
,
o
t
+
1
o_{1}, o_{2}, \cdots, o_{t}, o_{t+1}
o1,o2,⋯,ot,ot+1且在时刻
t
+
1
t+1
t+1处于状态
q
i
q_i
qi的前向概率,
α
t
(
j
)
\alpha_{t}(j)
αt(j)表示的是在时刻
t
t
t 观测序列为
o
1
,
o
2
,
⋯
 
,
o
t
o_{1}, o_{2}, \cdots, o_{t}
o1,o2,⋯,ot且在时刻
t
t
t处于状态
q
j
q_{j}
qj的前向概率。乘积
α
i
(
j
)
a
j
i
\alpha_{i}(j) a_{j i}
αi(j)aji就是时刻
t
t
t观测为
o
1
,
o
2
,
⋯
 
,
o
t
o_{1}, o_{2}, \cdots, o_{t}
o1,o2,⋯,ot且在时刻
t
t
t处于状态
q
j
q_{j}
qj而在时刻
t
+
1
t+1
t+1到达状态
q
i
q_{i}
qi的联合概率。对这个乘积在时刻
t
t
t的所有可能的
N
N
N个状态
q
j
q_{j}
qj求和,得到时刻
t
t
t观测为
o
1
,
o
2
,
⋯
 
,
o
t
o_{1}, o_{2}, \cdots, o_{t}
o1,o2,⋯,ot 且在时刻
t
+
1
t+1
t+1到达状态
q
i
q_{i}
qi的联合概率,与观测概率
b
i
(
o
t
+
1
)
b_{i}\left(o_{t+1}\right)
bi(ot+1)的乘积恰好是到时刻
t
+
1
t+1
t+1观测到
o
1
,
o
2
,
⋯
 
,
o
t
,
o
t
+
1
o_{1}, o_{2}, \cdots, o_{t}, o_{t+1}
o1,o2,⋯,ot,ot+1并在时刻
t
+
1
t+1
t+1处于状态
q
i
q_{i}
qi的前向概率
α
t
+
1
(
i
)
\alpha_{t+1}(i)
αt+1(i)。
步骤
(
3
)
(3)
(3) 给出
P
(
O
;
λ
)
P(O;\lambda)
P(O;λ)的计算公式
因为
α
T
(
i
)
=
P
(
o
1
,
o
2
,
⋯
 
,
o
T
,
i
T
=
q
i
;
λ
)
\alpha_{T}(i)=P\left(o_{1}, o_{2}, \cdots, o_{T}, i_{T}=q_{i} ; \lambda\right)
αT(i)=P(o1,o2,⋯,oT,iT=qi;λ) , 所以
P
(
O
;
λ
)
=
∑
i
=
1
N
α
T
(
i
)
P(O ; \lambda)=\sum_{i=1}^{N} \alpha_{T}(i)
P(O;λ)=∑i=1NαT(i)
后向算法
定义(后向概率) 给定隐马尔可夫模型
λ
\lambda
λ,定义在时刻
t
t
t状态为
q
i
q_i
qi的条件下,从
t
+
1
t+1
t+1到
T
T
T的部分观测序列为
o
t
+
1
,
o
t
+
2
,
⋯
 
,
o
T
o_{t+1}, o_{t+2}, \cdots, o_{T}
ot+1,ot+2,⋯,oT的概率为后向概率,记作
β
t
(
i
)
=
P
(
o
t
+
1
,
o
t
+
2
,
⋯
 
,
o
T
∣
i
t
=
q
i
;
λ
)
\beta_{t}(i)=P\left(o_{t+1}, o_{t+2}, \cdots, o_{T} | i_{t}=q_{i}; \lambda\right)
βt(i)=P(ot+1,ot+2,⋯,oT∣it=qi;λ)可以用递推的方法求的后向概率
β
t
(
i
)
\beta_{t}(i)
βt(i)及观测序列概率
P
(
O
;
λ
)
P(O ; \lambda)
P(O;λ)
观测序列概率的后向算法
输入:隐马尔可夫模型
λ
\lambda
λ,观测序列
O
O
O
输出:观测序列概率
P
(
O
;
λ
)
P(O ; \lambda)
P(O;λ)
(
1
)
(1)
(1)
β
T
(
i
)
=
1
,
i
=
1
,
2
,
⋯
 
,
N
\beta_{T}(i)=1, \quad i=1,2, \cdots, N
βT(i)=1,i=1,2,⋯,N
(
2
)
(2)
(2) 对
t
=
T
−
1
,
T
−
2
,
⋯
 
,
1
t=T-1, T-2, \cdots, 1
t=T−1,T−2,⋯,1
β
t
(
i
)
=
∑
j
=
1
N
a
i
j
b
j
(
o
t
+
1
)
β
t
+
1
(
j
)
,
i
=
1
,
2
,
⋯
 
,
N
\beta_{t}(i)=\sum_{j=1}^{N} a_{i j} b_{j}\left(o_{t+1}\right) \beta_{t+1}(j), \quad i=1,2, \cdots, N
βt(i)=j=1∑Naijbj(ot+1)βt+1(j),i=1,2,⋯,N
(
3
)
(3)
(3)
P
(
O
∣
λ
)
=
∑
i
=
1
N
π
i
b
i
(
o
1
)
β
1
(
i
)
P(O | \lambda)=\sum_{i=1}^{N} \pi_{i} b_{i}\left(o_{1}\right) \beta_{1}(i)
P(O∣λ)=i=1∑Nπibi(o1)β1(i)步骤
(
1
)
(1)
(1)初始化后向概率,对最终时刻的所有状态
q
i
q_i
qi规定
β
T
(
i
)
=
1
,
i
=
1
,
2
,
⋯
 
,
N
\beta_{T}(i)=1, \quad i=1,2, \cdots, N
βT(i)=1,i=1,2,⋯,N
步骤
(
2
)
(2)
(2)是后向概率的递推公式,为了计算在时刻
t
t
t状态为
q
i
q_i
qi条件下时刻
t
+
1
t+1
t+1之后的观测序列为
o
t
+
1
,
o
t
+
2
,
⋯
 
,
o
T
o_{t+1}, o_{t+2}, \cdots, o_{T}
ot+1,ot+2,⋯,oT的后向概率
β
t
(
i
)
=
P
(
o
t
+
1
,
o
t
+
2
,
⋯
 
,
o
T
∣
i
t
=
q
i
;
λ
)
\beta_{t}(i)=P\left(o_{t+1}, o_{t+2}, \cdots, o_{T} | i_{t}=q_{i}; \lambda\right)
βt(i)=P(ot+1,ot+2,⋯,oT∣it=qi;λ),只需考虑在时刻
t
+
1
t+1
t+1所有可能的
N
N
N个状态
q
j
q_j
qj的转移概率(
a
i
j
a_{ij}
aij),以及在此状态下的观测
o
t
+
1
o_{t+1}
ot+1的观测概率(
b
j
(
o
t
+
1
)
b_{j}\left(o_{t+1}\right)
bj(ot+1)),然后考虑状态
q
j
q_j
qj之后的观测序列的后向概率(
β
t
+
1
(
j
)
\beta_{t+1}(j)
βt+1(j))
步骤
(
3
)
(3)
(3) 求
P
(
O
;
λ
)
P(O ; \lambda)
P(O;λ)的思路与步骤
(
2
)
(2)
(2)一致,只是初始概率
π
i
\pi_{i}
πi代替转移概率
利用前向概率和后向概率的定义可以将观测序列概率
P
(
O
;
λ
)
P(O ; \lambda)
P(O;λ)统一写成
P
(
O
;
λ
)
=
∑
i
=
1
N
∑
j
=
1
N
α
t
(
i
)
a
i
j
b
j
(
o
i
+
1
)
β
t
+
1
(
j
)
,
t
=
1
,
2
,
⋯
 
,
T
−
1
P(O ; \lambda)=\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{t}(i) a_{i j} b_{j}\left(o_{i+1}\right) \beta_{t+1}(j), \quad t=1,2, \cdots, T-1
P(O;λ)=i=1∑Nj=1∑Nαt(i)aijbj(oi+1)βt+1(j),t=1,2,⋯,T−1
一些概率和期望值的计算
利用前向概率和后向概率,可以得到关于单个状态和两个状态概率的计算公式
- 给定模型 λ \lambda λ和观测 O O O,在时刻 t t t处于状态的概率 q i q_i qi,记 γ t ( i ) = P ( i t = q i ∣ O ; λ ) \gamma_{t}(i)=P\left(i_{t}=q_{i} | O;\lambda\right) γt(i)=P(it=qi∣O;λ)可以通过前向后向概率计算。事实上 γ t ( i ) = P ( i t = q i ∣ O ; λ ) = P ( i t = q i , O ; λ ) P ( O ; λ ) \gamma_{t}(i)=P\left(i_{t}=q_{i} | O;\lambda\right)=\frac{P\left(i_{t}=q_{i}, O ; \lambda\right)}{P(O ; \lambda)} γt(i)=P(it=qi∣O;λ)=P(O;λ)P(it=qi,O;λ)由前向概率 α t ( i ) \alpha_{t}(i) αt(i)和后向概率 β t ( i ) \beta_{t}(i) βt(i)定义可知: α t ( i ) β t ( i ) = P ( i t = q i , O ; λ ) \alpha_{t}(i) \beta_{t}(i)=P\left(i_{t}=q_{i}, O ;\lambda\right) αt(i)βt(i)=P(it=qi,O;λ)于是得到: γ t ( i ) = α t ( i ) β t ( i ) P ( O ; λ ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j ) \gamma_{t}(i)=\frac{\alpha_{\mathrm{t}}(i) \beta_{t}(i)}{P(O ; \lambda)}=\frac{\alpha_{t}(i) \beta_{t}(i)}{\sum_{j=1}^{N} \alpha_{t}(j) \beta_{t}(j)} γt(i)=P(O;λ)αt(i)βt(i)=∑j=1Nαt(j)βt(j)αt(i)βt(i)
- 给定模型
λ
\lambda
λ和观测
O
O
O,在时刻
t
t
t处于状态的概率
q
i
q_i
qi且在时刻
t
+
1
t+1
t+1处于状态
q
j
q_j
qj的概率,记
ξ
t
(
i
,
j
)
=
P
(
i
t
=
q
i
,
i
t
+
1
=
q
j
∣
O
;
λ
)
\xi_{t}(i, j)=P\left(i_{t}=q_{i}, i_{t+1}=q_{j} | O; \lambda\right)
ξt(i,j)=P(it=qi,it+1=qj∣O;λ)可以通过后向概率计算:
ξ
i
(
i
,
j
)
=
P
(
i
t
=
q
i
,
i
t
+
1
=
q
j
,
O
;
λ
)
P
(
O
;
λ
)
=
P
(
i
t
=
q
i
,
i
t
+
1
=
q
j
,
O
;
λ
)
∑
i
=
1
N
∑
j
=
1
N
P
(
i
t
=
q
i
,
i
t
+
1
=
q
j
,
O
;
λ
)
\xi_{i}(i, j)=\frac{P\left(i_{t}=q_{i}, i_{t+1}=q_{j}, O ; \lambda\right)}{P(O ; \lambda)}=\frac{P\left(i_{t}=q_{i}, i_{t+1}=q_{j}, O ; \lambda\right)}{\sum_{i=1}^{N} \sum_{j=1}^{N} P\left(i_{t}=q_{i}, i_{t+1}=q_{j}, O ; \lambda\right)}
ξi(i,j)=P(O;λ)P(it=qi,it+1=qj,O;λ)=∑i=1N∑j=1NP(it=qi,it+1=qj,O;λ)P(it=qi,it+1=qj,O;λ)而
P
(
i
t
=
q
i
,
i
t
+
1
=
q
j
,
O
;
λ
)
=
α
t
(
i
)
a
i
j
b
j
(
o
t
+
1
)
β
t
+
1
(
j
)
P\left(i_{t}=q_{i}, i_{t+1}=q_{j}, O ; \lambda\right)=\alpha_{t}(i) a_{i j} b_{j}\left(o_{t+1}\right) \beta_{t+1}(j)
P(it=qi,it+1=qj,O;λ)=αt(i)aijbj(ot+1)βt+1(j)
所以 ξ t ( i , j ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) \xi_{t}(i, j)=\frac{\alpha_{t}(i) a_{ij} b_{j}\left(o_{t+1}\right) \beta_{t+1}(j)}{\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{t}(i) a_{ij} b_{j}\left(o_{t+1}\right) \beta_{t+1}(j)} ξt(i,j)=∑i=1N∑j=1Nαt(i)aijbj(ot+1)βt+1(j)αt(i)aijbj(ot+1)βt+1(j) - 将
γ
t
(
i
)
\gamma_{t}(i)
γt(i)和
ξ
i
(
i
,
j
)
\xi_{i}(i, j)
ξi(i,j)对各个时刻
t
t
t求和,可以得到一些有用的期望值
( 1 ) (1) (1) 在观测 O O O下状态 i i i出现的期望值 ∑ i = 1 T γ t ( i ) \sum_{i=1}^{T} \gamma_{t}(i) i=1∑Tγt(i)
( 2 ) (2) (2) 在观测 O O O下状态 i i i转移的期望值 ∑ i = 1 T − 1 γ t ( i ) \sum_{i=1}^{T-1} \gamma_{t}(i) i=1∑T−1γt(i) ( 3 ) (3) (3) 在观测 O O O下状态 i i i转移到状态 j j j的期望值 ∑ t = 1 T − 1 ξ t ( i , j ) \sum_{t=1}^{T-1} \xi_{t}(i, j) t=1∑T−1ξt(i,j)