機器學習模型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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章