有监督训练
一、HMM参数的训练有2种方法,一种是有监督学习,另一种是无监督学习。其中有监督学习很简单,无监督理解起来稍微困难。已知模型参数 λ=(αNN,βNM,πN)
- 有监督学习直接利用计数的方式来求得模型参数- 假设已经给出训练数据包含S个长度相同的观测序列和对应的状态序列 (O1,I1),(O2,I2),...,(Os,Is) ,那么可以利用极大似然估计法来估计模型参数!!
- 转移概率的 αNN 估计。 αij=Aij÷∑Nj=1Aij ,A是个数
- 观测(发射)概率 βNM 的估计。 βj(k)=Bjk÷∑Mk=1Bjk
- 初始状态概率 πN 的估计。 πi=初始状态i发生的频率
无监督方法EM
隐马尔可夫事实上是一个含有隐变量的概率模型
P(O|λ)=∑IP(O,I|λ)P(I|λ)
它的训练可以用EM算法(上文已讲)
1、首先确定完全数据的对数似然函数,即
p(O,I|λ)
2、E-step:完全数据的期望,即Q函数
Q(λ,λ¯)
- Q(λ,λ¯)=∑IlogP(O,I|λ)p(O,I|λ¯)
- 其中 logP(O,I|λ)=πi1bi1(o1)ai1i2....aiT−1iTbiT(oT)
- 则Q函数可以写成
- Q(λ,λ¯)=∑IlogP(O,I|λ)p(O,I|λ¯)
- = ∑Ilogπi1p(O,I|λ¯)
- + ∑I⟮∑T−1t=1logaitit+1p(O,I|λ¯)⟯
- + ∑I⟮∑Tt=1logbit(ot)p(O,I|λ¯)⟯
3、M-step:极大化Q函数
- 我们首先对上式等号右边第一项处理:
-
∑Ilogπi1p(O,I|λ¯)=∑Ni=1logπip(O,i1=|λ¯)
- 其中 πi 满足 ∑Ni=1πi=1 ,利用拉格朗日乘子法,写出拉格朗日函数:
- F(π,λ)=∑Ni=1logπip(O,i1=|λ¯)+λ⟮∑Ni=1πi−1⟯
- 对 πi 求偏导数,且令它为0,得到 P(O,ii=i|λ¯)+γπi=0
- 对 πi 求和,得到 γ=−P(O|λ¯) 得到 πi=P(O,ii=i|λ)P(O|λ¯)
-
∑Ilogπi1p(O,I|λ¯)=∑Ni=1logπip(O,i1=|λ¯)
- 我们队第二项处理
- 同上,最终得到 αij=∑T−1t=1P(O,it=i,it+1=j|λ¯)∑T−1t=1P(O,it=i|λ¯
- 根据上节讲述的前向后向求概率。 αij=∑T−1t=1ζt(i,j)∑T−1t=1γt(i)
- 我们对第三项处理
- bj(k)=∑Tt−1P(O,it=j|λ¯)I(ot=vk)∑Tt−1P(O,it=j|λ¯)=∑Tt=1γt(i)∗I(ot=vk)∑Tt=1γt(i)
4、算法,即初始化参数,ME求参数,迭代直至次数或收敛(EM是可收敛的)
EM算法简单介绍
-
EM背景介绍
1.概率模型有事既含有观测变量,又含有隐变量。比如HMM中的隐状态。 如果概率模型的变量是观测变量,那么给定训练数据,可以直接用最大似然估计或者最大后验估计或者贝叶斯估计来求得参数模拟数据的分布,当然也可以用非参估计(比较复杂)。但是,当模型含有隐变量,就不能简单的用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计方法。
-
EM过程
1.EM算法是一种迭代算法。EM算法每次迭代分为2步:E步,求期望;M ,求极值。 -
EM算法
-
EM算法的基本思想:随机选取来初始化待估计参数 θ(0),然后不断迭代赵更优的θ(n+1),使得其似然L(θn+1)比原来的L(θ(n))更大。即如果我们现在得到θ(n),想求θ(n+1) 使得:
θ(n+1)=maxθ(L(θ)−L(θ(n)))
我们已知log似然为 L(θ)=log(P(X|θ) ,其中X是已观测的随机变量。现在转向 complete data log-likelihood 的概率。所谓 complete data 就是模型中隐变量也被观测到了。与 L(θ) 不同的是,
Lc(θ)=logP(X,H|θ)Lc(θ)
=logP(X,H|θ)=log(P(X|H,θ)P(H|θ))
=L(θ)+logP(X|H,θ)
引入上述概念后,则
L(θ)−L(θn)
=Lc(θ)−logP(X|H,θ)−L(θn)
=Lc(θ)−logP(X|H,θ)−Lc(θn)+logP(X|H,θn)
=Lc(θ)−Lc(θn)+logP(X|H,θn)P(X|H,θ)对上式两边同时求 P(H|X,θn) 的期望,得到:
L(θ)−L(θn)
=∑HLc(θ)P(H|X,θn)
−∑HLc(θn)P(H|X,θn)
+∑HP(H|X,θn)logP(X|H,θn)P(X|H,θ)上面=左边不变的原因是,H没有出现在似然L中。上式右边最后一项可以看做 P(X|H,θn)和P(X|H,θ) 的KL-divergence(2个分布的相似度KL-divergence的性质),他的值是非负的。则
L(θ)−L(θn)>=∑HLc(θ)P(H|X,θn)−∑HLc(θn)P(H|X,θn)
L(θ)>=∑HLc(θ)P(H|X,θn)−∑HLc(θn)P(H|X,θn)+L(θn)
因此我们得到 L(θ) 的一个下界。EM算法就是不断的最大化这个下界,从而使得 L(θ) 不断最大化。上公式最后2项是和 θ 无关的,可以看做常数。因此我们最终任务是最大化:
EP(H|X,θn)(Lc(θ))=∑HLc(θ)P(H|X,θn) 。上式就是所谓的Q函数了。记为 Q(θ;θn) 。
综上述,EM算法步骤如下
1、随机选取(极大似然)或者根据先验知识(最大后验估计)来初始化 θ0 。
2、迭代执行下面2步E和M
a)、E-step(期望) 计算 Q(θ;θn)
b)、M-step(maximization) 重新估计参数 θ,即求θ(n+1)使得θ(n+1)=argmaxθQ(θ;θn)
3、直至收敛。
注意EM不能保证收敛到最优解(凸有最优解),只能局部最优解总结:更新 θn 后产生新的Q函数,再求新的Q函数的极大值得到新的 θn+1 ,而目标函数 L(θ) 始终是大于等于Q函数的,迭代N次后 L(θ) 越来越多直至收敛。收敛性证明就不说了!
-
参考文献:A Note on EM Algorithm and PLSA XinYan Lu