状态集合
Q={
q1,q2,…,qN}∣∣Q∣∣=N
观测集合
V={
v1,v2,…,vM}∣∣V∣∣=M
状态序列
I={
i1,i2,…,it,…,iT}it∈Q(t=1,2,…,T)
观测序列
O={
o1,o2,…,ot,…,oT}ot∈V(t=1,2,…,T)
状态转移矩阵
A=[aij]N×N
在 t 时刻处于状态
aij=P(it+1=qj|it=qi)(i=1,2,…,N)(j=1,2,…,M)
观测概率矩阵
B=[bj(k)]N×M
在 t 时刻处于状态
bj(k)=P(ot=vk|it=qj)(k=1,2,…,M)(j=1,2,…,N)
初始概率向量
π=(πi)
在时刻 t=1 处于状态 qi 的概率
πi=P(i1=qi)(i=1,2,…,N)
隐马尔科夫模型
λ=(A,B.π)
隐马尔科夫模型基本假设:
1. 齐次马尔科夫性假设:在任意时刻 t 的状态只依赖于时刻
P(it|it−1,ot−1,…,i1,o1)=P(it|it−1)(t=1,2,…,T)
2. 观测独立性假设:任意时刻 t 的观测只依赖于时刻
P(ot|iT,oT,iT−1,oT−1,…,it+1,ot+1,it,it−1,ot−1,…,i1,o1)=P(ot|it)(t=1,2,…,T)
观测序列生成算法:
输入:隐马尔科夫模型 λ=(A,B.π) ,观测序列长度 T ;
输出:观测序列
1. 由初始概率向量 π 产生状态 i1 ;
2. t=1 ;
3. 由状态 it 的观测概率分布 bj(k) 生成 ot ;
4. 由状态 it 的状态转移概率分布 aitit+1 生成状态 it+1(it+1=1,2,…,N) ;
5. t=t+1 ;如果 t<T ,转至3.;否则,结束。
隐马尔科夫模型的3个基本问题:
1. 概率计算:已知 λ=(A,B,π) 和 O={
o1,o2,…,ot,…,oT} ,计算 P(O|λ)
2. 学习:已知 O={
o1,o2,…,ot,…,oT} ,计算 λ∗=argmaxP(O|λ)
3. 预测(编码):已知 λ=(A,B.π) 和 O={
o1,o2,…,ot,…,oT} ,计算 I∗=argmaxP(I|O,λ)
前向概率
αt(i)=P(o1,o2,…,ot,it=qi|λ)
给定模型 λ ,时刻 t 部分观测序列为
前向概率递推计算
αt(i)=P(o1,o2,…,ot,it=qi|λ)=P(it=qi,ot1)=∑j=1NP(it−1=qj,it=qi,ot−11,ot)=∑j=1NP(it=qi,ot|it−1=qj,ot−11)⋅P(it−1=qj,ot−11)=∑j=1NP(it=qi,ot|it−1=qj)⋅αt−1(j)=∑j=1NP(ot|it=