概率图模型之条件随机场
条件随机场应该是机器学习领域比较难的一个算法模型了,难点在于其定义之多(涉及到概率图模型、团等概率)、数学上近似完美(涉及到概率、期望计算,最优化方面的知识),但是其在自然语言处理方面应用效果比较好,所以本文结合李航老师的《统计学习方法》学习一下。
1.定义
1.1 图
图是由结点和连接结点的边组成的集合。结点和边分别记作v和e,结点和边的集合分别记作V和E,图记作G=(V,E)。无向图是指边没有方向的图。
1.2 概率图模型(PGM)
概率图模型是一类用图的形式表示随机变量之间条件依赖关系的概率模型,是概率论与图论的结合。根据图中边有无方向,常用的概率图模型分为两类:有向图(贝叶斯网络、信念网络)、无向图(马尔可夫随机场、马尔可夫网络)。
(1)有向图的联合概率:
其中,是
的父节点。
![](https://i-blog.csdnimg.cn/blog_migrate/82f6ba114adaf1c03a687855844e000e.png)
如上图所示,则有
(2)概率无向图模型:
设有联合概率分布P(Y),由无向图G=(V,E)表示,在图G中,结点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型或马尔可夫随机场。
尽管在给定每个节点的条件下,分配给该节点一个条件概率是可能的,无向图的无向性导致我们不能用条件概率参数化表示联合概率,而要从一组条件独立的原则中找出一系列局部函数的乘积来表示联合概率。
最简单的局部函数是定义在图结构中的团上的势函数,并且是严格正实值的函数形式。
下面我们来看下上面出现的马尔可夫性、团的定义
1.3 马尔可夫性
![](https://i-blog.csdnimg.cn/blog_migrate/2b004494f1eb545536a61696793fcdc4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/430ea70bd13543fcdb2769abf2246c2a.png)
1.4 团与最大团
无向图G中任何两个结点均有边连接的结点子集称为团,若C是无向图G的一个团,并且不能再加进任何一个G的结点使其称为一个更大的团,则称此C为最大团。
下图表示由4个结点组成的无向图。图中由2个结点组成的团有5个:
。有2个最大团:
.而
不是一个团,因为
和
没有边连接。
![](https://i-blog.csdnimg.cn/blog_migrate/790256d71d34a157e856c84a4356ec70.png)
将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,成为概率无向图模型的因子分解。
1.5 概率无向图模型的联合概率分布
给定概率无向图模型,设其无向图为G,C为G上的最大团,表示C对应的随机变量。那么概率无向图模型的联合概率分布P(Y)可写作图中所有最大团C上的函数
的乘积形式,即
![](https://i-blog.csdnimg.cn/blog_migrate/ca33de96bb4550c56e3ae52bff426618.png)
其中,Z是规范化因子,由式
![](https://i-blog.csdnimg.cn/blog_migrate/8fa3acff1aebbb6a7f06852f39e90bef.png)
给出。规范化因子保证P(Y)构成一个概率分布。函数称为势函数。这里要求势函数
是严格正的,通常定义为指数函数:
![](https://i-blog.csdnimg.cn/blog_migrate/0f2bff62801e4b3acbd7dbb7903394cd.png)
概率无向图模型的因子分解由Hammersley-Clifford定理来保证。
1.6 条件随机场
设X与Y是随机变量,P(Y|X)是在给定X的条件下Y的条件概率分布。若随机变量Y构成一个由无向图G=(V,E)表示的马尔可夫随机场,即
![](https://i-blog.csdnimg.cn/blog_migrate/fce173611365b325f421d751df96697b.png)
对任意结点v成立,则称条件概率分布P(Y|X)为条件随机场。式中w~v表示在图G=(V,E)中与结点v有边连接的所有结点w,w≠v表示结点v以外的所有结点,,
与
为结点v,u与w对应的随机变量。
1.7 线性链条件随机场
设均为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性
![](https://i-blog.csdnimg.cn/blog_migrate/7d41cc4c452ea2fe0974bd7359fd0e7e.png)
则称P(Y|X)为线性链条件随机场。
![](https://i-blog.csdnimg.cn/blog_migrate/9f24e033d8b947131b3fba12e4654972.png)
![](https://i-blog.csdnimg.cn/blog_migrate/62ecb79adf318a0ad66ea81d7c32d888.png)
在标注问题中,X表示输入观测序列,Y表示对应的输出标记序列或状态序列。
2.条件随机场的不同形式
2.1 条件随机场的参数化形式
设P(Y|X)为线性链条件随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式:
![](https://i-blog.csdnimg.cn/blog_migrate/08dfaa25f566e36e3eda8b245a57cdad.png)
其中,Z(x)是规范化因子
![](https://i-blog.csdnimg.cn/blog_migrate/d769671dc6c1e8340d6602c1c36dd26b.png)
参数解释
(1)是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置
(2)是定义在及结点上的特征函数,称为状态特征,依赖于当前位置
(3),
是
,
对应的权值
(4)特征函数,
取值为1或0:当满足特征条件时取值为1,否则为0。
下面看一个简单的例子:
![](https://i-blog.csdnimg.cn/blog_migrate/281c069794542279082bfb289d1270e9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0f55d69dd8971bf89e2a5a643b02ebba.png)
2.2 条件随机场的简化形式
为了后续概率计算、参数估计、推断的方便,对条件随机场形式进行简化
首先将转移特征和状态特征及其权值用统一的符号表示,设有个转移特征,
个状态特征,K=
+
,记
![](https://i-blog.csdnimg.cn/blog_migrate/3eaa0016da26b268f47f5247d7ca3f11.png)
然后,对转移与状态特征在各个位置i求和,记作
![](https://i-blog.csdnimg.cn/blog_migrate/3f24de105920292f6c1306d1be1c27ee.png)
用表示特征
的权值,即
![](https://i-blog.csdnimg.cn/blog_migrate/2f88f3ca1122fb462928d8e573bd66e0.png)
于是,条件随机场可表示为
![](https://i-blog.csdnimg.cn/blog_migrate/d5076713d91aad193c8d43b972d380c7.png)
若以w表示权值向量,即
![](https://i-blog.csdnimg.cn/blog_migrate/7d8a6d9b2abcb5171379e8eeab96ebee.png)
以表示全局特征向量,即
![](https://i-blog.csdnimg.cn/blog_migrate/7eadecd0852b8f17b9245219b9f48186.png)
则条件随机场可以写成向量w与的内积的形式:
![](https://i-blog.csdnimg.cn/blog_migrate/961fcedca684914f4d8e0f3c311d5c8a.png)
其中,
![](https://i-blog.csdnimg.cn/blog_migrate/f426249ed940e23784b1914890cb8980.png)
2.3 条件随机场的矩阵形式
![](https://i-blog.csdnimg.cn/blog_migrate/879c0274254d63189b4bc8d6957bc8da.png)
![](https://i-blog.csdnimg.cn/blog_migrate/26a66235191ff5f125430b5de2e99085.png)
3.概率计算问题
3.1 前向-后向算法
为了方便起见,像隐马尔可夫模型一样,引进前向-后向向量,递归地计算以上概率及期望值,这样的算法称为前向-后向算法
![](https://i-blog.csdnimg.cn/blog_migrate/7eb657697e418a2d543ac17fe0545401.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5b78f95f76456f653aea55111c93ed94.png)
3.2 概率计算
![](https://i-blog.csdnimg.cn/blog_migrate/5e21799157992ee04c526a2d2be4f206.png)
3.3 期望值计算
![](https://i-blog.csdnimg.cn/blog_migrate/0cf1eb092d32ae3cde9a792c186533a8.png)
4.学习算法(参数估计)
条件随机场实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现方法有改进的迭代尺度法IIS、梯度下降以及牛顿法。
![](https://i-blog.csdnimg.cn/blog_migrate/54d97c3d5cb483342964a7a97eb2b542.png)
5.预测算法(推断)
条件随机场的预测问题是给定条件随机场P(Y|X)和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列),即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法.
![](https://i-blog.csdnimg.cn/blog_migrate/961fcedca684914f4d8e0f3c311d5c8a.png)
由上式可得:
![](https://i-blog.csdnimg.cn/blog_migrate/e59dd773ca0e2e3a1cd7780d58c968e1.png)
于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题
![](https://i-blog.csdnimg.cn/blog_migrate/0f88f6393e0631a5d56e395ec369bdd0.png)
这里,路径表示标记序列。其中
![](https://i-blog.csdnimg.cn/blog_migrate/e55605278de79511f26b91bbbc84fe8f.png)
注意,这时只需计算非规范化概率,而不必计算概率,可以大大提高效率。为了求解最优路径,将问题改写成如下形式:
![](https://i-blog.csdnimg.cn/blog_migrate/f4c1803d61994a8f35f7f20888960dcd.png)
其中,
![](https://i-blog.csdnimg.cn/blog_migrate/cc81f0549d4a9dfbe1e7bf4a3774f220.png)
是局部变量。
下面叙述维特比算法.
![](https://i-blog.csdnimg.cn/blog_migrate/f6526f70efd185ec58f0769ea9c6abd8.png)
6.CRF++
现在关于CRF的工具有很多,这里简单介绍一下CRF++
CRF++包含Windows、Linux版本,tar_gz是Linux版本,zip是Windows版本。
介绍一下Windows版本,Linux差不多,不过包含源码,感兴趣可以读一读
![](https://i-blog.csdnimg.cn/blog_migrate/3da40a3317142ede10e1437e95d3b0fc.png)
(1)doc文件夹:官方主页的内容
(2)example文件夹:有四个任务的训练数据、测试数据和魔板文件
(3)sdk文件:CRF++的头文件和静态链接库
(4)crf_learn.exe:CRF++的训练程序
(5)crf_test.ext:CRF++的预测程序
(6)libcrfpp.dll:训练程序和预测程序需要使用静态链接库。
以example文件夹下basenp为例:
编写一个批处理文件如下:
..\..\crf_learn -c 10.0 template train.data model >> train-info.txt
..\..\crf_test -m model test.data >> test-info.txt
- 1
- 2
运行exec_basenp.bat之前:
![](https://i-blog.csdnimg.cn/blog_migrate/72b711ea69c41d4497a0f84a00316112.png)
运行exec_basenp.bat之后:
![](https://i-blog.csdnimg.cn/blog_migrate/221d48001071e8682c4505e61739fffa.png)
更多详细介绍An Introduction to Conditional Random Fields
转自 http://blog.csdn.net/a819825294 https://blog.csdn.net/a819825294/article/details/53893231