crf评分、crf损失: https://blog.csdn.net/buppt/article/details/82227030

lstm已经预测出每个位置的标签,但是外加crf层综合序列因素。

https://share.weiyun.com/5iuaw98

https://share.weiyun.com/5iuaw98

https://www.cnblogs.com/hellochennan/p/6624509.html

CRF是概率无向图的一种。
1、如何求无向图的概率。把无向图分解为多个最大团,最大团的连乘即为整图的概率,即其下随机变量的联合分布。
2、最大团的概率又称为势,一般使用指数函数。 这样有一个好处,就是在求最大团的连乘时,指数的连乘,变成了指数部分的连加。
条件随机场即:该概率无向图下的随机变量,满足马尔可夫性。
我们一般使用的是线性链crf:
这个线性链crf,之前在学习的时候一直不是很明白为啥是无向图。
直到我查《概率图模型》,说到CRF是部分有向图。

线性链结构就是一个y对应一个小x。y算是标注,比如词性。y与上一个y之间有链接。
其y之间是无向的,y与x之间是有向的,即y看成x的条件分布。

所以就有两个势函数: 当前y与前一个y组成的团。 当前y与X组成的团。

一个是转移特征,一个是状态特征。
此时,当前序列y就不再像hmm那样,只依赖于当前x,可以根据特征函数的配置,综合上下文的x。

 

训练:
因为有隐变量,使用EM方法,迭代求解。

预测:
维特比算法。

CRF是做的全局优化,解决了标注偏置问题。

 

优点:

(1)CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样) ————与HMM比较

(2)同时,由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­­————与MEMM比较

(3)CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。————与ME比较

缺点:训练代价大、复杂度高。
HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关(一阶马尔可夫模型)。

MEMM模型克服了观察值之间严格独立产生的问题,但是由于状态之间的假设理论,使得该模型存在标注偏置问题。

CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设。当然,模型相应得也变复杂了。

 

CRF损失:

softmax损失: 计算各类的概率,取最大。

softmax损失在计算序列时没有考虑前后关系,每一个位置只是当前自己的。

1、对每一个可能的类别,计算CRF score: score会考虑 转移概率 + lstm输出。
2、进行归一化,获得概率(softmax)。指数归一。exp(score) / sum(exp(score))
我们使概率最大。即取log,进行优化。使用梯度下降。

转移概率如何计算:
论文中有说,增加开始和结尾的类别,y0,yn。一共k+2个类别。A(i,j)代表由i转移到j的得分。