1 相关概念

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

2 HMM

属于概率生成模型

2.1 Why Hidden

是关于时序的概率模型,描述由隐马尔可夫链生成状态序列,每个状态生成一个观测由此生成观测序列的模型的过程。其中,t时刻的状态仅受t-1时刻的状态的影响,t时刻的观测仅受t时刻的状态的影响。

2.2 HMM模型的形式化定义

状态集合:Q=q1,...,qN" role="presentation" style="position: relative;">Q=q1,...,qNQ=q1,...,qNQ={q_1,...,q_N} 观测集合:V=v1,...,vMV=v1,...,vMV={v_1,...,v_M}
观测序列:O=o1,...,oTO=o1,...,oTO={o_1,...,o_T} 状态序列: I=i1,...,iTI=i1,...,iTI={i_1,...,i_T}
HMM的三要素为:
1.初始状态概率向量:π=(πi)π=(πi)\pi=(\pi_i)
2.状态转移概率矩阵

A=[aij]N∗NA=[aij]N∗N

A=[a_{ij}]_{N*N}
3.状态生成观测概率矩阵

B=[bj(k)]N∗MB=[bj(k)]N∗M

B=[b_j(k)]_{N*M}

2.3 HMM的三个基本问题求解

概率计算
已知观测序列O=o1,...,oNO=o1,...,oNO={o_1,...,o_N}和模型参数λλ\lambda,求p(o1,...,oN|λ)p(o1,...,oN|λ)p(o_1,...,o_N|\lambda)
模型学习
已知观测序列O=o1,...,oNO=o1,...,oNO={o_1,...,o_N},求模型参数λλ\lambda.极大似然函数为p=(O|λ)p=(O|λ)p=(O|\lambda).
预测问题
已知观测序列O=o1,...,oNO=o1,...,oNO={o_1,...,o_N}和模型参数λλ\lambda,求状态序列III.其中极大化的似然函数式p=(O|I)" role="presentation" style="position: relative;">p=(O|I)p=(O|I)p=(O|I).

2.3.1 针对第一个问题

直接计算

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

\begin{align} p(I|\lambda) =\pi _{i_1}a_{i_1}...a_{i_T} \end{align}

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

\begin{align} p(O|I,\lambda)&=b_{i_1}(o_1)...b_{i_t}(o_t) \end{align}

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

\begin{align} p(O,I|\lambda) &=p(O|I,\lambda)p(I|\lambda) \\ &=\pi _{i_1}b_{i_1}(o_1)\prod^T_{t=2}a_{i_t}b_{i_t}(o_t) \end{align}
在 III上求和

(5)p(O|λ)=∑Ip(O,I|λ)(6)=∑Iπi1bi1(o1)...aiTbiT(oT)" role="presentation">p(O|λ)=∑Ip(O,I|λ)=∑Iπi1bi1(o1)...aiTbiT(oT)(5)(6)(5)p(O|λ)=∑Ip(O,I|λ)(6)=∑Iπi1bi1(o1)...aiTbiT(oT)

\begin{align} p(O|\lambda) &=\displaystyle \sum_Ip(O,I|\lambda) \\ &=\displaystyle \sum_I\pi _{i_1}b_{i_1}(o_1)...a_{i_T}b_{i_T}(o_T) \end{align}
计算复杂度为 O(TNT)O(TNT)O(TN^T)
Forward
1.初始化 α1(i)=πibi(o1) ,i=1,...,N t=1α1(i)=πibi(o1),i=1,...,Nt=1\alpha_1(i)=\pi_ib_i(o_1) \ , i=1,...,N \ t=1
2. αt+1(j)=(∑i=1Nαt(i))bj(ot) , j=1,...,Nαt+1(j)=(∑i=1Nαt(i))bj(ot),j=1,...,N\alpha_{t+1}(j)=(\displaystyle \sum ^N_{i=1}\alpha_t(i))b_j(o_t) \ , \ j=1,...,N
3. t=t+1 , t=t+1,t=t+1 \ , \ 如果 t<Tt<Tt \lt T继续执行步骤2,否则执行步骤4
4. p(O|λ)=∑i=1NαT(i)p(O|λ)=∑i=1NαT(i)p(O|\lambda)=\displaystyle \sum _{i=1}^N\alpha_T(i)
其中, αt(i)=p(o1,o2,...,Ot,qt=i|λ)αt(i)=p(o1,o2,...,Ot,qt=i|λ)\alpha_t(i)=p(o_1,o_2,...,O_t,q_t=i|\lambda),该算法的时间复杂度为 O(TN2)O(TN2)O(TN^2)

Backward
1.初始化βT(i)=1 , i=1,...,NβT(i)=1,i=1,...,N\beta_T(i)=1 \ , \ i=1,...,N
2.βt−1(j)=∑i=1Naijbj(ot)βt(i), i=1,...,Nβt−1(j)=∑i=1Naijbj(ot)βt(i),i=1,...,N \beta_{t-1}(j) =\displaystyle \sum_{i=1}^N a_{ij}b_j(o_{t})\beta_{t}(i), \ i=1,...,N
3.t=t−1,t=t−1,t=t-1,如果t>1t>1t\gt1继续执行步骤2,否则执行步骤4
4.p(O|λ)=∑i=1Nβ1(i)p(O|λ)=∑i=1Nβ1(i)p(O|\lambda)=\displaystyle \sum _{i=1}^N\beta_1(i)
其中,βt(i)=p(ot+1,ot+2,...,OT,qt=i|λ)βt(i)=p(ot+1,ot+2,...,OT,qt=i|λ)\beta_t(i)=p(o_{t+1},o_{t+2},...,O_T,q_t=i|\lambda)

2.3.2 针对第二个问题

在未知状态序列的情况下,即没有标注序列的非监督学习中,Baum-Welch即用EM算法求解HMM的模型参数。
观测数据OOO已知,隐藏数据I" role="presentation" style="position: relative;">III未知,使用非监督算法求模型参数λ λ\lambda \ .完全数据为(O,I)(O,I)(O,I)
求QQQ函数
EI[ln⁡(p(I,O|λ))|O,λ′]=ln⁡p(I,O|λ)p(I|O,λ′)=ln⁡p(I,O|λ)p(I,O|λ′)/p(O|λ′)" role="presentation" style="position: relative;">EI[ln(p(I,O|λ))|O,λ′]=lnp(I,O|λ)p(I|O,λ′)=lnp(I,O|λ)p(I,O|λ′)/p(O|λ′)EI[ln⁡(p(I,O|λ))|O,λ′]=ln⁡p(I,O|λ)p(I|O,λ′)=ln⁡p(I,O|λ)p(I,O|λ′)/p(O|λ′)E_I[\ln (p(I,O|\lambda))|O,\lambda']=\ln p(I,O|\lambda)p(I|O,\lambda')=\ln p(I,O|\lambda)p(I,O|\lambda')/ p(O|\lambda')
去掉上式中常数项1/p(O|λ′)1/p(O|λ′)1/ p(O|\lambda'),令Q(λ,λ′)=lnp(I,O|λ)p(I,O|λ′)Q(λ,λ′)=ln⁡p(I,O|λ)p(I,O|λ′)Q(\lambda,\lambda')=\ln p(I,O|\lambda)p(I,O|\lambda')
E步骤

p(I,O|λ)Q(λ,λ′)=πi1bi1(o1)ai2i2bi2(o2)...aiTiTbiT(oT)  , it=1,2,...,N=∑i=1Nlnπip(I,O|λ′)+∑t=2T∑Ilnbit(oit)p(I,O|λ′)+∑t=2T∑Ilnaititp(I,O|λ′)(76)(77)(78)(76)p(I,O|λ)=πi1bi1(o1)ai2i2bi2(o2)...aiTiTbiT(oT),it=1,2,...,N(77)Q(λ,λ′)=∑i=1Nln⁡πip(I,O|λ′)+∑t=2T∑Iln⁡bit(oit)p(I,O|λ′)(78)+∑t=2T∑Iln⁡aititp(I,O|λ′)

\begin{align} p(I,O|\lambda)&=\pi_{i_1}b_{i_1}(o_1)a_{i_2i_2}b_{i_2}(o_2)...a_{i_Ti_T}b_{i_T}(o_T) \ \ , \ i_t=1,2,...,N\\ Q(\lambda,\lambda')&=\displaystyle \sum_{i=1}^N\ln \pi_ip(I,O|\lambda')+\displaystyle \sum_{t=2}^T\displaystyle \sum_I\ln b_{i_t}(o_{i_t})p(I,O|\lambda') \\ &+\displaystyle \sum_{t=2}^T\displaystyle \sum_I\ln a_{i_ti_t}p(I,O|\lambda') \end{align}
M步骤
分别求 QQQ对λ=(πi,aitit,bit(ot))" role="presentation" style="position: relative;">λ=(πi,aitit,bit(ot))λ=(πi,aitit,bit(ot))\lambda=(\pi_i,a_{i_ti_t},b_{i_t}(o_t))的偏导数,并令它们等于零,从而解得参数 λλ\lambda

2.3.3 针对第三个问题

近似算法
已知λλ\lambda 、OOO,在时刻t,状态it=qi" role="presentation" style="position: relative;">it=qiit=qii_t=q_i的概率为:

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

r_t(i)=p(i_t=q_i|O,\lambda)=\frac {p(i_t=q_i,O|\lambda)} {p(O|\lambda)}
在问题一的前后向算法中, αt(i)=p(o1,o2,...,Ot,qt=i|λ) αt(i)=p(o1,o2,...,Ot,qt=i|λ)\alpha_t(i)=p(o_1,o_2,...,O_t,q_t=i|\lambda) \  βt(i)=p(ot+1,ot+2,...,OT,qt=i|λ)βt(i)=p(ot+1,ot+2,...,OT,qt=i|λ)\ \beta_t(i)=p(o_{t+1},o_{t+2},...,O_T,q_t=i|\lambda),所以

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

r_t(i)=p(i_t=q_i|O,\lambda)=\frac {\alpha_t(i)\beta_t(i)} {p(O|\lambda)}=\frac {\alpha_t(i)\beta_t(i)} {\displaystyle \sum_{j=1}^N\alpha_t(j)\beta_t(j)}
近似算法就是计算在每个时刻 ttt最可能出现的状态it∗ ,t=1,...,T" role="presentation" style="position: relative;">i∗t ,t=1,...,Tit∗ ,t=1,...,Ti_t^* \ , t=1,...,T,即求

i∗t=argmaxit rt(i)it∗=argmaxit⁡rt(i)

i_t^*= \mathop{ argmax }_{i_t}\ r_t(i)
维特比算法
利用动态规划(Dynamic Programming)思想求概率最大的路径(状态序列),称为最优路径。如果最优路径在时刻 ttt的所取状态为it∗" role="presentation" style="position: relative;">i∗tit∗i^*_t,那么从时刻 111到时刻t+1" role="presentation" style="position: relative;">t+1t+1t+1的最优路径在时刻 ttt的所取状态也必须为it∗" role="presentation" style="position: relative;">i∗tit∗i^*_t,否则将存在矛盾。
为了方便说明维特比算法,首先定义两个变量 δt(i)δt(i)\delta_t(i)、 ψt(i)ψt(i)\psi_t(i),
δt(i)δt(i)\delta_t(i)表示在时刻 t tt \ ,状态为 iii的最优路径的概率:

δt(i)=max p(it=i,it−1,it−2,...,i1,ot,ot−1,...,o1)" role="presentation">δt(i)=max p(it=i,it−1,it−2,...,i1,ot,ot−1,...,o1)δt(i)=max p(it=i,it−1,it−2,...,i1,ot,ot−1,...,o1)

\delta_t(i)=max \ p(i_t=i,i_{t-1},i_{t-2},...,i_1,o_t,o_{t-1},...,o_1)

δt+1(i)=max p(it+1=i,it,it−1,...,i1,ot+1,ot,...,o1)=max1≤j≤N(δt(j)aji)bi(ot+1)(10)(11)(10)δt+1(i)=maxp(it+1=i,it,it−1,...,i1,ot+1,ot,...,o1)(11)=max1≤j≤N⁡(δt(j)aji)bi(ot+1)

\begin{align} \delta_{t+1}(i)&=max \ p(i_{t+1}=i,i_{t},i_{t-1},...,i_1,o_{t+1},o_{t},...,o_1) \\ &=\mathop{ max }_{1\le j \le N}(\delta_t(j)a_{ji})b_i(o_{t+1}) \end{align} ψt(i)ψt(i)\psi_t(i)表示在时刻 t tt \ ,状态为 iii的最优路径的第 t−1 " role="presentation" style="position: relative;"> t−1  t−1  \ t-1 \ 个状态:

ψt(i)=argmax1≤j≤Np(it=i,it−1=j,it−2,...,i1,ot,ot−1,...,o1)(12)(12)ψt(i)=argmax1≤j≤N⁡p(it=i,it−1=j,it−2,...,i1,ot,ot−1,...,o1)

\begin{align} \psi_t(i)=\mathop{ argmax }_{1\le j \le N}p(i_t=i,i_{t-1}=j,i_{t-2},...,i_1,o_t,o_{t-1},...,o_1) \end{align}
维特比算法的步骤如下:
1.初始化, δ1(i)=πibi(o1),ψ1(i)=0δ1(i)=πibi(o1),ψ1(i)=0\delta_1(i)=\pi_ib_i(o_1),\psi_1(i)=0
2.递推,t=2,3,…,T

δt(i)=max1≤j≤N(δt−1(j)aji)bi(ot)δt(i)=max1≤j≤N⁡(δt−1(j)aji)bi(ot)

\delta_{t}(i)=\mathop{ max }_{1\le j \le N}(\delta_{t-1}(j)a_{ji})b_i(o_{t})

ψt(i)=argmax1≤j≤N(δt−1(j)aji)ψt(i)=argmax1≤j≤N⁡(δt−1(j)aji)

\psi_t(i)=\mathop{ argmax }_{1\le j \le N}(\delta_{t-1}(j)a_{ji})3.停止, pmax=max1≤i≤NδT(i) pmax=max1≤i≤N⁡δT(i)p_{max}=\mathop{ max }_{1\le i \le N}\delta_{T}(i) \ , i∗T=argmax1≤i≤NδT(i)iT∗=argmax1≤i≤N⁡δT(i)i^*_T=\mathop{ argmax }_{1\le i \le N}\delta_{T}(i)
4.回溯求最优路径,即概率最大状态序列, t=T−1,T−2,...,1t=T−1,T−2,...,1t=T-1,T-2,...,1

i∗t=ψt(i∗t+1)it∗=ψt(it+1∗)

i_t^*=\psi_t(i_{t+1}^*)最优序列为:

I=(i∗1,...,i∗T)I=(i1∗,...,iT∗)

I=(i_1^*,...,i_T^*)

3 MEMM

3.1 最大熵模型 Maximum Entropy

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

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

C=\{P|E_{P}(f_i)=E_{\hat P}(f_i) ,i=1,...,n\}定义条件概率分布 P(Y|X)P(Y|X)P(Y|X)上的条件熵为

H(P)=−∑X,YP̂ (x)P(y|x)logP(y|x)H(P)=−∑X,YP^(x)P(y|x)log⁡P(y|x)

H(P)=-\displaystyle \sum_{X,Y} \hat P(x)P(y|x)\log P(y|x)
注释:特征函数 fifif_i表示 XXX、Y" role="presentation" style="position: relative;">YYY满足的限制。 EP(fi)=EP̂ (fi)EP(fi)=EP^(fi)E_{P}(f_i)=E_{\hat P}(f_i)即为: ∑X,YP̂ (X,Y)f(x,y)=∑X,YP(Y|X)P̂ (X)f(x,y)∑X,YP^(X,Y)f(x,y)=∑X,YP(Y|X)P^(X)f(x,y)\displaystyle \sum_{X ,Y}\hat P(X,Y)f(x,y)=\displaystyle \sum_{X,Y}P(Y|X)\hat P(X)f(x,y),其中, P̂ (X,Y)P^(X,Y)\hat P(X,Y)、 P̂ (X)P^(X)\hat P(X)可以通过样本数据得到。
求解 H(P)H(P)H(P)的最大值,可得 P(Y|X)P(Y|X)P(Y|X),推导省略。

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

P(Y|X)=\frac {1}{Z(x)}exp(\displaystyle \sum_{i=1}^Nw_if_i(x,y))其中, Z(x)=∑jexp(∑i=1Nwifi(x,y))Z(x)=∑jexp(∑i=1Nwifi(x,y))Z(x)=\displaystyle \sum_{j}exp(\displaystyle \sum_{i=1}^Nw_if_i(x,y))

3.2 最大熵马尔科夫模型

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

模型定义

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

P_{s’}(s|o)=\frac {1}{Z(o,s’)}exp(\displaystyle \sum_{i=1}^Nw_if_i(o,s))其中, OOO表示观测序列或需要标记的序列,S" role="presentation" style="position: relative;">SSS表示状态序列或标记序列 。

模型求解

标记偏置问题

4 条件随机场CRF

鉴于CRF与逻辑斯谛回归的关系(如下图),先简介逻辑斯谛模型。

(图片来自参考文献3)

4.1逻辑斯谛回归模型

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

P(y=true|x)=w⋅fP(y=true|x)=w⋅f

P(y=true|x)=w\cdot f但是使用线性输出结果可以表示不同分类发生的几率,

P(y=true|x)P(y=false|x)=P(y=true|x)1−P(y=true|x)=w⋅fP(y=true|x)P(y=false|x)=P(y=true|x)1−P(y=true|x)=w⋅f

\frac {P(y=true|x)}{P(y=false|x)}=\frac {P(y=true|x)}{1-P(y=true|x)}=w\cdot f
上式等式两边的值域范围不同,使用自然对数解决这个问题

lnP(y=true|x)1−P(y=true|x)=w⋅fln⁡P(y=true|x)1−P(y=true|x)=w⋅f

\ln\frac {P(y=true|x)}{1-P(y=true|x)}=w\cdot f
解上式得

P(y=true|x)=ew⋅f1+ew⋅f=11+e−w⋅fP(y=true|x)=ew⋅f1+ew⋅f=11+e−w⋅f

P(y=true|x)=\frac {e^{w\cdot f}}{1+e^{w\cdot f}}=\frac {1}{1+e^{-w\cdot f}}

P(y=false|x)=11+ew⋅fP(y=false|x)=11+ew⋅f

P(y=false|x)=\frac {1}{1+e^{w\cdot f}} 11+e−w⋅f11+e−w⋅f\frac {1}{1+e^{-w\cdot f}}是逻辑斯谛函数,其一般形式为 11+e−x11+e−x\frac {1}{1+e^{-x}}.
逻辑斯谛回归模型用于分类(classification,也称inference)的方法是通过计算不同类别的条件概率,如 y=truey=truey=true,则有

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

\frac {P(y=true|x)}{P(y=false|x)}\gt 1

ew⋅f>1ew⋅f>1

e^{w\cdot f} \gt 1

w⋅f>0w⋅f>0

w\cdot f \gt 0

ew⋅f>1ew⋅f>1

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

w∗=argmaxw ∏iP(yi|xi)w∗=argmaxw⁡∏iP(yi|xi)

w^*=\mathop{ argmax }_{w}\ \displaystyle \prod_{i}P(y_i|x_i)等价于

w∗=argmaxw ∑ilogP(yi|xi)w∗=argmaxw⁡∑ilog⁡P(yi|xi)

w^*=\mathop{ argmax }_{w}\ \displaystyle \sum_{i}\log P(y_i|x_i)求解该最大值的方法有拟牛顿法、梯度下降等。
注释:逻辑斯谛回归可用于二分类问题中,而上面介绍的MEMM模型是多项逻辑斯谛模型,可用于K分类问题。

4.2条件随机场的定义

在给定随机变量XXX的前提下,随机变量Y" role="presentation" style="position: relative;">YYY构成马尔科夫随机场,该马尔科夫随机场可用无向图G(V,E)G(V,E)G(V,E)表示。

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

P(Y_v|X,Y_w,v\ne w)=P(Y_v|X,Y_w,v~w).当 XXX、Y" role="presentation" style="position: relative;">YYY为线性链时可定义线性链条件随机场,

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

P(Y_i|X,Y_1,Y_2,...,Y_{i-1},Y_{i+1},...Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1}).

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

P(y|x)=1Z(x)exp∑k=1KwKfk(y,x)P(y|x)=1Z(x)exp∑k=1KwKfk(y,x)

P(y|x)=\frac 1{Z(x)}exp\displaystyle \sum_{k=1}^Kw_Kf_k(y,x)

Z(x)=∑yexp∑k=1KwKfk(y,x)Z(x)=∑yexp∑k=1KwKfk(y,x)

Z(x)=\displaystyle \sum_y exp\displaystyle \sum_{k=1}^Kw_Kf_k(y,x)
条件随机场的矩阵表示

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

P(y|x)=\frac 1{Z(x)}\displaystyle \prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x)

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

Z_w(x)=(M_1(x)M_2(x)...M_{n+1}(x))_{start,stop}

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

4.3.1 概率计算问题

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

4.3.2 学习问题

根据训练数据求模型参数www。学习策略是极大似然或正则化极大似然,学习算法的具体实现是改进的迭代尺度法、牛顿法、拟牛顿法。
已知训练数据的经验分布P(X,Y)" role="presentation" style="position: relative;">P(X,Y)P(X,Y)P(X,Y),条件概率分布P(X|Y)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=1N∑k=1Kwkfk(yj,xj)−∑j=1NlogZw(xj)(13)(14)(15)(13)L=∑x,yP^(x,y)logPw(y|x)(14)=∑x,y[P^(x,y)∑k=1Kwkfk(y,x)−P^(x,y)logZw(x)](15)=∑j=1N∑k=1Kwkfk(yj,xj)−∑j=1NlogZw(xj)

\begin{align} L&=\displaystyle \sum_{x,y}\hat P(x,y)logP_w(y|x) \\ &=\displaystyle \sum_{x,y}[\hat P(x,y)\displaystyle \sum_{k=1}^Kw_kf_k(y,x)-\hat P(x,y)logZ_w(x)] \\ &=\displaystyle \sum_{j=1}^N\displaystyle \sum_{k=1}^Kw_kf_k(y_j,x_j)-\displaystyle \sum_{j=1}^NlogZ_w(x_j) \end{align}

4.3.3 预测问题

给定条件随机场P(Y|X)P(Y|X)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)建模,如利用贝叶斯公式P(S|O)=P(S,O)∑SP(O)P(S|O)=P(S,O)∑SP(O)P(S|O)=\frac {P(S,O)}{\sum_SP(O)},并据此生成样本。生成模型观测序列OOO作为模型的一部分。如 HMM模型、贝叶斯。

判别模型

直接学习条件分布P(S|O)" role="presentation" style="position: relative;">P(S|O)P(S|O)P(S|O),如逻辑斯谛回归模型、最大熵模型、最大熵马尔科夫模型(MEMM)、条件随机场(CRT)、SVM等。
判别模型观测序列XX<script type="math/tex" id="MathJax-Element-150">X</script>只是作为条件,所以可以针对观测序列建立灵活的特征函数。
关于生成模型和判别模型的更多阐述参看参考文献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

HMM-MEMM-CRF相关推荐

  1. 生物信息之ME, HMM, MEMM, CRF

    原文链接:http://bbs.sciencenet.cn/home.php?mod=space&uid=260809&do=blog&id=573755 注:有少量修改!如有 ...

  2. 自然语言处理--HMM.MEMM,CRF(三)

    自然语言处理–HMM,MEMM,CRF(三) 终于到正题了,现在就来说说HMM, 隐马尔科夫模型! Hidden Markov Models HMM 要解决什么问题? 我们在学一个算法之前,我觉得先要 ...

  3. 条件随机场(CRF)相对于HMM,MEMM的优势

    条件随机场(CRF)相对于HMM,MEMM的优势 首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标注,True casing.但隐马模型一个最大的缺点就是 ...

  4. 概率图模型 —— 串连 NB、LR、MEM、HMM、CRF

    概率图模型(PGM),作为机器学习的重要分支,能串连起很多传统模型,比如 NB.LR.MEM.HMM.CRF.DBN 等.本篇文章,从串连多个模型的角度,来谈谈 PGM,顺便把这些模型回顾下. 1 W ...

  5. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...

    DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别! 注:传统DDos检测直接基于IP数据发送流量来识别 ...

  6. 代码实现中文命名实体识别(包括多种模型:HMM,CRF,BiLSTM,BiLSTM+CRF)

    作者 | 忆臻 地址 | https://zhuanlan.zhihu.com/p/100969186 专栏 | 机器学习算法与自然语言处理 代码实现中文命名实体识别(包括多种模型:HMM,CRF,B ...

  7. HMM与CRF的总结(仅供参考,建议大家看李宏毅老师的视频)

    这两天我一直在寻找HMM和CRF之间的区别. 为了防止面试之间的遇到这类的问题啊,我准备了几个自问自答来总结一下这两天的收获. 首先HMM模型,能不能简要的概括? 隐马可夫模型是由两个序列组成的一个序 ...

  8. 自然语言处理(NLP)学习笔记——HMM与CRF模型

    一.HMM模型 1.HMM模型的输入和输出 HMM(Hidden Markov Model),中文称作隐含马尔可夫模型,因俄国数学家马尔可夫而得名.它一般以文本序列数据为输入,以该序列对应得隐含序列为 ...

  9. 条件随机场CRF HMM,MEMM的比较

    https://blog.csdn.net/qq_29828623/article/details/51457895 CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注; HMM ...

  10. 条件随机场CRF HMM,MEMM的区别

    http://blog.sina.com.cn/s/blog_605f5b4f010109z3.html 首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标 ...

最新文章

  1. windows 2008本地计算机策略,windows2008组策略操作出现了扩展错误 未能保存本地策略数据库#...
  2. 【转】Silverlight 3 Beta 新特性解析(7)- Child Window和Shader Effect篇
  3. fem求解二维时谐电磁场问题
  4. Linux安装net的工具,centos7安装netbox(不错开源网络管理工具) – 运维那些事
  5. [振动力学] 课程考核报告:Matlab 实现邓克利法、瑞利法、里兹法、矩阵迭代法
  6. Java+Selenium+Testng自动化测试学习(三)— 断言
  7. Android事件分发小结
  8. PUSHA/POPA
  9. python进阶07并发之三其他问题
  10. (亲测)Hbase安装(傻瓜式安装)
  11. 【bzoj3297】[USACO2011 Open]forgot STL+dp
  12. 科来网络分析系统简介
  13. CryptoJS加密库使用及bug解决
  14. Diligent收购领先的批判性见解和分析SaaS提供商Insightia
  15. FaceNet 读书笔记
  16. 前两天离职了,不想找工作,心态不好
  17. 【单词辨析】technology,technique,skill 技术技能
  18. 泰山OFFICE技术讲座:宋体和Times New Roman字体的Tag表有哪些
  19. yolov4-tiny使用jetson nano进行目标检测+tensorrt+CSI+USB摄像头检测
  20. 解决“Warning: require_once() 的几个方法

热门文章

  1. Handlebars 和 angularjs 之间的区别
  2. read, readline, readlines
  3. 奶爸业余单片机学习之:C语言基础——for循环及for嵌套
  4. CodeForces 622A--F - Infinite Sequence
  5. 使用scrapy的定制爬虫-第三章-爬虫的javascript支持
  6. 上瘾:如何打造习惯养成中的产品(投资篇)
  7. Linux学习记录--命令与文件的查询
  8. MOSS 2010 无法同步用户配置文件
  9. 服务器设计笔记(1)-----消息的封装
  10. 游泳,情人节纪念一下。