Prerequisite
HMM(隐马尔科夫模型)
定义:
我们从一个模型,二个假设,三个问题去简单认识下HMM。

其中Y=(y1,y2,⋯,yT)T为隐变量(状态),X=(x1,x2,⋯,xT)T为观测变量(输出)。
一个模型:
是指HMM是由参数集合λ=(π,A,B)决定的。其中π是指p(yi),即是初始状态的概率向量。A为状态转移矩阵,即是Aij=p(yt+1=qj∣yt=qi)。B为发射矩阵,即是Bij=p(xi=vj∣yi=qi)。其中q,v分别是yi和xi的取值集合。
二个假设:
1.齐次马尔科夫假设:
即是说,任意状态yi只会与前一状态yi−1有关,说:
P(yi∣x1,x2,⋯,xi−1,y1,y2,⋯,yi−1)=P(yi∣yi−1)
2.观测独立性假设:
即是说,任意观测(输出)只依赖于该时刻的状态,说:
P(xi∣x1,x2,⋯,xi−1,y1,y2,⋯,yi−1,yi)=P(xi∣yi)
三个问题:
1.概率计算:P(X∣λ)
2.学习问题:计算出λ
3.预测问题:P(Y∣X,λ)
存在的问题:
如果是在词性标注问题中,那么HMM的假设就过于严格了,因为显然词性应该和整个文本都有关系。因此CRF就弥补了这一点。
CRF

其中Y=(y1,y2,⋯,yT)T为隐变量(状态),X=(x1,x2,⋯,xT)T为观测变量(输入)。
定义:
CRF是指给定随机变量集合X的条件下,Y随机变量集合构成马尔科夫随机场,由其性质即是有:
P(Yv∣X,Yw,w=v)=P(YV∣X,Yw,w∼v)
其中v,w指随机变量集合的第v,w个元素,w∼v表示与v有边相连
等式的含义是,Yv只与给定X和与v有边相连的节点w有关。
因子分解:
表示:
Markov随机场的因子分解通式为:
P(Y)=Z1i=1∏Nϕci(Yci)Z=Y∑i=1∏Nϕci(Yci)
其中,ci表示第i个最大团,Yci表示第i个最大团的随机变量集合。Z是归一化因子,使得∑YP(Y)=1。

为了表示方便,引入了start和stop。
条件随机场的因子分解:
这里,我们定义∏iNϕci(Yci)为:
i∏Nϕci(Yci)=exp{t,k∑λktk(yt−1,yt,x,i)+t,l∑μlsl(yt,x,i)}
其中,tk,sl为特征函数,λk,μl为权值
Z=Y∑exp{t,k∑λktk(yt−1,yt,x,i)+t,l∑μlsl(yt,x,i)}
化简(向量形式):
其中:其中,t,s为yi,yi−1的函数:则:P(Y)exp{t,k∑λktk(yt−1,yt,x,i)+t,l∑μlsl(yt,x,i)}=exp{t∑(k∑Kλktk(yt−1,yt,x,i)+t∑Lμlsl(yt,x,i))}λ=⎣⎢⎢⎢⎢⎢⎢⎡λ1λ2⋅⋅⋅λk⎦⎥⎥⎥⎥⎥⎥⎤t=⎣⎢⎢⎢⎢⎢⎢⎡t1t2⋅⋅⋅tk⎦⎥⎥⎥⎥⎥⎥⎤μ=⎣⎢⎢⎢⎢⎢⎢⎡μ1μ2⋅⋅⋅μl⎦⎥⎥⎥⎥⎥⎥⎤s=⎣⎢⎢⎢⎢⎢⎢⎡s1s2⋅⋅⋅sl⎦⎥⎥⎥⎥⎥⎥⎤t∑(k∑Kλktk(yt−1,yt,x,i)+l∑Lμlsl(yt,x,i))=t∑λTt+μTs=λTt∑t+μTt∑s令:θ=[λμ]H=[∑tt∑ts]=Z1exp{t,k∑λktk(yt−1,yt,x,i)+t,l∑μlsl(yt,x,i)}=Z1exp(θTH)
Z=Y∑exp(θTH)
求解问题:
边缘概率求解
前向后向算法:
其主要思想就是找到关于势函数的递推式。
P(yt=a)=其中:ϕci(Yci)=ϕci(yi−1,yi)令:可以发现有:令:可以发现有:综上有递推式:那么:y0,y1⋯yt−1,yt+1,⋯,yT∑Z1i∏Tϕci(Yci)=y0,y1⋯yt−1,yt+1,⋯,yT∑Z1ϕc1(Yc1)ϕc2(Yc2)⋯ϕcN(YcN)=Z1yT∑yT−1∑ϕcT(yT−1,yT)⋯y2∑ϕc3(y2,y3)y1∑ϕc2(y1,y2)y0∑ϕc1(y0,y1)Δleft=yt−1∑ϕct(yt−1,yt)⋯y2∑ϕc3(y2,y3)y1∑ϕc2(y1,y2)y0∑ϕc1(y0,y1)αt(i)=yt−1∑ϕct(yt−1,yt=i)yt−2∑ϕct−1(yt−2,yt−1)⋯y2∑ϕc3(y2,y3)y1∑ϕc2(y1,y2)y0∑ϕc1(y0,y1)αt−1(j)=yt−2∑ϕct−1(yt−2,yt−1=j)⋯y2∑ϕc3(y2,y3)y1∑ϕc2(y1,y2)y0∑ϕc1(y0,y1)αt(i)=j∑ϕci(yt−1=j,yt=i)αt−1(j)Δright=yT∑yT−1∑ϕcT(yT−1,yT)⋯yt+2∑ϕct+3(yt+2,yt+3)yt+1∑ϕct+2(yt+1,yt+2)ϕct+1(yt=i,yt+1)βt(i)=yt+1∑ϕct+1(yt=i,yt+1)yt+2∑ϕct+2(yt+1,yt+2)⋯yT−2∑ϕcT−2(yT−3,yT−2)yT−1∑ϕcT−1(yT−2,yT−1)yT∑ϕcT(yT−1,yT)βt+1(j)=yt+2∑ϕct+2(yt+1=j,yt+2)⋯yT−2∑ϕcT−2(yT−3,yT−2)yT−1∑ϕcT−1(yT−2,yT−1)yT∑ϕcT(yT−1,yT)βt(i)=j∑ϕt+1(yt=i,yt+1=j)βt+1(j)αt(i)=j∑ϕci(yt−1=j,yt=i)αt−1(j)βt(i)=j∑ϕt+1(yt=i,yt+1=j)βt+1(j)P(yt=a)=Z1αt(a)βt(a)
参数估计
由上文可知,对任意样本Yi:
P(Yi)且有λ,μ为参数=Z1i=1∏Nϕci(Yci)=Z1exp{t,k∑λktk(yt−1,yt,x,i)+t,l∑μlsl(yt,x,i)}=Z1(λTt∑t+μTt∑s)θ=[λμ]H=[∑tt∑ts]=Z1exp(θTH)
那么很自然的,我们想到用极大似然去求解参数估计:
L(θ)=θargmaxi∏P(Yi)
此时问题就转化为参数θ关于函数L(θ)的优化问题。
具体的算法有迭代尺度法,梯度下降,牛顿法等。
please jump: 参数估计
预测算法
预测的目标就是,求给定X下,使得条件概率最大的Y。
please jump: 条件随机场CRF(预测算法详解)

参考书籍:
李航《统计学习方法第二版》
参考链接:
https://www.bilibili.com/video/BV1aE411o7qd?p=103
https://github.com/datawhalechina/team-learning/tree/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80