1. HMM的概念
- 时序概率模型,生产不可观测的状态序列和观测序列
定义
λ=(A,B,π)
- Q= 状态集合= {q1,q2,...,qN} ……….N:状态数
- V= 可能的观测集合= {v1,v2,...,vM} ………. M:观测数
- I=长度为T的状态序列= (i1,i2,i3,......,iT)
O=对应的观测序列= (o1,o2,......,oT)
A = 状态转移矩阵
A=[aij]N∗N
其中 aij=P(it+1=qj|it=qi) ,,,,,,,,, i=1,…,N; j=1,….,N
t时刻处于状态 qi 的条件转移到t+1时刻状态q_j的概率B= 观测概率矩阵
B=[bj(k)]N∗M
其中
bj(k)=P(ot=vk|it=qj)...........k=1,2,3,...M;j=1,2......,N
t时刻处于状态
qj
的条件下的观测
vk
的概率
- π 是初始状态概率向量:
π=π(πi)
t=1 时刻处于状态 qi 的概率
2. HMM的建模假设
- 齐次马尔科夫性假设
P(it|it−1,ot−1,......,i1,o1)=P(it|it−1) ……….. t=1,2,3,...,T
- 观测独立假设
P(ot|iT,oT,....,i1,oi)=P(ot|it)
例子
P173
3. HMM模型的三个基本问题
概率计算问题:
给定模型 λ=(A,B,π) 和观测序列 O=(o1,...,oT) ,计算模型 λ 下的观测序列 O 出现的概率P(O|λ) 学习问题:
已知观测序列 O=(o1,...,oT) , 估计模型 λ=(A,B,π) 的参数,使得在该模型下观测序列概率 P(O|λ) ; 极大似然估计的方法预测问题
已知模型 λ=(A,B,π) 和观测序列 O=(o1,...,oT) ;求给定观测序列条件概率 P(I|O) 最大的状态序列 I=(ii,i2,...,iT) ; 给定观测序列,求最可能的状态序列
4. 概率计算问题
已知:
λ=(A,B,π)
和观测序列
O=(o1,...,oT)
,
求解:
λ
下的观测序列
O
出现的概率
直接计算
状态序列 I={i1,i2,...,iT} 的概率是
P(I|λ)=πi1ai1i2ai2i3....aiT−1iT
对于固定的状态序列 I={i1,i2,...,iT} 下, 观测序列 O=(o1,...,oT) 的概率是 P(O|I,λ)
P(O|I,λ)=bi1(o1)bi2(o2)...biT(oT)
O 和 I 的联合概率
P(O|I,λ)=P(O|I,λ)P(I|λ)
=πi1bi1(o1)ai1i2bi2(o2)...aiT−1biT(oT)对所有的可能的状态序列 I 求和, 得到观测序列 O的概率
P(O|λ) P(O|λ)=∑IP(O|I,λ)P(I|λ)
=∑i1,i2,...,iTπi1bi1(o1)ai1i2bi2(o2)...aiT−1biT(oT)计算复杂度: O(TNT)
5. 前向算法
前向概率
- 已知: λ
- 定义:时刻
t
部分观测序列为
o1,o2,...,ot 且状态为 qi 的概率 为前向概率
αt(i)=P(o1,o2,...,ot,it=qi|λ)
前向算法
- 输入: 隐马尔科夫模型 λ ;观测序列 O ;
输出:观测序列的概率
P(O|λ) 初值:
α1(i)=πibi(oi) ……… i=1,2,…,N
递推: t=1,2,…,T-1
αt+1(i)=[∑j=1Nαt(j)αji]bj(ot+1)
终止
p(O|λ)=∑Ni=1αT(i)
结论
- 每次应用前一个时刻的计算结果
复杂度
O(N2T)
6 .后向算法
前向概率
- 已知: λ
定义:时刻 t 部分观测序列为
o1,o2,...,ot 且状态为 qi 的概率 为前向概率αt(i)=P(o1,o2,...,ot,it=qi|λ)
后向概率
- 已知: λ
定义:定义时刻 t 下状态为
qi 条件下,从 t+1 到 T 部分观测序列为ot+1,ot+2,...,oT 的概率是后向概率βt(i)=P(ot+1,ot+2,...,oT|it=qt,λ)
后向算法
- 输入: 隐马尔科夫模型 λ ;观测序列 O ;
- 输出:观测序列的概率
P(O|λ)
步骤1:
βT(i)=1 ……. i=1,2,…,N
步骤2:对于 t=T−1,T−2,...,1
βt(i)=∑j=1Naijbj(ot+1)βt+1(j) ……….. i=1, 2, 3, …, N
步骤3:
P(O|λ)=∑Ni=1πibi(oi)βi(i)
7. HMM的概率与期望
* 给定
λ
和观测 O,在
t
时刻处于qi 的概率
γt(i)=P(it=qi|O,λ)
γt(i)=P(it=qi|O,λ)=P(it=qi,O|λ)P(O|λ)
因为:
αt(i)βt(i)=P(it=qi,O|λ)
=>
γi(t)=αt(i)βt(i)P(O|λ)=αt(i)βt(i)∑j=1Nαt(i)βt(j)
* 给定模型
λ
和观测
O
, 在时刻 t 处于状态
qi
且在时刻
t+1
处于
qj
的概率
ξt(i,j)=P(it=qi,it+1=qj|O,λ)
前向后向概率计算 =>
ξt(i,j)=P(it=qi,it+1=qj,O|λ)P(O|λ)=P(it=qi,it+1=qj,O|λ)∑i=1N∑j=1NP(it=qi,it+1=qj,O|λ)
=αt(i)aijbj(Ot+1)βt+1(j)∑i=1N∑j=1Nαt(i)aijbj(ot+1)βt+1(j)
* 期望
在观测O下状态 i 出现的期望
∑Tt=1γt(i) 在观测O下由状态 i 转移的期望值
∑t=1T−1γt(i) 在观测O下,由状态 i 转移到 状态
j 的期望值∑t=1T−1ξt(i,j)