此文章主要是结合哔站shuhuai008大佬的白板推导视频:条件随机场_227min
全部笔记的汇总贴:机器学习-白板推导系列笔记
一、背景
对于解决分类任务的模型,根据他的输出,我们可以将其划分为硬分类和软分类两种。
- 硬分类:即输出即为确值(对于二分类就是0 or 1)
SVM(支持向量机):几何角度,max margin classifier,最大支持向量的几何间隔驱动的。约束为:
{ m i n w , b 1 2 w T w s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , N \left\{\begin{matrix} \underset{w,b}{min}\frac{1}{2}w^{T}w \\ s.t.\; y_{i}(w^{T}x_{i}+b)\geq 1,i=1,2,\cdots ,N \end{matrix}\right. { w,bmin21wTws.t.yi(wTxi+b)≥1,i=1,2,⋯,N
PLA(感知机算法):误分类驱动的, f ( w ) = s i g n ( w T x + b ) f(w)=sign(w^Tx+b) f(w)=sign(wTx+b)。
线性判别分析(LDA):类间大,类内小
- 软分类:即为输出是概率,这里可以再进一步细分为:
概率生成模型,是对联合概率 P ( X , Y ) P(X,Y) P(X,Y)进行建模。
- 朴素贝叶斯(Naive Bayes),朴素贝叶斯这里之所以叫“朴素”,是因为这里做了一个比较强的假设,即 x i ⊥ x j ∣ y ( i ≠ j ) x_i⊥x_j|y(i≠j) xi⊥xj∣y(i=j),就是在给定y的情况下, x i x_i xi与 x j x_j xj是相互独立的,因此可以简写NB假设为: P ( X ∣ y = 1 / 0 ) = ∏ i = 1 N P ( x i ∣ y = 1 / 0 ) P(X|y=1/0)=\prod_{i=1}^NP(x_i|y=1/0) P(X∣y=1/0)=∏i=1NP(xi∣y=1/0)。用概率图表示NB模型,这里就是也是可以解释道:由于 x 2 x_2 x2与 x 1 x_1 x1间受到 Y Y Y的阻隔,因此,在给定 y y y的情况下, x i x_i xi与 x j x_j xj是相互独立的。
- 隐马尔科夫模型(Hidden Markov Model),当朴素贝叶斯模型中的 Y Y Y从 0 / 1 0/1 0/1扩展到 S e q Seq Seq(序列),那么,模型便扩展为了隐马尔科夫模型(HMM)。这里面也有2个假设:
1、齐次Markov假设
2、观测独立假设
概率判别模型,是对P(Y|X)进行建模,属于最大熵模型(Maximum Entropy Model)。
例如:二分类:逻辑回归(Logistics Regression)/多分类:SoftMax Regression。这类问题是对于 P ( y ∣ x ) P(y|x) P(y∣x)进行建模的,利用最大熵思想(Maximum Entropy Principle)驱动模型。(PS:在最大熵原则下,如果给定均值和方差,那么Gaussian Dist熵最大)
- MEMM(Maximum Entropy Markov Model)最大熵马尔科夫模型。这是结合了最大熵+HMM的优点的一个模型,属于概率判别模型。
PS:这与HMM的模型有点像,但是区别在于:
1、HMM是生成模型,是对 P ( X , Y ) P(X,Y) P(X,Y)进行建模;MEMM是判别模型,是对 P ( Y ∣ X ) P(Y|X) P(Y∣X)进行建模;
2、在HMM中,观测变量是隐变量的输出;在MEMM中,观测变量变成输入了;
3、HMM中是有观测独立假设的;在MEMM中,并不是观测独立的(直观理解:在词性标注任务上,给 x 2 x_2 x2标注的词性 y 2 y_2 y2并不单单与 x 2 x_2 x2有关,也与上下文 x 1 、 x 3 x_1、x_3 x1、x3有关,因此假设更加合理。
MEMM的著名问题(缺点):
Label Bias Problem(标注偏差问题):原因是因为局部归一化。- CRF(Condition Random Field)条件随机场模型。为了打破MEMM的标注偏差问题,将MEMM中的有向变成了无向,解决了局部归一化问题,变成了全局归一化。
二、从HMM到MEMM的动机
HMM可以理解为是泛化的GMM、或是泛化的NB模型。其是属于一个概率生成模型。模型参数可以用一个三元组表示:
λ = ( π , A , B ) λ=(\pi,A,B) λ=(π,A,B)
其中: π \pi π表示初始状态; A A A表示状态转移矩阵(就是 Y t Y_t Yt转移到 Y t + 1 Y_{t+1} Yt+1的概率); B B B表示发射矩阵(就是 Y Y Y“射”到 X X X的概率)
HMM具有2个假设,(1)齐次1阶马尔科夫;(2)观测独立假设。下面对着两个强假设进行加以解释说明:
(一)齐次1阶马尔科夫
1阶怎么理解?
在马尔科夫链 y 1 , y 2 , … , y n {y_1,y_2,…,y_n} y1,y2,…,yn中:
1阶Markov的通俗理解: y 3 y_3 y3只与 y 2 y_2 y2有关, y 2 y_2 y2只与 y 1 y_1 y1有关;
1阶Markov更专业表述:在给定 y 3 y_3 y3的情况下, y 4 y_4 y4与 y 2 y_2 y2无关。
之所以说是1阶,也就是关联链条的长度为1;如果是2阶的话,那就是在给定 y 3 y_3 y3和 y 4 y_4 y4的情况下, y 5 y_5 y5与 y 2 y_2 y2是无关的。
1阶Markov的目的是简化计算,因为计算链条变短了。
齐次怎么理解?
就是在马尔科夫链 y 1 , y 2 , … , y n {y1,y2,…,yn} y1,y2,…,yn中,马氏链中的任意 y t y_t yt转移到 y t + 1 y_{t+1} yt+1所服从的概率分布是相同的,这个就叫做齐次。
(PS:在链中的任意节点 y t y_t yt,其取值有 K K K多种可能且都是离散的,这里所说的相同的概率分布:是指这 K K K种不同状态之间相互转移的概率,这个是相同不变的)
用标准化的语言来说: P ( y t ∣ y t + 1 ) P(y_t|y_{t+1}) P(yt∣yt+1)这个转移概率与时间 t t t无关。
齐次1阶Markov用数学表达可以表示成:
P ( y t ∣ y 1 : t − 1 , x 1 : t − 1 ) = P ( y t ∣ y t − 1 ) P(y_t|y_{1:t−1},x_{1:t−1})=P(y_t|y_{t−1}) P(yt∣y1:t−1,x1:t−1)=P(yt∣yt−1)
(二)观测独立假设
用通俗的表述可以理解为:在给定 Y t Y_t Yt的情况下, X t X_t Xt与其他的 X k ( k ≠ t ) X_k(k≠t) Xk(k=t)全都无关。
用数学表达可以表示成:
P ( x t ∣ y 1 : t , x 1 : t − 1 ) = P ( x t ∣ y t ) P(x_t|y_{1:t},x_{1:t−1})=P(x_t|y_{t}) P(xt∣y1:t,x1:t−1)=P(xt∣yt)
观测独立假设的目的还是简化计算,因为不考虑观测序列的内联关系了。
观测独立假设的来源,其实算得上是从NB上扩展来的(因为HMM算是NB的泛化嘛,[ Y Y Y从0/1扩展到 S e q Seq Seq])。例如,判断一个邮件是否为垃圾邮件,经典NB模型解决的垃圾邮件分类问题。
这里我们就做的假设是:每个单词之间是相互独立,当然这个假设是不太合理的,因为一句话中的词语肯定是有着一定语言学上的内在联系的。
(三)HMM建模
建模对象为: P ( X , Y ∣ λ ) P(X,Y|λ) P(X,Y∣λ)——注意:生成模型建模的是联合概率分布
P ( X , Y ∣ λ ) = ∏ i = 1 T P ( x t , y t ∣ λ ) = ∏ i = 1 T P ( y t ∣ y t − 1 , λ ) ⋅ P ( x t ∣ y t , λ ) P(X,Y|λ)=\prod_{i=1}^TP(x_t,y_t|λ)\\=\prod_{i=1}^TP(y_t|y_{t−1},λ)\cdot P(x_t|y_t,λ) P(X,Y∣λ)=i=1∏TP(xt,yt∣λ)=i=1∏TP(yt∣yt−1,λ)⋅P(xt∣yt,λ)
(四)HMM示例
有一个非常经典的关于天气与心情的例子,这里给一个传送门:HHM隐马尔可夫模型实例
(五)MEMM建模
MEMM打破了HMM的观测独立假设,这样的处理,模型就不再是一个概率生成模型了,就变成了一个概率判别模型了。
建模对象: P ( Y ∣ X , λ ) P(Y|X,λ) P(Y∣X,λ)——注意:判别模型建模的是条件概率分布
P ( Y ∣ X , λ ) = ∏ i = 1 T P ( y t ∣ y t − 1 , x 1 : T , λ ) P(Y|X,λ)=\prod_{i=1}^TP(y_t|y_{t−1},x_{1:T},λ) P(Y∣X,λ)=i=1∏TP(yt∣yt−1,x1:T,λ)
(六)MEMM的特点
- 打破了观测独立假设
为什么打破观测独立假设要好?
是因为,对于待标注的序列而言,事实上,序列的内容本不是独立的,也就是说,打破观测独立性会使得模型变得更加合理。
- 从生成式模型转到了判别式模型
为什么说在这里,判别式的模型比生成式模型要好?
是因为对于这种链式结构,对于状态空间的这种模型,是任务驱动的,在这样的序列标注任务上,在给定一个待标注序列,我们更关注的是标注的是什么,因此,对于这样的任务我们只需要对条件概率建模就足矣了,而去求联合概率分布就将问题复杂化了(计算也复杂化了)。
(七)MEMM的缺点
它的主要缺点是会造成标注偏差问题(Label Bias Problem),原因是局部归一化。
conditional dist with low entropy take less notice of observation.
所以,为了解决局部归一化的问题,CRF取消 Y Y Y序列的转移方向,也就是取消了局部归一化,改变为了全局归一化。
四、CRF模型
(一)相关概念
1.随机场(RF)
“随机场”的名字取的很玄乎,其实理解起来不难。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布(或者是某种概率)随机赋予一个值之后,其全体就叫做随机场。
以词性标注为例:
假如我们有10个词形成的句子需要做词性标注。这10个词每个词的词性可以在我们已知的词性集合(名词,动词…)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。
2.马尔科夫随机场(MRF)
马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。
换一种表示方式,把马尔科夫随机场映射到无向图中。此无向图中的节点都与某个随机变量相关,连接着节点的边代表与这两个节点有关的随机变量之间的关系。
继续词性标注为例:(还是10个词的句子)
如果我们假设所有词的词性仅与和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。
比如第3个词的词性除了与自己本身的位置有关外,只与第2个词和第4个词的词性有关。
MRF因子分解定理
P ( x ) = 1 Z ∏ i = 1 K ψ i ( x c i ) , x ∈ R p P(x)=\frac1Z\prod_{i=1}^Kψ_i(x_{c_i}),x∈R^p P(x)=Z1i=1∏Kψi(xci),x∈Rp
通常指定 ψ ψ ψ函数为指数函数 e x p exp exp,可将上式改写为: P ( x ) = 1 Z ∏ i = 1 K exp [ − E i ( x c i ) ] , x ∈ R p P(x)=\frac1Z\prod_{i=1}^K\exp[−E_i(x_{c_i})],x∈R^p P(x)=Z1i=1∏Kexp[−Ei(xci)],x∈Rp
其中, x x x是个联合概率分布,它的维度是 p p p维; ψ ψ ψ表示势函数; E E E表示能量函数; K K K表示最大团的个数; c i c_i ci表示第 i i i个最大团。
下面对上式子做一个小的变化:
P ( x ) = 1 Z ∏ i = 1 K exp [ − E i ( x c i ) ] , x ∈ R p = 1 Z exp ∑ i = 1 K F i ( x c i ) , x ∈ R p P(x)=\frac1Z\prod_{i=1}^K\exp[−E_i(x_{c_i})],x∈R^p\\=\frac1Z\exp\sum_{i=1}^KF_i(x_{c_i}),x∈R^p P(x)=Z1i=1∏Kexp[−Ei(xci)],x∈Rp=Z1expi=1∑KFi(xci),x∈Rp
也就是将 e x p exp exp提出来,这样连乘号就变成了连加号了( e a × e b × e c = e a + b + c e^a×e^b×e^c=e^{a+b+c} ea×eb×ec=ea+b+c)。
3.条件随机场(CRF)
CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有 X X X和 Y Y Y两种变量, X X X一般是给定的,而 Y Y Y一般是在给定𝑋的条件下我们的输出。这样马尔科夫随机场就特化成了条件随机场。
在我们10个词的句子词性标注的例子中, X X X是词, Y Y Y是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个CRF。
对于CRF,我们给出准确的数学语言描述:
设 X X