HMM的参数学习问题
HMM的参数学习问题有两种:
监督学习
:给定观测序列
O=(o1,...,oT)
和对应的状态序列
I=(i1,...,iT)
,估计参数
λ=(A,B,π)
。
非监督学习
:只给定观测序列
O=(o1,...,oT)
,估计参数
λ=(A,B,π)
。
监督学习(极大似然直接估计)
监督学习通过使用训练数据,来得到观测序列和对应的隐状态。然后计算相应的频数值,作为参数的近似估计。
非监督学习(Baum-Welch算法迭代估计)
Baum-Welch算法的本质即EM算法,是用于含有隐向量的模型中,进行参数学习的迭代算法。回顾EM算法的核心,是按照
Θ(g+1)
和
Θ(g)
之间的等式关系:
Θ(g+1)=argmaxΘ{Q(Θ,Θ(g))}=argmaxΘ∫zP(Z|X,Θ(g))logP(X,Z|Θ)dz
不断更新参数,并且保证每一次更新,都能使对数似然函数逐渐增大。
在非监督学习的情况下,我们只有观测序列
O=(o1,...,oT)
,而状态序列
I
被视为不可观测的隐变量,此时HMM就是一个含有隐变量的概率模型:
P(O|λ)=∑IP(O|I,λ)P(I|λ)
扫描二维码关注公众号,回复:
2625487 查看本文章
此时的参数估计可以用EM算法实现。这里,参数
λ
的迭代规则为:
λ(g+1)=argmaxλ{Q(λ,λ(g))}=argmaxλ∫IP(I|O,λ(g))logP(O,I|λ)dI
其中,
λ(g)
是上一次迭代得到的参数,
λ(g+1)
是下一次迭代更新的参数。
E-step
如上,在HMM中,求期望的公式为:
Q(λ,λ(g))=∫IP(I|O,λ(g))logP(O,I|λ)dI=∑IP(I|O,λ(g))logP(O,I|λ)
由于
P(I|O,λ(g))=P(O,I|λ(g))P(O|λ(g))
,注意
λ(g)
是一个常数,因此对于
λ
来说,
1P(O|λ(g))
是一个常数因子,不会对
argmax
的结果产生任何影响。因此,
Q
函数又可写为:
Q(λ,λ(g))=∑IP(O,I|λ(g))logP(O,I|λ)
在HMM的概率计算问题-直接计算章节,已求得:
P(O,I|λ)=πi1∏t=1Tbit(ot)∏t=1T−1aitit+1
代入
Q
函数并展开,记为式1
:
Q(λ,λ(g))=∑IP(O,I|λ(g))log[πi1∏Tt=1bit(ot)∏T−1t=1aitit+1]
=∑IP(O,I|λ(g))logπi1+∑IP(O,I|λ(g))∑Tt=1logbit(ot)+∑IP(O,I|λ(g))∑T−1t=1logaitit+1
M-step
上述式1
被展开为3项:它们分别包含了初始状态概率向量
πi1
、观测概率矩阵
的元素
bit(ot)
、状态转移概率矩阵
的元素
aitit+1
,可以分别用于估计参数
π
、
BN×M
、
AN×N
。现在分别对每一项做最大化,求出下一步的迭代参数。
πi1
∑IP(O,I|λ(g))logπi1
=∑i1...∑iT[P(O,I|λ(g))logπi1]
=∑i1logπi1[∑i2...∑iTP(O,i1,i2,...,iT|λ(g))]
=∑i1logπi1P(O,i1|λ(g))
=∑Ni=1logπiP(O,i1=qi|λ(g))
由于初始状态概率必须满足
∑Ni=1πi=1
,因此构造拉格朗日方程:
L(πi)=∑Ni=1logπiP(O,i1=qi|λ(g))−γ(∑Ni=1πi−1)
分别对
πi
、
γ
求偏导,并令其等于0:
∂L∂πi=P(O,i1=qi|λ(g))πi−γ=0
∂L∂γ=−(∑Ni=1πi−1)=0
联立解得:
π(g+1)i=P(O,i1=qi|λ(g))∑Ni=1P(O,i1=qi|λ(g))=P(O,i1=qi|λ(g))P(O|λ(g))
bit(ot)
∑IP(O,I|λ(g))∑Tt=1logbit(ot)
=∑I[P(O,I|λ(g))logbi1(o1)+...+P(O,I|λ(g))logbiT(oT)]
=∑IP(O,I|λ(g))logbi1(o1)+...+∑IP(O,I|λ(g))logbiT(oT)
=∑Ni=1P(O,i1=qi|λ(g))logbi(o1)+...+∑Ni=1P(O,iT=qi|λ(g))logbi(oT)
=∑Ni=1∑Tt=1P(O,it=qi|λ(g))logbi(ot)
由于观测概率矩阵的行和均为
1
,即必须满足
N
个约束条件:
∑Mk=1bi(ot=vk)=1,i∈{1,2,...,N}
,因此构造拉格朗日方程:
L(bi(ot))=∑Ni=1∑Tt=1P(O,it=qi|λ(g))logbi(ot)−∑Ni=1γi(∑Mk=1bi(ot=vk)−1)
分别对
bi(ot)
、
γi
求偏导,并令其等于0:
【注】:只有在
ot=vk
时,
bi(ot)
对
bi(vk)
的偏导才不为零,以
I(ot=vk)
表示。
∂L∂bi(ot)=∑Tt=1P(O,it=qi|λ(g))bi(ot)−∑Ni=1γi=0
∂L∂γi=−(∑Mk=1bi(ot=vk)−1)=0
联立解得:
bi(ot=vk)(g+1)=∑Tt=1P(O=vk,it=qi|λ(g))∑Mk=1∑Tt=1P(O=vk,it=qi|λ(g))
=∑Tt=1P(O,it=qi|λ(g))I(ot=vk)∑Tt=1P(O,it=qi|λ(g))
aitit+1
∑IP(O,I|λ(g))∑T−1t=1logaitit+1
=∑I[P(O,I|λ(g))logai1i2+...+P(O,I|λ(g))logaiT−1iT]
=∑IP(O,I|λ(g))logai1i2+...+∑IP(O,I|λ(g))logaiT−1iT
=∑Ni=1∑Nj=1P(O,i1=qi,i2=qj|λ(g))logaij+...+∑Ni=1∑Nj=1P(O,iT−1=qi,iT=qj|λ(g))logaij
=∑Ni=1∑Nj=1∑T−1t=1P(O,it=qi,it+1=qj|λ(g))logaij
由于状态转移概率矩阵的行和均为
1
,即必须满足
N
个约束条件
∑Nj=1aij=1,i∈{1,2,...,N}
,因此构造拉格朗日方程:
L(aij)=∑Ni=1∑Nj=1∑T−1t=1P(O,it=qi,it+1=qj|λ(g))logaij−∑Ni=1γi(∑Nj=1aij−1)
分别对
aij
、
γi
求偏导,并令其等于0:
∂L∂aij=∑T−1t=1P(O,it=qi,it+1=qj|λ(g))aij−∑Ni=1γi=0
∂L∂γi=−(∑Nj=1aij−1)=0
联立解得:
a(g+1)ij=∑T−1t=1P(O,it=qi,it+1=qj|λ(g))∑Nj=1∑T−1t=1P(O,it=qi,it+1=qj|λ(g))
=∑T−1t=1P(O,it=qi,it+1=qj|λ(g))∑T−1t=1P(O,it=qi|λ(g))