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

来源:互联网 发布:编程语言有多少 编辑:程序博客网 时间:2024/05/29 19:20

状态集合

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
原创粉丝点击