引數估計問題:給定乙個觀察序列o=
o1o2
…ot ,如何調節模型μ=
(a,b
,π) 的引數,使得p(
o|μ)
最大化: ar
gmaxμp
(otr
aini
ng|μ
) 模型的引數是指構成μ 的
πi,a
ij,b
j(k)
。本文的前序兩節講的em演算法就是為了解決模型引數的最大化問題。其基本思想是,初始時隨機地給模型引數賦值,該賦值遵循模型對引數的限制,例如,從某一狀態出發的所有轉移概率之和為1.給模型引數賦初值後,得到模型μ0
, 然後根據μ0
可以得到模型中隱變數的期望值。例如,從μ0
得到某一狀態到另一狀態的期望次數,用期望次數來替代實際次數,這樣可以得到模型引數的重新估計值,由此得到新的模型μ1
。然後重複上述過程,直到引數收斂於最大似然估計值。
給定hmm的引數
μ 和觀察序列o=
o1o2
…ot 在時間
t 位於狀態si
,時間t+1
位於狀態sj
的概率: ξt
(i,j
)=p(
qt=s
i,qt
+1=s
j|o;
μ)(1
≤t≤t
,1≤i
,j≤n
) 可由下面的公式計算獲得: ξt
(i,j
)=p(
qt=s
i,qt
+1=s
j,o;
μ)p(
o;μ)
=at(
i)ai
jbj(
ot+1
)βt+
1(j)
p(o;
μ)=a
t(i)
aijb
j(ot
+1)β
t+1(
j)∑n
i=1∑
nj=1
at(i
)aij
bj(o
t+1)
βt+1
(j)(
18−1)
給定hmm的引數
μ 和觀察序列o=
o1o2
…ot 在時間
t 位於狀態si
的概率γt(
i)為: γt
(i)=
∑j=1
nξt(
i,j)
(18−2
) 由此,μ
的引數可由下式估計: πi
¯=p(
q1=s
i|o;
μ)=γ
1(i)
a¯ij
=q中從
狀態qi
轉移到q
j的期望
次數q中
所有從狀
態qi轉
移到另一
狀態(包
含qj)
的期望次
數=∑t
−1t=
1ξt(
i,j)
∑t−1
t=1γ
t(i)
b¯j(
k)=q
中從狀態
qj輸出
符號vk
的期望次
數q到達
qj的期
望次數=
∑tt=
1γt(
j)δ(
ot,v
k)∑t
t=1γ
t(j)
根據上述思路,給出前向後向演算法:
1. 初始化:隨機地給引數πi
,aij
,bj(
k)賦值,使得滿足如下約束: ∑i
=1nπ
i=1∑
j=1n
aij=
1,1≤
i≤n∑
k=1m
bj(k
)=1,
1≤j≤
n 由此,得到模型μ0
.令i=0
,執行下面的em估計。
2. em計算
e步:由模型μi
根據公式18-1和18-2計算ξt
(i,j
) 和γt
(i) ;
m步:用e步得到的期望值重新估計模型引數πi
,aij
,bj(
k),得到模型μi
+13. 迴圈計算: 令 i
=i+1
, 重複em計算,直到πi
,aij
,bj(
k)收斂。
機器學習 基於HMM的中文分詞
encoding utf 8 b表示詞彙的開始 m表示詞彙的中間 e表示詞彙的尾部 s表示詞彙單獨成詞 class hmm object def init self self.states b m e s self.load para false self.a dic self.b dic self...
EM演算法學習 番外篇 HMM的引數估計
一 hmm的定義 隱馬爾科夫模型實際上是乙個雙重的隨機過程,其中一重隨機過程不能直接被觀測到,通過狀態轉移概率矩陣描述,另一重隨機過程輸出可以觀測的觀測符號,這個是由輸出的概率來進行定義的.隱馬爾科夫的模型的引數 入 可以表示為乙個五元組 1 s是一組狀態的集合,s 而隨機序列x在t時刻所處的狀態為...
機器學習中的引數和超引數
模型內部的配置變數,例如 神經網路中的權重w和偏置b,svm中的支援向量,線性回歸或邏輯回歸中的係數 使用資料進行估計 優化演算法 或者學習得到 模型外部設定的變數,例如 神經網路中的學習速率 learning rate 迭代次數 epoch 隱藏層層數 每層的神經元個數 啟用函式的選擇,svm中的...