条件随机场(CRF)个人笔记整理

条件随机场(CRF)个人笔记整理

本博文来源于笔记整理
参考资料如下:
手推机器学习系列:
https://www.bilibili.com/video/BV19t411R7QU?from=search&seid=2569593673903728420
文字版blog:
https://anxiang1836.github.io/2019/11/05/NLP_From_HMM_to_CRF/

推荐教材:
1.李航《统计学习方法》
2.西瓜书

CRF是无向图模型

1.分类问题

根据输出时硬输出(输出结果为0/1,找到一个决策边界)还是软输入(引入了概率,不找决策边界,而是计算P(y=1|x)这种概率)分为两类:
硬分类:SVM:几何角度、max margin
PLA:“感知计算”,可以看做神经网络的最基本的一个神经元,主要思想:误分类驱动
LDA:线性判别分析,主要思想:类间大,类内小
软分类分为:
(1)概率判别模型:直接对条件概率P(y|x)建模
例如逻辑回归(2分类, 如果是多分类的逻辑回归叫做softmax逻辑回归)
逻辑回归和softmax逻辑回归都属于“最大熵模型”,他们都是最大熵模型的特例。
最大熵思想:满足给定已知信息的情况下,能够令熵达到最大概率分布,是指数族分布。
最大熵原理:
https://baike.baidu.com/item/%E6%9C%80%E5%A4%A7%E7%86%B5%E5%8E%9F%E7%90%86/9938383

例子:给定样本均值和方差的情况下,能够使熵达到最大的概率分布是高斯分布。

(2)概率生成模型:对联合概率P(x, y)建模
朴素贝叶斯就是概率生成模型
特征独立性假设:
朴素贝叶斯这里之所以叫“朴素”,是因为这里做了一个比较强的假设,即xi⊥xj|y(i≠j),就是在给定y的情况下,xi与xj是相互独立的,因此可以简写NB假设为:P(X|y=1/0)=∏P(xi|y=1/0)

在这里插入图片描述

NB中的Y是0/1,如果Y扩展为Seq(序列),就变成了HMM隐马尔可夫模型

在这里插入图片描述

关于HMM:https://blog.csdn.net/weixin_30642869/article/details/97254733
(1)齐次markov假设:
这是跟markov链有关的。齐次马尔科夫假设,通俗地说就是 HMM 的任一时刻 t 的某一状态只依赖于其前一时刻的状态,与其它时刻的状态及观测无关,也与时刻 t 无关。
(2)观测独立假设
观测独立性假设,是任一时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关。
这个图里面就是 x1和x2在给定y2的情况下是相互独立的。

高斯混合模型GMM
概率图:

在这里插入图片描述

什么是隐变量:
https://blog.csdn.net/weixin_38646392/article/details/88027570
如果你站在这个人旁边,你目睹了整个过程:这个人选了哪个袋子、抓出来的球是什么颜色的。然后你把每次选择的袋子和抓出来的球的颜色都记录下来(样本观察值),那个人不停地抓,你不停地记。最终你就可以通过你的记录,推测出每个袋子里每种球颜色的大致比例。并且你记录的越多,推测的就越准(中心极限定理)。然而,抓球的人觉得这样很不爽,于是决定不告诉你他从哪个袋子里抓的球,只告诉你抓出来的球的颜色是什么。这时候,“选袋子”的过程由于你看不见,其实就相当于是一个隐变量。隐变量在很多地方都是能够出现的。现在我们经常说的隐变量主要强调它的“latent”。所以广义上的隐变量主要就是指“不能被直接观察到,但是对系统的状态和能观察到的输出存在影响的一种东西”。所以说,很多人在研究隐变量。以及设计出各种更优(比如如可解释、可计算距离、可定义运算等性质)的隐变量的表示。

对于GMM,加上一个时间,就也变成了HMM
HMM是个五元组 λ =( S, O , π,A,B)
S:状态值集合,O:观察值集合,π:初始化概率,A:状态转移概率矩阵,B:给定状态下,观察值概率矩阵

MEMM:最大熵markov模型:结合了最大熵模型(MEM)和HMM的优点
属于概率判别模型,对P(Y|X)进行建模
*这一篇讲得不错:
https://blog.csdn.net/memray/article/details/15029661?utm_source=blogxgwz4

在概率图上可以建立生成模型或判别模型。有向图多为生成模型(如LDA、HMM),无向图多为判别模型(如CRF)。过去的报告认为判别模型在分类问题上比生成表现更加好(比如Logistic Regression与Naive Bayesian的比较,再比如HMM与Linear Chain CRF的比较)。当然,生成模型的图模型也有一些难以代替的地方,比如更容易结合无标注数据做semi-or-un-supervised learning。

对于MEMM:概率图为:

在这里插入图片描述

(也可以画成x1-n一个整体点分别连向y1 y2 y3 …)
PS:这与HMM的模型有点像,但是区别在于:

  1. HMM是生成模型,是对P(X,Y)进行建模;MEMM是判别模型,是对P(Y|X)进行建模;
  2. 在HMM中,观测变量是隐变量的输出;在MEMM中,观测变量变成输入了;
  3. HMM中是有观测独立假设的;在MEMM中,并不是观测独立的(直观理解:在词性标注任务上,给x2标注的词性y2y2并不单单与x2有关,也与上下文x1、x3有关,因此假设更加合理。因为观测之间本身不应该是独立的。之前的那个观测独立假设就不太合理。
    MEMM的著名问题(缺点):
    Label Bias Problem(标注偏差问题)【很复杂 John Latterfy论文】:原因是因为局部归一化。

CRF:
CRF的提出就是为了解决MEMM的标注偏差问题
CRF的概率图:

在这里插入图片描述

这个概率图就是在MEMM的基础上(之前说了 可以画成一个x1:T点对所有Y都有一个连线,这个一方面是表明单独的x1 x2会分别对Y有影响,同时也表明x1:T整体的x对Y有影响)把y之间的箭头去掉了
也就是变成了无向图
为了打破MEMM的标注偏差问题,将MEMM中的有向变成了无向,解决了局部归一化问题,变成了全局归一化。

2.HMM VS MEMM

HMM到MEMM是怎么过渡的

在这里插入图片描述

HMM:是一个概率生成模型(无论是看做NB还是GMM的泛化 都是生成模型)
λ =( π,A,B)
π是初始的状态分布,A是状态转移矩阵,B是发射矩阵
λ是联合参数,需要学习的
两个假设:
(1)齐次1阶markov假设
1阶的意思

在这里插入图片描述

口语表述:就是这里的4只和3有关系 3只和2有关系 2只和1有关系
正常表述:在给定3的情况下,4和2无关

正常情况下 Xt和X1 X2 … Xt-1都有关。
那一阶markov假设就是假设Xt只和Xt-1有关了

齐次的意思就是:对于一个正常的markov链来说,

在这里插入图片描述

1->2 2->3 …这些转移概率都是服从离散分布的
齐次的意思就是这些概率分布都是相同的
P(yt|yt-1)和P(yt-1|yt-2)…这些与时间无关
用数学公式表达为:
P(yt|y1:t−1,x1:t−1)=P(yt|yt−1)
看不懂HMM的图的可以看这一篇
https://www.cnblogs.com/fulcra/p/11065474.html
以骰子为例子

(2)观测独立假设
用通俗的表述可以理解为:在给定YtYt的情况下,XtXt与其他的Xk(k≠t)Xk(k≠t)全都无关。
用数学表达可以表示成:
P(xt|y1:t,x1:t−1)=P(xt|yt)P(xt|y1:t,x1:t−1)=P(xt|yt)
观测独立假设的目的还是简化计算,因为不考虑观测序列的内联关系了。
观测独立假设的来源 ,其实算得上是从NB上扩展来的(因为HMM算是NB的泛化嘛,[Y从0/1扩展到Seq])。例如,判断一个邮件是否为垃圾邮件,经典NB模型解决的垃圾邮件分类问题。
这里我们就做的假设是:每个单词之间是相互独立,当然这个假设是不太合理的,因为一句话中的词语肯定是有着一定语言学上的内在联系的。
HMM的建模对象:

在这里插入图片描述

在概率图模型圈出最小单元,如上图所示:(可以很明显看出的是观测独立假设哈),这样根据这个最小单元,我们就很容易可以写出HMM的建模数学表示。
建模对象为:P(X,Y|λ)——注意:生成模型建模的是联合概率分布

在这里插入图片描述

这里HMM的例子可以看
https://anxiang1836.github.io/2019/11/05/NLP_From_HMM_to_CRF/
这里转载了一个天气心情的例子
MEMM模型理解
MEMM打破了HMM的观测独立假设,那么,我们来看MEMM是怎么打破的,还是画出MEMM的最小单元,如下图。

在这里插入图片描述

注意这里箭头方向改了
这图与HMM的最小单元非常相似,唯一的区别在于:对于XX与YY之间的发射箭头进行了反转。这时候我们看:给定Yt,这时候xt−1与xt是否还是独立了么?
这是一个显然的”V”字型结构,head-to-head,在给定Yt的情况下,这时候,xt−1与xt这个路径就是个连通的了,所以就不再独立了。
于此同时,这样的处理,模型就不再是一个概率生成模型了,就变成了一个概率判别模型了。
补充:概率图模型的3种结构形式
转自:https://zhuanlan.zhihu.com/p/30139208
D划分

3. MEMM VS CRF

在这里插入图片描述

左上角这个xg代表global的影响
下面分别的小x是local的影响
MEMM缺点:有标注偏差问题(label bias problem)
所以MEMM并不流行

这里xt对yt是局部的影响,我们引入一个名词mass score来表示这个影响
mass score表明这个系统从t-1时刻到t时刻转移所产生的得分
这里的mass score可以当做一个函数,可以归一化。
在这个最小单元我们把它当成一个系统,系统从yt−1到yt的这样一个转移用数学可以表示成一个函数,是受yt−1、yt与xt共同作用的一个函数,系统对外是有一定能量的,这个函数被称为Mass Score,而且是大于0的。但是问题出现在:这个Mass Score被局部归一化了。条件概率熵越小,那么对于观测值的考虑越少(有时间看一下John Lafferty的论文)
这个归一化是不太妥当的,会造成一些问题。

在这里插入图片描述

这个例子 到1状态 只可能到2 不可能到5
画到上面那个图就是这样:

在这里插入图片描述

1只能到2 只有一条路(注意y是状态 x是观测变量)
这就是问题所在。

在这里插入图片描述

注意看这个P(2|1,i)=1是什么意思 就是在1状态下输入i 到达2状态的概率,为1
为什么又=P(2|1)呢 因为这里只有一条路 所以输入是什么不重要
这种不关注 observation的情况就有问题

在这里插入图片描述

再看这个例子 词性标注
看到输入为小明(X) 标为名词(Y)
输入为爱 标为动词
现在要标第三个词 本来说应该看到 中国 这个输入 才标名词的
但是我们知道名词 动词后必跟名词
也就是现在这个状态只有一个情况到下个状态,导致不需要看到中国这个输入也能知道下一个词性是名词 这是不正常的情况
看下面的笔记:

在这里插入图片描述

我们上面的这个图模型是训练数据得来的
这上面的这些概率 参数都是训练出来的(就比如这些概率就可以通过统计数据计算一下概率)
例如 样本有4个,3个rob 一个rib
那training后 概率就是下面这个图:

在这里插入图片描述

这时候:
P(1|0,r)=0.25
P(4|0,r)=0.75
viterbi算法求解Decoding问题:

在这里插入图片描述

Y=(y1,y2,y3)
Y一把=argmax[y1,y2,y3]P(y1,y2,y3|rib)
= 0, 4, 5, 3这样一个序列

这样结果就是 通过viterbi算法计算:给定观测值为rib
得到的结果竟然是rob
这就是一个极端的例子,这是label bias problem(由于样本比较极端 导致模型学差了)
条件概率分布的熵越小,模型就越不关心observation
label bias problem:conditional dist with low entropy take low notice of observation

要消除这个:就是不能局部归一化:就是把有向变无向(打破了齐次markov假设,因为打破了马氏链)

在引入条件随机场(CRF)之前,我们再看一下,有关于随机场的相关概念。
以下部分概念定义转载自:刘建平老师的https://www.cnblogs.com/pinard/p/7048333.html
见笔记

概率无向图模型(probabilistic undirected graphical model)又称为马尔科夫随机场(Markov Random Field),或者马尔科夫网络。也就是说,两个节点之间并没有明确的前后以及方向关系,两个节点之间存在相互作用,与更远处的点没有关系。

在这里插入图片描述

这个就叫线性链CRF
(真正的CRF不一定是一个链状的)
比如可能是任意的一个随机场,如下图:

在这里插入图片描述

对于标注问题,我们更关心这种chain形状的CRF
总结:CRF相较于MEMM,克服了label bias problem

4. CRF

前面部分我们从HMM到MEMM再到CRF的讲解
就是为了阐述CRF的合理性。CRF的特点如下:
1.条件:表明CRF是一个判别式模型,即对P(Y|X)
2.随机场:表明CRF是一个无向图模型(或称markov随机场)

在这里插入图片描述

对于这个图,无法求概率密度函数,因为:
1.这是一个无向图(markov随机场),他的因式分解很复杂()(有向图的因式分解比较简单)
来看一下这个因式分解(那个笔记里面也有 最大团什么的)

在这里插入图片描述

现在对于这个图

一般不加特殊说明 CRF就是指的这种线性链

在这里插入图片描述

对于线性链 最大团的数量很清晰

在这里插入图片描述

在这里插入图片描述

这里F(yt-1,yt,x1:T)可以看做三部分函数求和组成,分别是:
与yt-1有关的部分、与yt有关的部分、与yt-1和yt这条边有关的部分

举例:
标注问题:
小明 是 中国人
yt-1和yt属于名词、动词…
所以这里yt和yt-1的这个边我们可以称为状态函数
yt和yt-1的点分别是状态函数。
HMM我们说过 状态转移矩阵 和 观测矩阵

在这里插入图片描述

实际上我们把yt-1忽视,写成如下形式:

在这里插入图片描述

(因为我们这是在对t时刻建模。而yt-1已经在t-1时刻的建模里面有了,所以我们没有必要写两遍yt-1【因为上一个时刻已经把yt-1求出来了,不是函数了】,因为最后都是整体归一化的)

然后我们看这个部分:

在这里插入图片描述

在这里插入图片描述

这个特征函数 满足一个条件的时候的函数 比如:

在这里插入图片描述

这个就是t-1名词 t为动词 能量为1
t-1位名词 t为助词 能量为0
个人理解:这个f是自己定义的(看起来有点像一个线性加权的形式)
前面的λ是我们要学习的参数
k是我们看到数据之后,发现总结的所有可能性的转移表达,是我们人为定义的
同理 可以把yt的函数写出来:

在这里插入图片描述

这里的K和L都是给定的

现在CRF的表达式就是:
P(Y|X)为:

在这里插入图片描述

这就是CRF的PDF(概率密度函数)

5.CRF的概率密度函数的向量形式

上节推导出来的形式:

在这里插入图片描述

353535353535

T是最大团个数
K和L是给定的
举例:以词性标注为例
给定时刻t,yt可能有:

在这里插入图片描述

在这里插入图片描述

对于yt-1和yt 他们都有这个集合中元素的数量种可能
那么按照排列组合;

在这里插入图片描述

这里X和Y是随机变量 按照更严谨的表达为:

这里Z是归一化因子,与y无关,与x,λ,η有关

在这里插入图片描述

现在看起来就没那么复杂了
再继续简化:【只是一些代数上的变换】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.CRF要解决的问题:

上节讲了CRF的向量形式
这一节看一下learning问题是什么

一般概率图模型分为learning和inference两个问题
learning:就是把参数学习出来 parameter estimation

在这里插入图片描述

主要是求这里面的θ
或者说是求这个:

在这里插入图片描述
在这里插入图片描述

这里的T维就是指这样一个图就是一个样本 一共有N个样本
在词性标注中,就是把一个句子当做一个样本

7.inference:包括

1.marginal prob(边缘概率)
一般来说我们概率图是对联合概率进行建模的,比如:

在这里插入图片描述

求p(x1)或任意一个p(xt),就是求边缘概率

2.条件概率conditional porb 比如HMM 生成模型 p(x|y)【又称后验】
3.MAP Inference(decoding问题)

在这里插入图片描述

求一个x使得后验概率达到最大
实际上是求的一个序列 这个x就是后验概率

1.求边缘概率:
我们对公式变形:

在这里插入图片描述
在这里插入图片描述

这个变换是调了一下顺序 然后计算的话要从后往前算
定义:

在这里插入图片描述

这个就表示0~t-1的势函数的乘积
这里的左半部势函数指的是:

在这里插入图片描述

就是这个左半部的
这个定义比较奇怪,但只能这样描述

在这里插入图片描述

然后我们写出递推式:

在这里插入图片描述

等号右边相当于对yt-1积分
【多重积分】

在这里插入图片描述

上面这个S是状态集合

所以 Δ 左 \Delta_{左} Δ就:

在这里插入图片描述

就是前项递推。其实CRF跟HMM如出一辙,都是把递推公式找出来,然后前项后项算
Δ 右 \Delta_{右} Δ也是同样定义:

在这里插入图片描述

这个就是定义的右半部分了

这里我们用的是概率模型精准inference中的变量消除法,sum product/belief propagation信念传播

HMM和CRF用刀的前向后向的算法,其实就是sum product/belief propagation/变量消除法
所以最后:

在这里插入图片描述

8.CRF的learning问题——参数估计

复习一下learning问题是什么:

在这里插入图片描述

θ是个列向量 是多个参数的简写
N:训练样本数
细化这个表达式:

在这里插入图片描述

取log 等价 把连乘化为连加

在这里插入图片描述

定义:后面那一坨:

在这里插入图片描述

这就是一个纯粹的优化问题,没有隐变量

方法:梯度上升

在这里插入图片描述

在这里插入图片描述

前面f已知,后面要用到一个结论:Z是归一化因子,也叫log-partition function(partition function中文翻译 配分函数),这是指数族分布里面很重要的概念
【面AI的话 面试官最喜欢让人手推公式了】
对log-partition function求导的结果是充分统计量的期望

在这里插入图片描述

下面问题就变成了这个期望能不能求出来
期望就是积分 积分就是期望
所以化为:

在这里插入图片描述
在这里插入图片描述

按照这样的形式拆开积分
yt-1和yt的连加号和p和f都有关系
而另外两个连加号只跟P有关,与f无关
所以这里把式子分离开:

在这里插入图片描述

后面这一部分变成:

在这里插入图片描述

这是关键的一步,就变成了边缘概率分布了
整体变成:

在这里插入图片描述

前面的这个P能求出来(有递归公式),我们用A来表示
f也是能求出来的
所以:

在这里插入图片描述
在这里插入图片描述

实际的应用中不会用梯度上升算法,因为收敛速度慢。这一节只是让我们理解思想就可以了。

对于decoding问题,和HMM几乎是一样的。在HMM中用的Viterbi算法,就是用的动态规划。只要会HMM的decoding问题就会CRF了。可以去看看HMM的decoding问题。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值