HMM->MEMM->CRF

Posted on 2017-10-18 22:44  Jarckry  阅读(271)  评论(0编辑  收藏  举报

 

1 相关概念

随机过程 
马尔科夫随机过程 
随机场 
马尔科夫随机场联合概率分布P(Y)可用无向图G(V,E)表示,在图G中,节点表示随机变量,边表示变量之间的依赖。如果该联合分布满足成对、局部、全局马尔科夫性,那么该联合分布称为概率无向图模型,或马尔科夫随机场(Markov radom field). 图中节点之间的连接无方向限制,即没有强因果联系,只是表示软限制。 
马尔科夫链 
马尔科夫假设状态的转化只取决于相邻状态 
隐马尔科夫 描述由隐藏的马尔科夫链(状态序列)生成观测序列的过程,属于生成模型。观测值只和产生它的状态有关,而条件随机场中观测值可以和产生它的状态及其前后两个状态有关,所以条件随机场是隐马尔科夫模型大的扩展。 
条件随机场是给定随机变量X的前提下,随机变量Y的马尔科夫随机场。

2 HMM

属于概率生成模型

2.1 Why Hidden

2.2 HMM模型的形式化定义

可能的状态集合:Q=q1,...,qN 可能的观测集合:V=v1,...,vM 
观测序列:O=o1,...,oT 状态序列: I=i1,...,iT 
初始状态概率向量:π=(πi) 
状态转移概率矩阵 
A=[a_{ij}]_{N*N}

 


状态生成观测概率矩阵 

B=[bj(k)]NM

 

2.3 HMM的三个基本问题求解

概率计算 
已知观测序列O=o1,...,oN和模型参数λ,求p(o1,...,oN|λ) 
模型学习 
已知观测序列O=o1,...,oN,求模型参数λ.极大似然函数为p=(O|λ)
预测问题 
已知观测序列O=o1,...,oN和模型参数λ,求状态序列I.其中极大化的似然函数式p=(O|I).

2.3.1 针对第一个问题

直接计算 

p(I|λ)=πi1ai1...aiT


p(O|I,λ)=bi1(o1)...bit(ot)


p(O,I|λ)=p(O|I,λ)p(I|λ)=πi1bi1(o1)t=2Taitbit(ot)


I上求和 

p(O|λ)=Ip(O,I|λ)=Iπi1bi1(o1)...aiTbiT(oT)


计算复杂度为O(TNT) 
Forward 
1.初始化α1(i)=πibi(o1) ,i=1,...,N t=1 
2.αt+1(j)=(i=1Nαt(i))bj(ot) , j=1,...,N 
3.t=t+1 , 如果t<T继续执行步骤2,否则执行步骤4 
4.p(O|λ)=i=1NαT(i) 
其中,αt(i)=p(o1,o2,...,Ot,qt=i|λ),该算法的时间复杂度为O(TN2)

 

Backward 
1.初始化βT(i)=1 , i=1,...,N 
2.βt1(j)=i=1Naijbj(ot)βt(i), i=1,...,N 
3.t=t1,如果t>1继续执行步骤2,否则执行步骤4 
4.p(O|λ)=i=1Nβ1(i) 
其中,βt(i)=p(ot+1,ot+2,...,OT,qt=i|λ)

2.3.2 针对第二个问题

Baum-Welch即用EM算法求解HMM的模型参数。 
观测数据O已知,隐藏数据I未知,使用非监督算法求模型参数λ .完全数据为(O,I) 
Q函数 
EI[ln(p(I,O|λ))|O,λ]=lnp(I,O|λ)p(I|O,λ)=lnp(I,O|λ)p(I,O|λ)/p(O|λ) 
去掉上式中常数项1/p(O|λ),令Q(λ,λ)=lnp(I,O|λ)p(I,O|λ) 
E步骤 

p(I,O|λ)Q(λ,λ)=πi1bi1(o1)ai2i2bi2(o2)...aiTiTbiT(oT)  , it=1,2,...,N=i=1Nlnπip(I,O|λ)+t=2TIlnbit(oit)p(I,O|λ)+t=2TIlnaititp(I,O|λ)


M步骤 
分别求Qλ=(πi,aitit,bit(ot))的偏导数,并令它们等于零,从而解得参数λ

 

2.3.3 针对第三个问题

近似算法 
已知λO,在时刻t,状态it=qi的概率为: 

rt(i)=p(it=qi|O,λ)=p(it=qi,O|λ)p(O|λ)


在问题一的前后向算法中,αt(i)=p(o1,o2,...,Ot,qt=i|λ)   βt(i)=p(ot+1,ot+2,...,OT,qt=i|λ),所以 

rt(i)=p(it=qi|O,λ)=αt(i)βt(i)p(O|λ)=αt(i)βt(i)j=1Nαt(j)βt(j)


近似算法就是计算在每个时刻t最可能出现的状态it ,t=1,...,T,即求

 

 

it=argmaxit rt(i)


维特比算法 
利用动态规划(Dynamic Programming)思想求概率最大的路径(状态序列),称为最优路径。如果最优路径在时刻t的所取状态为it,那么从时刻1到时刻t+1的最优路径在时刻t的所取状态也必须为it,否则将存在矛盾。 
为了方便说明维特比算法,首先定义两个变量δt(i)ψt(i), 
δt(i)表示在时刻t ,状态为i的最优路径的概率:

δt(i)=max p(it=i,it1,it2,...,i1,ot,ot1,...,o1)
δt+1(i)=max p(it+1=i,it,it1,...,i1,ot+1,ot,...,o1)=max1jN(δt(j)aji)bi(ot+1)

ψt(i)表示在时刻t ,状态为i的最优路径的第 t1 个状态: 

ψt(i)=argmax1jNp(it=i,it1=j,it2,...,i1,ot,ot1,...,o1)


维特比算法的步骤如下: 
1.初始化,δ1(i)=πibi(o1),ψ1(i)=0 
2.递推,t=2,3,…,T

δt(i)=max1jN(δt1(j)aji)bi(ot)
ψt(i)=argmax1jN(δt1(j)aji)

3.停止,pmax=max1iNδT(i) ,iT=argmax1iNδT(i) 
4.回溯求最优路径,即概率最大状态序列,t=T1,T2,...,1 

it=ψt(it+1)

最优序列为:

I=(i1,...,iT)

 

3 MEMM

3.1 最大熵模型 Maximum Entropy

最大熵模型是判别模型. 
假设满足所有约束条件的模型集合为 

C={P|EP(fi)=EP^(fi),i=1,...,n}

定义条件概率分布P(Y|X)上的条件熵为 

H(P)=X,YP^(x)P(y|x)logP(y|x)


注释:特征函数fi表示XY满足的限制。EP(fi)=EP^(fi)即为:X,YP^(X,Y)f(x,y)=X,YP(Y|X)P^(X)f(x,y),其中,P^(X,Y)P^(X)可以通过样本数据得到。 
求解H(P)的最大值,可得P(Y|X),推导省略。

P(Y|X)=1Z(x)exp(i=1Nwifi(x,y))

其中,Z(x)=jexp(i=1Nwifi(x,y))

 

3.2 最大熵马尔科夫模型

将最大上模型和HMM模型结合成生成模型,在序列标注的任务中表现出比HMM模型、无序列的最大熵模型更好的性能,但是存在标注偏置的问题。 
MEMM模型使用一个概率分布P(s|s,o)=Ps(s|o)取代HMM中的P(s|s)P(o|s),MEMM模型不仅可以表示观测之间的依赖,还可以表示当前观测和下一个状态之间的依赖。

模型定义

 

Ps(s|o)=1Z(o,s)exp(i=1Nwifi(o,s))

其中,O表示观测序列或需要标记的序列,S表示状态序列或标记序列 。

 

模型求解

标记偏置问题

4 条件随机场CRF

鉴于CRF与逻辑斯谛回归的关系(如下图),先简介逻辑斯谛模型。 
图1 
(图片来自参考文献3)

4.1逻辑斯谛回归模型

线性回归模型用于预测输出为实数值的情形,而在分类模型中使用线性模型输出表示分类的概率时不能保证概率特性(如概率介于0、1之间),如下

P(y=true|x)=wf

但是使用线性输出结果可以表示不同分类发生的几率,

P(y=true|x)P(y=false|x)=P(y=true|x)1P(y=true|x)=wf


上式等式两边的值域范围不同,使用自然对数解决这个问题 

lnP(y=true|x)1P(y=true|x)=wf


解上式得

P(y=true|x)=ewf1+ewf=11+ewf
P(y=false|x)=11+ewf

11+ewf是逻辑斯谛函数,其一般形式为11+ex
逻辑斯谛回归模型用于分类(classification,也称inference)的方法是通过计算不同类别的条件概率,如y=true,则有 

P(y=true|x)P(y=false|x)>1
ewf>1
wf>0
ewf>1

|w|维空间的超平面,所以使用超平面的判别问题在逻辑斯谛回归模型中借助了条件概率从比较概率大小的角度进行判别。 
逻辑斯谛模型的求解 
线性判别模型的参数学习通过缩小训练集上的误差平方和进行,逻辑斯谛模型参数的学习是通过最大化条件概率,即 

w=argmaxw iP(yi|xi)

等价于

w=argmaxw ilogP(yi|xi)

求解该最大值的方法有拟牛顿法、梯度下降等。 
注释:逻辑斯谛回归可用于二分类问题中,而上面介绍的MEMM模型是多项逻辑斯谛模型,可用于K分类问题。

 

4.2条件随机场的定义

在给定随机变量X的前提下,随机变量Y构成马尔科夫随机场,该马尔科夫随机场可用无向图G(V,E)表示。

P(Yv|X,Yw,vw)=P(Yv|X,Yw,v w)

.当XY为线性链时可定义线性链条件随机场,

P(Yi|X,Y1,Y2,...,Yi1,Yi+1,...Yn)=P(Yi|X,Yi1,Yi+1)

.

 

4.3条件随机场的参数化形式

 

P(y|x)=1Z(x)expk=1KwKfk(y,x)


Z(x)=yexpk=1KwKfk(y,x)


条件随机场的矩阵表示 

P(y|x)=1Z(x)i=1n+1Mi(yi1,yi|x)


Zw(x)=(M1(x)M2(x)...Mn+1(x))start,stop

 

4.3 条件随机场的三个基本问题及求解

4.3.1 概率计算问题

给定条件随机场P(Y|X)和观测序列,计算条件概率P(Y=yi|X)P(Y=yi1,Y=yi|X)以及相应的数学期望的问题。求解算法递归。

4.3.2 学习问题

根据训练数据求模型参数w。学习策略是极大似然或正则化极大似然,学习算法的具体实现是改进的迭代尺度法、牛顿法、拟牛顿法。 
已知训练数据的经验分布P(X,Y),条件概率分布P(X|Y)的似然函数是:

L=x,yP^(x,y)logPw(y|x)=x,y[P^(x,y)k=1Kwkfk(y,x)P^(x,y)logZw(x)]=j=1Nk=1Kwkfk(yj,xj)j=1NlogZw(xj)

 

4.3.3 预测问题

给定条件随机场P(Y|X)和观测序列,求最可能的标记序列。所用算法为维特比算法。

4.4 模型工具

CRF++

5 相关问题

MRF

MRF(Markov Radom Field)马尔科夫随机场,又称概率无向图模型,其联合分布为

HMM、MEMM、CRF模型比较

HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关(一阶马尔可夫模型)。 
MEMM模型克服了观察值之间严格独立产生的问题,但是由于状态之间的假设理论,使得该模型存在标注偏置问题。 
CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设,模型相应得也变复杂了。

6 相关算法小结

6.1 分类模式

分为两类:

生成模型

尝试对分布P(S|O)建模,如利用贝叶斯公式P(S|O)=P(S,O)SP(O),并据此生成样本。生成模型观测序列O作为模型的一部分。如 HMM模型、贝叶斯。

判别模型

直接学习条件分布P(S|O),如逻辑斯谛回归模型、最大熵模型、最大熵马尔科夫模型(MEMM)、条件随机场(CRT)、SVM等。 
判别模型观测序列X只是作为条件,所以可以针对观测序列建立灵活的特征函数。 
关于生成模型和判别模型的更多阐述参看参考文献3.

其他

最大熵模型

参考文献

1.李航《统计学习方法》 
2.Lafferty, etc”Conditional random fields: Probabilistic models for segmenting and labeling sequence data”. 2001. 
3.An Introduction to Conditional Random Fields By Charles Sutton and Andrew McCallum 
4.An introduction to natural language processing,computational linguistics, and speech recognition. Daniel Jurafsky etc. 2006 Chapter 6 HIDDEN MARKOV AND MAXIMUM ENTROPY MODELS