机器学习模型LaTeX公式版:隐马尔科夫模型

状态集合

Q={q1,q2,,qN}Q=N

观测集合
V={v1,v2,,vM}V=M

状态序列
I={i1,i2,,it,,iT}itQ(t=1,2,,T)

观测序列
O={o1,o2,,ot,,oT}otV(t=1,2,,T)

状态转移矩阵
A=[aij]N×N

t 时刻处于状态qi的条件下,在 t+1 时刻转移到状态 qj 的概率
aij=P(it+1=qj|it=qi)(i=1,2,,N)(j=1,2,,M)

观测概率矩阵
B=[bj(k)]N×M

t 时刻处于状态qi的条件下,生成观测 vk 的概率
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 的状态只依赖于时刻t1的状态。
P(it|it1,ot1,,i1,o1)=P(it|it1)(t=1,2,,T)

2. 观测独立性假设:任意时刻 t 的观测只依赖于时刻t的状态。
P(ot|iT,oT,iT1,oT1,,it+1,ot+1,it,it1,ot1,,i1,o1)=P(ot|it)(t=1,2,,T)

观测序列生成算法:
输入:隐马尔科夫模型 λ=(A,B.π) ,观测序列长度 T ;
输出:观测序列O={o1,o2,,ot,,oT}
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 部分观测序列为o1,o2,,ot且状态为 qi 的概率。
前向概率递推计算
αt(i)=P(o1,o2,,ot,it=qi|λ)P(it=qi,ot1)=j=1NP(it1=qj,it=qi,ot11,ot)=j=1NP(it=qi,ot|it1=qj,ot11)P(it1=qj,ot11)=j=1NP(it=qi,ot|it1=qj)αt1(j)=j=1NP(ot|it=qi,it1=qj)P(it=qi|it1=qj)αt1(j)=j=1Nbi(ot)ajiαt1(j)

概率计算
P(O|λ)=P(oT1|λ)=i=1NP(oT1,iT=qi)=i=1NαT(i)

观测序列概率计算的前向算法:
输入:隐马尔科夫模型 λ ,观测序列 O ;
输出:观测序列概率P(O|λ)
1. 初值
α1(i)=πibi(o1)(t=1,2,,N)

2. 递推 对 t=1,2,,T1
αt+1(i)=j=1Nbi(ot+1)ajiαt(j)(t=1,2,,N)

3. 终止
P(O|λ)=j=1NαT(i)

后向概率

βt(i)=P(ot+1,ot+2,,oT|it=qiλ)

给定模型 λ ,时刻 t 状态为qi的条件下,从时刻 t+1 到时刻 T 的部分观测序列为ot+1,ot+2,,oT的概率。
后向概率递推计算
βt(i)=P(ot+1,ot+2,,oT|it=qi,λ)P(oTt+1|it=qi)=P(oTt+1,it=qi)P(it=qi)=Nj=1P(oTt+1,it=qi,it+1=qj)P(it=qi)=j=1NP(oTt+1|it=qi,it+1=qj)P(it=qi,it+1=qj)P(it=qi)=j=1NP(oTt+1|it+1=qj)P(it+1=qj|it=qi)P(it=qi)P(it=qi)=j=1NP(oNt+2,ot+1|it+1=qj)aij=j=1NP(oTt+2|it+1=qj)P(ot+1|it+1=qj)aij=j=1Nβt+1(j)bj(ot+1)aij

概率计算
P(O|λ)=P(oT1|λ)=i=1NP(oT1,i1=qi)=i=1NP(i1=qi)P(o1|i1=qi)P(oT2|i1=qi)=i=1Nπibi(o1)β1(i)

观测序列概率计算的后向算法:
输入:隐马尔科夫模型 λ ,观测序列 O ;
输出:观测序列概率P(O|λ)
1. 初值
βT(i)=1(t=1,2,,N)

2. 递推 对 t=T1,T2,,1
βt(i)=j=1Nβt+1(j)bj(ot+1)aij(t=1,2,,N)

3. 终止
P(O|λ)=j=1Nπibi(o1)β1(i)

P(O|λ) 的前向概率、后向概率的表示

P(O|λ)P(oT1)i=1Nj=1NP(ot1,oTt+1,it=qi,it+1=qj)i=1Nj=1NP(ot1,it=qi,it+1=qj)P(oTt+1|it+1=qj)=i=1Nj=1NP(ot1,it=qi)P(it+1=qj|it=qi)P(oTt+1|it+1=qj)=i=1Nj=1NP(ot1,it=qi)P(it+1=qj|it=qi)P(ot+1|it+1=qj)P(oTt+2|it+1=qj)=i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j)t=1,2,,T1

给定模型 λ 和观测 O ,在时刻t处于状态 qi 的概率
γt(i)=P(it=qi|O,λ)=P(it=qi,O|λ)P(O|λ)=P(it=qi,O|λ)Nj=1(it=qi,O|λ)=P(ot1,it=qi)P(oTt+1|it=qi)Nj=1P(ot1,it=qi)P(oTt+1|it=qi)=αt(i)βt(i)Nj=1αt(i)βt(i)

给定模型 λ 和观测 O ,在时刻t处于状态 qi 且在时刻 t+1 处于状态 qj 的概率
ξt(i,j)=P(it=qi,it+1=qj|O,λ)=P(it=qi,it+1=qj,O|λ)P(O|λ)=P(it=qi,it+1=qj,O|λ)Ni=1Nj=1P(it=qi,it+1=qj,O|λ)=αt(i)aijbj(ot+1)βt+1(j)Ni=1Nj=1αt(i)aijbj(ot+1)βt+1(j)

在观测 O 下状态i出现的期望
t=1Tγt(i)=t=1TP(it=qi|O,λ)

在观测 O 下由状态i转移的期望
t=1T1γt(i)=t=1T1P(it=qi|O,λ)

在观测 O 下由状态i转移到状态 j 的期望
t=1T1ξt(i,j)=t=1T1P(it=qi,it+1=qj|O,λ)

将观测序列作为观测数据 O ,将状态序列作为隐数据I,则应马尔科夫模型是含有隐变量的概率模型
P(O|λ)=IP(O|I,λ)P(I|λ)

完全数据
Q(λ,λ) 函数
Q(λ,λ)=EI[logP(O,I|λ)|O,λ]=IlogP(O,I|λ)P(I|O,λ)=IlogP(O,I|λ)P(O,I|λ)P(O|λ)

其中, λ 是隐马尔科夫模型参数的当前估计值, λ 是隐马尔科夫模型参数。
由于对最大化 Q(λ,λ) 函数, P(O|λ) 为常数因子,
以及
P(O,I|λ)=πi1bi1(o1)ai1i2bi2(o2)aiT1iTbT(oT)

所以求 Q(λ,λ) 函数对 λ 的最大
λ=argmaxQ(λ,λ)argmaxIlogP(O,I|λ)P(O,I|λ)=Ilogπi1P(O,I|λ)+I(t=1T1logaitit+1)P(O,I|λ)+I(t=1Tlogbit(ot))P(O,I|λ)

对三项分别进行极大化:
1.
maxIlogπi1P(O,I|λ)=i=1Nlogπi1P(O,i1=i|λ)s.t.i=1Nπi=1

构造拉格朗日函数,对其求偏导,令结果为0
πi[i=1Nlogπi1P(O,i1=i|λ)+γ(i=1Nπi1)]=0

P(O,i1=i|λ)+γπi=0i=1N[P(O,i1=i|λ)+γπi]=0i=1NP(O,i1=i|λ)+γi=1Nπi=0P(O|λ)+γ=0γ=P(O|λ)

代入 P(O,i1=i|λ)+γπi=0 ,得
πi=P(O,i1=i|λ)P(O|λ)=γ1(i)

2.
maxI(t=1T1logaitit+1)P(O,I|λ)=i=1Nj=1Nt=1T1logaijP(O,it=i,it+1=j|λ)s.t.j=1Naij=1

aij=T1t=1P(O,it=i,it+1=j|λ)T1t=1P(O,it=i|λ)=T1t=1ξt(i,j)T1t=1γt(i)

3.
maxI(t=1Nlogbit(ot))P(O,I|λ)=j=1Nt=1Tlogbj(ot)P(O,it=j|λ)s.t.k=1Mbj(k)=1

bj(k)=Tt=1P(O,it=j|λ)I(ot=vk)Tt=1P(O,it=j|λ)=Tt=1,ot=vkγt(j)Tt=1γt(j)

Baum-Welch算法:
输入:观测数据 O=(o1,o2,,oT)
输出:隐马尔科夫模型参数
1. 初始化
n=0 ,选取 a(0)ij,bj(k)(0),π(0)i ,得到模型 λ(0)=(a(0)ij,bj(k)(0),π(0)i)
2. 递推
n=1,2,,
a(n+1)ij=T1t=1ξt(i,j)T1t=1γt(i)bj(k)(n+1)=Tt=1,ot=vkγt(j)Tt=1γt(j)π(n+1)i=P(O,i1=i|λ)P(O|λ)

其中,右端各值按观测数据 O=(o1,o2,,oT) 和模型 λ(n)=(A(n),B(n),π(n)) 计算。
3. 终止
得到模型 λ(n1)=(A(n+1),B(n+1),π(n+1))
在时刻 t 状态为i的所有单个路径 (i1,i2,,it) 中概率最大值
δt(i)=maxi1,i2,,it1P(it=i,it1,,i1,ot,,o1|λ)i=1,2,,N

得递推公式
δt+1(i)=maxi1,i2,,itP(it+1=i,it,,i1,ot+1,,o1|λ)=max1jN[maxi1,i2,,it1P(it+1=i,it=j,it1,,i1,ot+1,ot,,o1|λ)]=max1jN[maxi1,i2,,it1P(it+1=i,it=j,it1,,i1,ot,ot1,,o1|λ)P(ot+1|it+1=i,λ)]=max1jN[maxi1,i2,,it1P(it=j,it1,,i1,ot,ot1,,o1|λ)P(it+1=i|it=j,λ)P(ot+1|it+1=i,λ)]=max1jN[δt(j)aji]bi(ot+1)i=1,2,,N

在时刻 t 状态为i的所有单个路径 (i1,i2,,it) 中概率最大值的路径的第 t1 个结点
ψt(i)=argmax1jN[δt1(j)aji]i=1,2,,N

维特比算法:
输入:模型 λ=(A,B,π) 和观测数据 O=(o1,o2,,oT)
输出:最优路径 I=(i1,i2,,iT)
1. 初始化
δ1(i)=πibi(o1)i=1,2,,Nψ1(i)=0

2. 递推
t=2,3,,T
δt(i)=max1jN[δt1(j)aji]bi(ot)i=1,2,,Nψt(i)=argmax1jN[δt1(j)aji]i=1,2,,N

3. 终止
P=max1jNδT(i)iT=argmax1jN[δT(i)]

4. 最优路径回溯
t=T1,T2,,1
it=ψt+1(it+1)

求得最优路径 I=(i1,i2,,iT)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值