清晰易懂的条件随机场原理总结

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

如果问机器学习初学者,《统计学习方法》中最难理解的章节是什么?我想大部分人的回答是条件随机场。小编前段时间看了很多条件随机场的学习资料,整理出了这篇文章,请大家耐心看,初学者应该也能看懂。

目录

1. 一例说明条件随机场是什么

2. 条件随机场的定义以及应用场景

3. 词性标注过程举例

3.1条件随机场的特征方程

3.2 特征方程与概率的转化

3.3 特征方程举例

4. 与逻辑斯蒂回归的相似点

5. 与隐马尔可夫模型的区别

6. 条件随机场的学习算法

7. 条件随机场的预测算法

8. 小结

1. 一例说明条件随机场是什么

假设你有贾斯丁·比伯一天生活的照片,你想要给每一张照片贴上一个标签,比如吃饭,舞蹈,睡觉,唱歌,驾驶等,该如何做?

一种方法是忽视照片的时间顺序特性,照片之间是相互独立的,训练数据有大量的照片和对应的标签,构建分类模型。比如训练数据包含近一个月的标签照片,你的分类模型可能会认为早上6点拍摄的黑色的照片是与睡眠相关的,有明亮色彩的照片往往与舞蹈相关,有汽车的照片与驾驶相关等等。

这种忽视时间顺序特性的方法会损失很多信息,比如,如果你看到一张嘴的特写照片,标签是唱歌还是吃饭?如果你考虑时间的顺序特性,假设前一张照片是吃饭或烹饪,那么这张照片的标签很可能是吃饭;若前一张照片是唱歌或舞蹈,那么这张照片的标签很可能是也唱歌。

因此,为了提高标签的准确性,我们应该考虑邻近照片的标签,这种方法就是条件随机场

2.条件随机场的定义以及应用场景

条件随机场的应用场景是给定输入的随机变量f19e5cc6f5d19d55f96aed71ec38d416.png,预测随机变量3f0f473ce7bbdb9ee5bf6e04ff9c4cb0.png,当输出随机变量是离散值时,应用领域就是我们熟知的词性标注和语音识别,是不是和隐马尔科夫模型很相似,后续章节会分析两者的区别,本节先不介绍。

理解条件随机场的定义需要理解两个重要的知识点:(1)邻近,(2)马尔科夫随机场

1)如何理解“邻近”这一含义,请看如下的概率无向图模型:

0471933b6296772382f91ec40441058d.png

变量7ab4a92ca91510cb0bc605d6264a02c8.png的邻近点是f508168ccc4015a3ad1948bd49df4b15.png,变量c20327730b072ee5043926f6f6e0f75b.png的邻近点是ab95450647319404f77e7079f1583e02.png,变量3762a63906dd9f69f3d588c6e22d6dec.png的邻近点是b2f74b606c123ead3336a6c0a4d9a907.png。邻近点的含义是用无向边相连,存在相关的两个随机变量。

2)马尔科夫随机场的本质是概率无向图,之所以叫马尔科夫随机场的原因是随机变量间满足成对马尔科夫性、局部马尔科夫性和全局马尔科夫性,马尔科夫性是关于条件独立的一种方法。

 成对马尔科夫性: u和v是无向图G中任意两个没有边连接的结点,对应的随机变量为e9289c4cd6451b06a297fc95d62c03cc.png0ec3db4f601e05527ec9617bf07c1e6e.png,其他所有结点为O,对应的随机变量组是2e56e95be8925b8e7dbce15cdb7adec2.png。成对马尔科夫性是指给定随机变量组a78f59e5e1500424c1bac502bb51e434.png的条件下,随机变量组613d2e151c7d5855763410836fc67bd6.png是相互独立的,即:

945af12efe716389c8d9a717b58b3adb.png

如上图,e5a4ceb23c9ee2ca28305dfbe0ca0b98.png是无向图G中任意两个没有边连接的结点,其他所有结点为O,对应的随机变量组是02d607e734b2b383c53606d0632b60ec.png,由成对马尔科夫原理,得:

5f3101e4371549b7c2b54372bc4f06e7.png

局部马尔科夫性:假设v是无向图G中任意一个结点,W是与v“邻近”的所有结点,O是v与W以外的所有结点。v表示的随机变量是ff018b8810bae47e1da28a3dc162616f.png,W与O表示的随机变量组分别是d7bf87fd09dbee4acf3c04d9684b2159.png。局部马尔科夫性是指给定随机变量09642ea41ee6388075af8a3d679a24b1.png的条件下,随机变量ed5cef112991c36a17b52ef10183442d.png与随机变量组d7945790a44d88fd88d15197eb18aa86.png是相互独立的,即:

c30aa8954e8a53e2495ce54c18a2f767.png

如上图,e463e7c1202b75dab567211a2e0e738b.png是无向图G中的一个结点,与结点eff73f1516bbae9c2f61fed6bc7a1b49.png邻近的点为随机变量组50bf744e2e4e5134ce02b1898c637004.png,无向图中7cc44e4779ae9268140e76f16b58896a.png以外的结点是随机变量组24b02c12d017e288626f685f85f7de2a.png,由局部马尔科夫原理,得:

45927f75cc53ed77c0849d79531aa5bc.png

全局马尔科夫性:结点集合A,B,C是无向图G中任意的结点集合,且各集合无交集,对应的随机变量组是6c0e2f1612a66840331815725fd9878c.png

如下图:

43f95dc6c201515c71f08014639f57c8.png

全局马尔科夫性是给定随机变量组4bcb57d19660ccb0c805aae7b142253a.png的条件下,随机变量组644c141f8de184609fc8bc67d96c75e1.png是相互独立的。

745117fb7f5e436e2ea8a6ebb7e85458.png

结合这两个知识点,我们给出条件随机过程的定义:给定随机变量组X,随机变量组Y符合马尔科夫随机场,则称条件概率分布b0eff81faabc3c787148199962f126c8.png为条件随机场。

由马尔科夫随机场的局部马尔科夫性质可得:

9b449ee4a71259c92b8997f8bdbc2cb6.png

其中a2e32ce8b0dbd993e3cc48de229379af.png表示节点v以外的所有结点,2e0706e31335ab0bcb71344359924988.png表示与节点v邻近的结点。

更进一步的介绍,若结点f212b91913f2d98297a85c6549d80092.png的邻近点只有80a034b629e178f7fde5f498db03fdd6.png,且随机变量组X和随机变量组Y有相同的图结构,则称条件概率分布16e96e7390e72d66230ec01881471043.png为线性链条件随机场。如下图为线性链条件随机场:

b8d3967b511e6647d8ff234ad2d2f0ef.png

由马尔科夫随机场的局部马尔科夫性质可得:

9fe82d6ca731e277cd517089165210a1.png

小结:这节内容有点多,小小的总结一下,首先理解马尔科夫随机过程的两个概念:(1)邻近,(2)马尔科夫性质。然后条件随机场是给定随机变量组X的条件下,随机变量组Y构成一个马尔科夫随机场,最后我们用马尔科夫随机场的马尔科夫性质去推导条件概率分布8eeb47645551a9fa9e2c8aa2e760f9d7.png

3.条件随机场举例——词性标注

本节我们通过词性标注(part-of-speech)来说明条件随机场的算法过程。

词性标注的目标是给一个句子(包含一系列单词和符号)加上词性标注如形容词(adjective),名词(noun),介词(preposition),动词(verb),副词(adverb),冠词(article)。

举个例子,“Bob drank coffee at Starbucks”,句子标注可能是“Bob(名词)drank(动词)coffee(名词)at(介词)Starbucks(名词)“

所以让我们构建一个条件随机场来标记句子的词性,与其他分类器一样,我们首先需要确定一组特征函数a1fbfc974b38e8a69955b8899073cfec.png

3.1 条件随机场的特征函数

条件随机场的一组特征函数类似于先验概率,根据自己的先验知识定制一套规则,每个特征函数的输入有:

1)一个句子s

2)句子第i个位置的单词

3)当前单词的标签3a1206901d70b8eb0a52c0dcd48f673d.png

4)前一个单词的标签e6d1781550b850f97d8ef3b0cb0550dd.png

特征函数的输出是实数值。由特征函数的输入可知,句子单词的标签只和邻近的前一个标签相关,因此这是一种特殊的线性链条件随机场,常规的线性链条件随机场的标签和前后两个标签相关,若是更常规的条件随机场,那么标签和邻近的标签相关,邻近的含义可参考第2节的介绍。

3.2 特征函数与概率的转化

接下来,给每个特征函数分配一个权重(我将在后面讨论如何从训练数据学习权重),给定一个句子s,我们通过把句子中所有单词的特征加权求和,得到句子s的标签(l)分数。有:

794cf133562ba2acd0a8df723b5b1dad.png

上式第一个积分表示每个单词在所有特征函数的求和,共有m个特征函数;第二个积分表示对句子的每个单词求和,共有n个单词。

词性标注本质上是多分类,我们把每个标签序列的分数转化为概率进行分类,实现方法是对分数求指数后再进行归一化转化为概率,范围为0~1,即:

be22f18f88d6df8bd1d8168a9f99ece5.png

由上式可知,给定一个句子s,词性标注l的分数越高,则相应的条件概率也越大,选择条件概率最大的词性标注l为句子s的标注序列。

3.3 词性标注的特征函数举例

如何根据自己的先验知识去设置词性标注的特征函数呢?下面例举几个词性标注的特征函数:

143f6ad7459c2e618ff802fc9be43abd.png

99a496e7b1ab784de828dd87cd69412c.png是副词且第i个单词以”-ly”结尾时,我们就让特征函数6b342d008689648053b14d6d8f269e6c.png,反之为0;如果该特征函数的权重5e1e9b995f8e08bcfdfe240dd7a3f02f.png是正数且数值越大时,我们认为以“-ly”结尾的单词是副词的可能性越大。

e6fc648c01f30538f2691ce9bb9d0115.png

当第一个单词是动词且这个句子以问号结尾时,我们就让特征函数9a73a466f738b8ddcdc692a6ff4e1f9d.png,反之为0;如果该特征函数的权重f0172c3fef71169eabc3a4805cacfc53.png是正数且数值越大时,我们认为句子以分号结尾时,第一个单词是动词的可能性越大。

b37f9bf6a04e2811218ab0684117945f.png

2477a424bf116fdc088ff1db63f755e5.png是形容词且d1e8cc0b994b37186858b33d994ca2e2.png是名词时,我们就让417609eb4d3a4b189cbc8201924f66f4.png,反之为0;如果该特征函数的权重6842c33b44fee5d70455f14ba0282354.png是正数且数值越大时,我们认为形容词后面是一个名词的可能性越大。

c8b829ae5536f5da8c6ddeb7b706ed8b.png

584fd8a3dea331fd87dd7fef2f9e8df3.png是介词且19b2e53ac85bdc303a22b28b1af09148.png是介词时,我们就让598d67cedbf65c76ff019e80702f8d9c.png,反之为0;如果该特征函数的权重是31a60c4717fcb304e47b8cf235946434.png负数且绝对值越大时,我们倾向于认为介词后面是一个介词的可能性越小。

这些特征函数的设置符合我们对语句的先验常识,若特征函数与权重的乘积能够增加9b29775ec23987223125d1737c5700b0.png,则该特征函数的词性标注越可能实现;反之可能性越小。

小结:为了构建条件随机场,你只需要定义一串特征函数(特征函数的输入为整个句子,当前字段以及相近的词性标注),分配特征函数相应的权重,并将它们乘积求和,然后转化为概率的形式求最优标注序列。

若我们确定了特征函数,还需要知道相应的权重,当特征函数和权重参数确定时,模型也就确定下来了,如何通过训练数据学习模型的权重参数,这一过程为条件随机场的学习算法。

3.4 条件随机场的学习算法

回顾之前的内容,给定句子s,标注序列l的条件概率为:

38a5161c54b8a25b9475efda072fbd06.png

假设我们有大量训练数据(每个训练数据包含语句和相应的词性标注),随机初始化条件随机场模型的权重参数,我们通过训练数据逐渐优化权重参数,使权重参数往最优方向移动,这一算法实现是我们常用的梯度上升算法:

1)取条件概率的对数,即841e725a489068f162176b36f6192924.png

2bf7228a6e5bd2429c29db40cd0739c8.png

2)令70deb76d63bf733e6ce8e7a0cb921d10.png对每一个特征函数求梯度,得:

645bf74d2731bfea3530c1dcf8563c38.png

ee0e2ff3919fd07f41ed37527b9007e1.png

注意到等式第一项是训练数据真实标注下特征函数对梯度的贡献,等式第二项是当前模型下特征函数对梯度贡献值的期望,对数条件概率的梯度是真实标注下特征函数与当前标注下特征函数期望的差值。现在你应该知道该梯度的含义了吧,即梯度上升是当前标注下特征函数值增加最快的方向。

3)梯度上升的方向迭代权重参数98a16360a4b3f11c4934ec49f3fe081e.png

ce944eba8f3b6286df07c93ae26a37de.png

其中7a80a896a092ed97230e4b22214871f7.png是学习率。

12af359036fd47068f240c0a6ff69b4c.png

4)当对数条件概率43ac1fef5bf358049ab024b5091a5d66.png不再增加时或增加的值小于给定的阈值时,迭代结束;反之重复之前的步骤。

现在我们知道了特征函数和权重参数,模型也相应的确定。如何对输入的语句进行词性标注,这一过程称为条件随机场的预测算法。

3.5 条件随机场的预测算法

条件随机场的预测问题是给定条件随机场3e9600a6ec6eded3f63c355287843b32.png和输入语句49c6b942635ea1411b98df345a1d7dcf.png,求条件概率最大的词性标注序列a8082728e065157e54539f9e109f0ee2.png

最简单的方法是用直接法预测最优标注序列,算法思想是列出所有可能的标注序列,然后选择概率最大的标注序列8a9cbfb55e921cf5a84868429c31f9d7.png。这种方法虽然简单,但是计算量非常复杂,如一个语句有n个单词,每个单词的可能词性标注有k种,那么所有可能的标注序列就有2e0d6c03d7f19f7545fecd1f623ea26f.png中。

与隐马尔可夫模型的预测算法一样,条件随机场的预测算法是著名的维特比算法,《统计学习方法》一书关于维特比算法的例子讲的挺详细的,这里就不再详细介绍了。

至此,条件随机场算法已基本介绍完了,下面开始比较条件随机场与其他常见的机器学习算法。


4. 与逻辑斯蒂克回归算法比较

K分类的多项逻辑斯蒂回归算法:

b00190e2b2db5a8b8950e7120bfc76d6.png

结合分母,得:

5d370d7138d9f06b79a8ea0728729a11.png

是不是和条件随机场85dc603cd57efeae7cda9ce8dbe14b16.png的定义有点像?这是因为条件随机场是多个顺序随机变量的逻辑斯蒂回归。逻辑斯蒂回归是用于分类的对数线性模型,而条件随机场是用于标签序列的对数线性模型。

5. 与隐马尔可夫模型的比较

隐马尔科夫模型也可用于词性标注,条件随机场通过特征函数得到标签序列的分数,分数越高表示标签序列出现的可能性越大;隐马尔科夫模型采用生成式的标签方法,定义:

77cec6d2620d84849b5482fa046b25f9.png

其中7828bf8847c831c96111047ad63b71f4.png是转移概率(比如介词转移为名词的概率),fcba10918a01d14b79edd2878cab9fc0.png是观测概率(比如名词为“Dad”的概率)。

条件随机场不仅包含了隐马尔科夫模型,且能处理隐马尔科夫模型不能处理的情况。下面给出解释:

取隐马尔科夫联合概率的对数,得:

bfa3c4232d3befd328e63106e189a62b.png

如果我们把上式的对数条件概率看作是条件随机场的权重系数,那么上式等价于条件随机场,只要特征函数满足以下条件:

1)对于每个隐马尔科夫模型的转移概率d81f371667cad6640096539c4eae2e98.png,如果1754b7727cbea9ff4e6e3c0ba60b6ba3.png9a713fac3958f4d9838dafa7900acb34.png,那么条件随机场的转移特征函数为6ecf6b76bd38598279ceacddc1e306e0.png,每个特征函数的权重系数c69a943d17f1c91ed80ef75da494fe41.png

2)对于每个隐马尔科夫模型的观测概率f227b6a77b95253b240f78fa3b2c3f92.png,如果02ce80827e842565d07c00d0b11efe4c.png

c8b16bc8a17e57e18e2cd3956bdf7fb3.png,那么条件随机场的观测特征函数为5ef730868349910890164ae4bdfa7ee8.png,每个特征函数的权重系数:

10e2aba44d48c952b9155d38cb3837fc.png

因此,条件随机场计算的分数e9c94a008bd9d03c80ea87364e6035f7.png与隐马尔科夫模型等价,每个隐马尔科夫模型都可以用某些条件随机场表示。

然而,条件随机场可以预测更丰富的标签序列,有下面两个原因:

1)条件随机场的标签分布是马尔科夫随机场,因此可以构建更复杂的特征函数,根本原因在于马尔科夫随机场的邻近节点有多个,而隐马尔科夫模型标签的邻近点只有两个。

2)隐马尔科夫模型的观测概率必须满足下面条件:

5ab164e0baf3fc2d366c61f9814bf77b.png

而条件随机场的权重系数是无限制的。

基于上面两个原因,马尔科夫随机场可以预测更丰富的标签序列。

6.小结

条件随机场包含三个重要知识点:邻近节点的含义,马尔科夫随机场(概率无向图),特征函数(与先验知识相关)。理解了这三个重要知识点,就不难理解条件随机场的定义了,条件随机场是在给定输入序列X的条件下,标签序列Y符合马尔科夫随机场。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

b0c3856ea985eefcc9f50337b787c8bd.png

d75864d0ac4b45c39380000f15b47577.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值