条件随机场总结
来源:互联网 发布:富士 打印软件 编辑:程序博客网 时间:2024/06/04 18:56
一. 概率无向图模型(马尔科夫随机场)
将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,称为概率无向图模型的因
子分解。概率无向图模型的最大特点就是易于因子分解。概率无向图模型的因子分解由Hammersley-Clifford定理保
证。概率无向图模型的联合概率分布,如下所示:
其中,是无向图的最大团,是的结点对应的随机变量,(势函数)是上定义的严格正函数,通常为指
数函数,乘积是在无向图所有的最大团上进行的。
说明:理解成对马尔可夫性;局部马尔科夫性;全局马尔科夫性的概念。
二. 条件随机场的定义与形式
1. CRF的定义
(1)条件随机场
设与是随机变量,是在给定的条件下的条件概率分布。若随机变量构成一个由无向图表
示的马尔科夫随机场(概率无向图模型),即。
对任意结点成立,则称条件概率分布为条件随机场。式中表示在图中与结点有边连接的所
有结点,表示结点以外的所有结点,与为结点与对应的随机变量。
(2)线性链条件随机场
设均为线性链表示的随机变量序列,若在给定随机变量序列的条件下,随机
变量序列的条件概率分布构成条件随机场,即满足马尔科夫性,如下所示:
(在和时只考虑单边)
则称为线性链条件随机场。在标注问题中,表示出入观测序列,表示对应的输出标记序列或状态序列。学
习时,利用训练数据集通过极大似然估计或正则化的极大似然估计得到条件概率模型;预测时,对于给定的输
入序列求出条件概率最大的输出序列。
2. CRF的参数化形式
设为线性链条件随机场,则在随机变量取值为的条件下,随机变量取值为的条件概率,如下所示:
其中,和是特征函数,和是对应的权值,是规范化因子,求和是在所有可能的输出序列上进行的。是定
义在边上的特征函数,称为转移特征,依赖于当前和前一个位置,是定义在结点上的特征函数,称为状态特征,依
赖于当前位置。和都依赖于位置,是局部特征函数,通常特征函数和取值为1(满足特征条件)或0(不满足特
征条件)。条件随机场完全由特征函数,和对应的权值,确定。线性链条件随机场是对数线性模型。
3. CRF的简化形式
条件随机场参数化形式中同一特征在各个位置都有定义,可以对同一个特征在各个位置求和,将局部特征函数转化为
一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式。
设有个转移特征,个状态特征,,如下所示:
然后对转移与状态特征在各个位置求和,如下所示:
用表示特征的权值,如下所示:
于是条件随机场,如下所示:
若以表示权值向量,即。以表示全局特征向量,即
,则条件随机场可以写成向量和的内积形式,如下所示:
4. CRF的矩阵形式
假设是给出的线性链条件随机场,表示对给定观测序列,相应的标记序列的条件概率。引进特殊的起点和
终点状态标记,这时可以通过矩阵形式表示。
对观测序列的每一个位置,,定义一个阶矩阵(是标记取值的个数)。如下所示:
这样给定观测序列,标记序列的非规范化概率可以通过个矩阵的乘积表示,于是条件概率
如下所示:
其中,为规范化因子,是矩阵的乘积的(start,stop)元素,如下所示:
说明:表示开始状态与终止状态,规范化因子是以start为起点stop为终点通过状态的所有
路径的非规范化概率之和。
三. 条件随机场的概率计算问题
条件随机场的概率计算问题是给定条件随机场,输入序列和输出序列,计算条件概率
以及相应的数学期望的问题。
1. 前向-后向算法
对每个指标,定义前向向量,如下所示:
递推公式为,即。
表示在位置的标记是并且到位置的前部分标记序列的非规范化概率,可能的取值有个,所以是维
列向量。
同样对每个指标,定义后向向量,如下所示:
递推公式为,即。
表示在位置的标记是并且从到的后部分标记序列的非规范化概率。
由前向-后向向量定义得到。其中,是元素均为1的维列向量。
2. 概率计算
按照前向-后向向量定义,标记序列在位置是标记的条件概率和在位置与是标记和条件概率,如下所示:
其中,。
3. 期望值的计算
利用前向-后向向量,可以计算特征函数关于联合分布和条件分布的数学期望。特征函数关于条件分
布的数学期望,如下所示:
其中,,。
假设经验分布为,特征函数关于联合分布的数学期望,如下所示:
其中,,。
对于转移特征,可以将式中的换成;对于状态特征,可以将式中的换成,表示为
,。
对于给定的观测序列与标记序列,可以通过一次前向扫描及,通过一次后向扫描计算,从而计算所有的概
率和特征的期望。
四. 条件随机场的学习算法
给定训练数据集估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型实际上是定义在时序数
据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有改进的迭代尺
度法IIS、梯度下降法以及拟牛顿法。
1. 改进的迭代尺度法
已知训练数据集,由此可知经验概率分布。可以通过极大化训练数据的对数似然函数来求模型参数。训练数
据的对数似然函数,如下所示:
改进的迭代尺度法通过迭代的方法不断优化对数似然函数改变量的下界,达到极大化对数似然函数的目的。假设模型
的当前参数向量为,向量的增量为,更新参数向量为
。在每步迭代过程中,改进的迭代尺度法通过依次求解转移特征和状态特征
更新方程,得到。
转移特征的更新方程,如下所示:
状态特征的更新方程,如下所示:
其中,,。是在数据中出现所有特征数的总和,如下所示:
条件随机场模型学习的改进的迭代尺度法,如下所示:
输入:特征函数;经验分布;
输出:参数估计值;模型。
(1)对所有,取初值
(2)对,每一:
(a)当时,令是方程的解。
当时,令是方程的解。
(b)更新值:
(3)如果不是所有都收敛,重复步骤(2)。
表示数据中的特征总数,对不同的数据取值可能不同。为处理这个问题,定义松弛特征,如下所示:
其中,是一个常数。选择足够大常数使得对训练数据集的所有数据,成立。这时特征总数可取。
对于转移特征,的更新方程,如下所示:
对于状态特征,的更新方程,如下所示:
以上算法称为算法S,在算法S中需要使常数S取足够大,这样一来每步迭代的增量向量会变大,算法收敛会变慢。算
法T试图解决这个问题,算法T对每个观测序列计算其特征总数最大值,即。利用前向-后向递
推公式,可以很容易地计算。
关于转移特征参数的更新方程,如下所示:
其中,是特征的期望值,。是多项式方程唯一的实根,可用牛顿法求得,从而求得相关的。
关于状态特征参数的更新方程,如下所示:
其中,是特征的期望值,,是多项式方程唯一的实根,可用牛顿法求得。
2. 拟牛顿法
条件随机场模型学习还可以应用牛顿法或拟牛顿法。条件随机场模型,如下所示:
学习的优化目标,如下所示:
梯度函数,如下所示:
条件随机场模型学习的BFGS算法,如下所示:
输入:特征函数;经验分布;
输出:最优参数值;最优模型。
(1)选定初始点,取为正定对称矩阵,置
(2)计算。若,则停止计算;否则转(3)
(3)由求出
(4)一维搜索:求使得
(5)置
(6)计算,若,则停止计算;否则,如下所示:
,其中
(7)置,转(3)。
五. 条件随机场的预测算法
条件随机场的预测问题是给定条件随机场和输入序列(观测序列),求条件概率最大的输出序列(标记序
列),即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法。
于是条件随机场的预测问题成为求非规范化概率最大的最优路径问题,如下所示:
路径表示标记序列,如下所示:
这时只需计算非规范化概率,而不必计算概率,可以大大提高效率。为了求解最优路径,将写成形
式,如下所示:
其中,是局部特征向量。
接下来叙述维特比算法,首先求出位置1的各个标记的非规范化概率,如下所示:
根据递推公式,求出到位置的各个标记的非规范化概率的最大值,同时记录非规范化概率最大值的路
径。如下所示:
直到时终止,这时求得非规范化概率的最大值,如下所示:
最优路径的终点,如下所示:
由此最优路径终点返回,如下所示:
求得最优路径。
条件随机场预测的维特比算法,如下所示:
输入:模型特征向量和权值向量,观测序列;
输出:最优路径。
(1)初始化
(2)递推。对,如下所示:
(3)终止
(4)返回路径
求得最优路径。
参考文献:
[1] 《统计学习方法》
[2] 漫步条件随机场系列文章:http://www.cnblogs.com/baiboy/p/crf1.html
[3] 如何轻松愉快地理解条件随机场:http://www.jianshu.com/p/55755fc649b1
[4] 如何推导条件随机场参数估计的全过程:https://www.zhihu.com/question/20380549
[5] 如何用简单易懂的例子解释CRF模型?它和HMM有什么区别?:https://www.zhihu.com/question/35866596
[6] 条件随机场教程:https://zhuanlan.zhihu.com/p/26696451
[7] 条件随机场介绍:https://zhuanlan.zhihu.com/p/25558273
- 条件随机场总结
- CRF++条件随机场 总结
- 条件随机场(CRF)总结
- CRF 条件随机场
- CRF-条件随机场
- 条件随机场
- 条件随机场导论
- 条件随机场(CRF)
- 条件随机场(CRF)
- 条件随机场(CRF)
- 条件随机场
- 条件随机场
- 条件随机场入门
- CRF(条件随机场)
- 条件随机场 详析
- 条件随机场
- 条件随机场
- CRF-条件随机场
- 同时配置redis和hbase的配置文件遇到的问题
- python中zip函数
- python 进程间通信
- 怎么简单的理解对称加密和非对称
- iOS xcode 代码行数统计
- 条件随机场总结
- 安卓直播界面开发,自定义照相机拍照,前后摄像头切换教程加源码!
- Wireless Network(POJ
- [PKU暑课笔记] 趁机膜一发线段树和树状数组
- Binary Tree Serialization
- C# AES 加密解密
- linux python2.6 Redis报错
- Restore IP Addresses问题及解法
- fullcalendar日历控件知识点集合