注:以下为本人在学习CRF时查阅的一些资料中的内容的整理,部分为本人个人观点,如果错误,欢迎指正,如有侵权,请联系本人删除。谢谢。 转载请标明出处,谢谢
CRF是什么
CRF(Conditional Random FIelds)指的是条件随机场。
条件随机场的概念:
设X与Y是随机变量,P(Y|X)是在给定X的条件下Y的条件概率分布。若随机变量Y构成一个由无向图G=(V,E)表示的马尔可夫随机场,即对任意结点v成立,则称条件概率分布P(Y|X)为条件随机场。式中w~v表示在图G=(V,E)中与结点v有边连接的所有结点w,w≠v表示结点v以外的所有结点,,与为结点v,u与w对应的随机变量。
线性连条件随机场:
设均为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性
则称P(Y|X)为线性链条件随机场。
线性链条件随机场
X和Y有相同的图结构的线性链条件随机场
在标注问题中,X表示输入观测序列,Y表示对应的输出标记序列或状态序列。
概率无向图模型(马尔科夫随机场)
图,分为有向图和无向图,用图的形式表示随机变量之间的条件依赖关系的概率模型,就称为概率图模型。
有向图的联合概率,很好理解,略
无向图的联合概率,这里就要讲到概率无向图模型(马尔科夫随机场)。
概率无向图模型:
设有联合概率分布P(Y),由无向图G=(V,E)表示,在图G中,结点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型或马尔可夫随机场。
尽管在给定每个节点的条件下,分配给该节点一个条件概率是可能的,无向图的无向性导致我们不能用条件概率参数化表示联合概率,而要从一组条件独立的原则中找出一系列局部函数的乘积来表示联合概率。
最简单的局部函数是定义在图结构中的团上的势函数,并且是严格正实值的函数形式。
马尔科夫性
团,最大团,因子分解
无向图G中任何两个结点均有边连接的结点子集称为团,若C是无向图G的一个团,并且不能再加进任何一个G的结点使其称为一个更大的团,则称此C为最大团。
下图表示由4个结点组成的无向图。图中由2个结点组成的团有5个:
有2个最大团:而不是一个团,因为和
没有边连接。
将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,成为概率无向图模型的因子分解。
给定概率无向图模型,设其无向图为G,C为G上的最大团,表示C对应的随机变量。那么概率无向图模型的联合概率分布P(Y)可写作图中所有最大团C上的函数的乘积形式,即
其中,Z是规范化因子,由式
给出。规范化因子保证P(Y)构成一个概率分布。函数称为势函数。这里要求势函数是严格正的,通常定义为指数函数:
概率无向图模型的因子分解由Hammersley-Clifford定理来保证。
条件随机场的不同形式:
条件随机场的参数化形式
设P(Y|X)为线性链条件随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式:
其中,Z(x)是规范化因子
参数解释
(1)是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置
(2)是定义在及结点上的特征函数,称为状态特征,依赖于当前位置
(3),是,对应的权值
(4)特征函数,取值为1或0:当满足特征条件时取值为1,否则为0。
下面看一个简单的例子:
条件随机场的简化形式
为了后续概率计算、参数估计、推断的方便,对条件随机场形式进行简化首先将转移特征和状态特征及其权值用统一的符号表示,设有个转移特征,个状态特征,K=+
,记
然后,对转移与状态特征在各个位置i求和,记作
用表示特征的权值,即
于是,条件随机场可表示为
若以w表示权值向量,即
以表示全局特征向量,即
则条件随机场可以写成向量w与的内积的形式:
其中,
条件随机场的矩阵形式
概率计算问题
前向-后向算法
为了方便起见,像隐马尔可夫模型一样,引进前向-后向向量,递归地计算以上概率及期望值,这样的算法称为前向-后向算法
概率计算
期望值计算
学习算法(参数估计)
条件随机场实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现方法有改进的迭代尺度法IIS、梯度下降以及牛顿法。
预测算法(推断)
条件随机场的预测问题是给定条件随机场P(Y|X)和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列),即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法.
这里,路径表示标记序列。其中
注意,这时只需计算非规范化概率,而不必计算概率,可以大大提高效率。为了求解最优路径,将问题改写成如下形式:
其中,
是局部变量。
HMM的五个基本要素,三个假设,三个解决的问题
了解HMM的人们,都知道HMM有五个基本要素,三个假设和解决的三个问题:
首先看下HMM的五个基本要素:
HMM是个五元组λ =( S, O , π ,A,B)
S:状态值集合,O:观察值集合,π:初始化概率,A:状态转移概率矩阵,B:给定状态下,观察值概率矩阵
其次,回忆下HMM的三个假设:
1、有限历史性假设,p(si|si-1,si-2,...,s1) = p(si|si-1)
2、齐次性假设,(状态与具体时间无关),P(si+1|si)=p(sj+1,sj)
3、输出独立性假设,输出仅与当前状态有关,P(o1,...ot|s1,...st) = P(ot|qt)
最后,来说下HMM解决的三个问题:
1:评估问题,已知模型参数 λ= (A, B, π),计算某个观测序列发生的概率,即求P(O|λ)
2:解码问题,给出观测序列O和模型μ,怎样选择一个状态序列S(s1,s2,...st+1),能最好的解释观测序列O
3 :学习问题,如何调整模型参数 λ=(π, A, B), 使得 P(O|λ) 最大?