写在前面

前面写完了HMM,比较重点的就是HMM的三个问题,需要好好消化。这篇博客主要介绍条件随机场,相比于HMM,CRF的应用可能会更广。从刚接触CRF开始也很久了,但是由于书上公式非常晦涩难懂,而且网上也有超级多的开源代码实现,所以对CRF的认识也就停留在非常表层的理解。但是就这样的程度让人觉得非常虚,那就拿起小蓝书跟条件随机场来个了断吧~

条件随机场定义

首先给出来自小蓝书的CRF定义:

条件随机场是给定从输入随机变量X条件下,输出随机变量Y的马尔科夫随机场。

那么在这个定义里面,有几个需要我们提前了解的概念:

  1. 随机场:随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。
  2. 马尔科夫随机场:马尔科夫随机场是随机场的特例,它及假设随机场中某个位置的赋值仅仅与和它相邻的位置的赋值有关,与其不相邻的位置的值无关。
  3. 条件随机场:CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有X和Y两种变量,且X一般是给定的输入变量,而Y是我们需要输出的变量(在给定X的条件下)。这样一个马尔科夫随机长就形成了CRF。
线性链条件随机场

在CRF的定义中,并没有要求X和Y具有相同的结构。但是在现实中,我们一般假设X和Y有相同的结构,,如下:

X=(X1,X2,…Xn),Y=(Y1,Y2,…Yn)X=\left(X_{1}, X_{2}, \ldots X_{n}\right), Y=\left(Y_{1}, Y_{2}, \ldots Y_{n}\right) X=(X1​,X2​,…Xn​),Y=(Y1​,Y2​,…Yn​)

linear-CRF定义:

P(Yi∣X,Y1,…,Yi−1,Yi+1,…,Yn)=P(Yi∣X,Yi−1,Yi+1),i=1,…,nP\left(Y_{i} | X, Y_{1}, \ldots, Y_{i-1}, Y_{i+1}, \ldots, Y_{n}\right)=P\left(Y_{i} | X, Y_{i-1}, Y_{i+1}\right), \quad i=1, \ldots, n P(Yi​∣X,Y1​,…,Yi−1​,Yi+1​,…,Yn​)=P(Yi​∣X,Yi−1​,Yi+1​),i=1,…,n
其中当i取1或者n时只考虑单边。
例如,在标注问题中,X表示输入观测序列,Y表示对应的输出标记序列。

linear-CRF参数化形式

那么对于linear-crf,我们如何将其转换成可以学习的机器学习模型呢?这主要是通过特征函数和对应的权重来进行的。

特征函数
  1. 第一类是状态特征,定义在Y节点上的特征函数,这类特征函数只和当前节点有关,记为:

sl(yi,x,i),l=1,2,…Ls_{l}\left(y_{i}, x, i\right), l=1,2, \ldots L sl​(yi​,x,i),l=1,2,…L
其中L是定义在该节点的节点特征函数的总个数,i是当前节点在序列的位置。
2. 第二类是转移特征,定义在边上(Y上下文)的局特征函数,这类特征函数之和当前节点和上一个节点有关,记为:

tk(yi−1,yi,x,i),k=1,2,…Kt_{k}\left(y_{i-1}, y_{i}, x, i\right), \quad k=1,2, \ldots K tk​(yi−1​,yi​,x,i),k=1,2,…K
其中K是定义在该节点的局部特征函数的总个数,i是当前节点在序列的位置。

注意, 无论是状态特征函数还是转移特征函数,它们的取值只能是0或者1,即满足特征条件或者不满足特征条件。

权重

对于上面说描述的每一个特征函数,我们都为其设置一个权重,用以表达我们对这个特征函数的信任度。
假设tk的权重系数是λk,sl的权重系数是μl,则linear-CRF由我们所有的tk,λk,sl,μl共同决定。

综上,我们可以得出线性链条件随机场的表达式:

P(y∣x)=1Z(x)exp⁡(∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i))P(y | x)=\frac{1}{Z(x)} \exp \left(\sum_{i, k} \lambda_{k} t_{k}\left(y_{i-1}, y_{i}, x, i\right)+\sum_{i, l} \mu_{l} s_{l}\left(y_{i}, x, i\right)\right) P(y∣x)=Z(x)1​exp⎝⎛​i,k∑​λk​tk​(yi−1​,yi​,x,i)+i,l∑​μl​sl​(yi​,x,i)⎠⎞​
其中,Z是规范化因子,

Z(x)=∑yexp⁡(∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i))Z(x)=\sum_{y} \exp \left(\sum_{i, k} \lambda_{k} t_{k}\left(y_{i-1}, y_{i}, x, i\right)+\sum_{i, l} \mu_{l} s_{l}\left(y_{i}, x, i\right)\right) Z(x)=y∑​exp⎝⎛​i,k∑​λk​tk​(yi−1​,yi​,x,i)+i,l∑​μl​sl​(yi​,x,i)⎠⎞​

举个栗子

可以参考小蓝书给出的简单示例,加权求和即可。

CRF简化形式

上一节给出的CRF公式特征函数和权重的参数有点多,显得非常复杂,这里我们可以对其进行整理简化。

假设我们在某一节点我们有K1个转移特征函数和K2个状态特征函数,总共有K=K1+K2个特征函数。我们用一个特征函数fk(yi−1,yi,x,i)来统一表示如下:

fk(yi−1,yi,x,i)={tk(yi−1,yi,x,i)k=1,2,…K1sl(yi,x,i)k=K1+l,l=1,2…,K2f_{k}\left(y_{i-1}, y_{i}, x, i\right)=\left\{\begin{array}{ll}{t_{k}\left(y_{i-1}, y_{i}, x, i\right)} & {k=1,2, \ldots K_{1}} \\ {s_{l}\left(y_{i}, x, i\right)} & {k=K_{1}+l, l=1,2 \ldots, K_{2}}\end{array}\right. fk​(yi−1​,yi​,x,i)={tk​(yi−1​,yi​,x,i)sl​(yi​,x,i)​k=1,2,…K1​k=K1​+l,l=1,2…,K2​​
接着我们对特征函数在各个位置i求和,可得:

fk(y,x)=∑i=1nfk(yi−1,yi,x,i)f_{k}(y, x)=\sum_{i=1}^{n} f_{k}\left(y_{i-1}, y_{i}, x, i\right) fk​(y,x)=i=1∑n​fk​(yi−1​,yi​,x,i)
同时我们也将对应的权重进行相同的处理,

wk={λkk=1,2,…K1μlk=K1+l,l=1,2…,K2w_{k}=\left\{\begin{array}{ll}{\lambda_{k}} & {k=1,2, \ldots K_{1}} \\ {\mu_{l}} & {k=K_{1}+l, l=1,2 \ldots, K_{2}}\end{array}\right. wk​={λk​μl​​k=1,2,…K1​k=K1​+l,l=1,2…,K2​​
这样我们之前那个复杂多参数的公式就可以简写为,

P(y∣x)=1Z(x)exp⁡∑k=1Kwkfk(y,x)P(y | x)=\frac{1}{Z(x)} \exp \sum_{k=1}^{K} w_{k} f_{k}(y, x) P(y∣x)=Z(x)1​expk=1∑K​wk​fk​(y,x)
其中Z为规范化参数

Z(x)=∑yexp⁡∑k=1Kwkfk(y,x)Z(x)=\sum_{y} \exp \sum_{k=1}^{K} w_{k} f_{k}(y, x) Z(x)=y∑​expk=1∑K​wk​fk​(y,x)

CRF矩阵形式

条件随机场也有矩阵形式,是一种模型按时序展开分步计算的形式。对输入观测序列X中的每一个xtx_{t}xt​:

  1. 计算出所有的可能情况(根据不同假设y组合情况,计算激活的特征函数与权值乘积的和), 按照一定的顺序组成矩阵;
  2. 在所有矩阵计算完成之后,利用这些矩阵可以完成最优序列的求解,Z(x)的计算。

为此我们定义一个m x m的矩阵M,m为y所有可能的状态的取值个数:

Mi(x)=[Mi(yi−1,yi∣x)]=[exp(Wi(yi−1,yi∣x))]=[exp(∑k=1Kwkfk(yi−1,yi,x,i))]M_i(x) = \Big[ M_i(y_{i-1},y_i |x)\Big] = \Big[ exp(W_i(y_{i-1},y_i |x))\Big] = \Big[ exp(\sum\limits_{k=1}^Kw_kf_k(y_{i-1},y_i, x,i))\Big] Mi​(x)=[Mi​(yi−1​,yi​∣x)]=[exp(Wi​(yi−1​,yi​∣x))]=[exp(k=1∑K​wk​fk​(yi−1​,yi​,x,i))]
同时引入起点和终点标记y0=start,yn+1=stopy_0 =start, y_{n+1} = stopy0​=start,yn+1​=stop,这样标记序列y的非规范化概率可以通过n+1个矩阵元素的乘积得到:

Pw(y∣x)=1Zw(x)∏i=1n+1Mi(yi−1,yi∣x)P_{w}(y | x)=\frac{1}{Z_{w}(x)} \prod_{i=1}^{n+1} M_{i}\left(y_{i-1}, y_{i} | x\right) Pw​(y∣x)=Zw​(x)1​i=1∏n+1​Mi​(yi−1​,yi​∣x)
其中Z(x)为规范化因子。

CRF的三个问题

与HMM类似,CRF也有三个基本问题:

  • 计算问题:

给定条件随机场 P(Y|X),输入序列x和输出序列y,计算条件概率P(yi∣x)P\left(y_{i} | x\right)P(yi​∣x)和P(yi−1,yi∣x)P\left(y_{i-1},y_{i} | x\right)P(yi−1​,yi​∣x)以及对应的期望
前向后向算法

  • 解码问题

给定条件随机场P(Y|X)和输入序列x,求条件概率最大的输出序列y,即对观测序列进行标注。
维特比算法

  • 学习问题

给定训练数据集X和对应的标记序列Y,K个特征函数fk(x,y),需要学习linear-CRF的模型参数wk和条件概率Pw(y|x)
梯度下降法,牛顿法,拟牛顿法,迭代尺度法

其中前两个问题属于inference,第三个问题属于learning。
三个问题的具体解法就放在下篇文章里写吧~
以上~

概率图模型笔记(三)条件随机场(CRF)基础相关推荐

  1. 【机器学习基础】一文读懂用于序列标注的条件随机场(CRF)模型

    模型前的铺垫 我们先引入一个假设,假设一个句子的产生只需要两步: 第一步:基于语法产生一个合乎文法的词性序列 第二步:对第一步产生的序列中的每个词性找到符合这个词性的一个词汇,从而产生一个词汇序列,便 ...

  2. python期望输出隐藏_【归纳综述】马尔可夫、隐马尔可夫 HMM 、条件随机场 CRF 全解析及其python实现...

    PR Structured Ⅲ:马尔可夫.隐马尔可夫 HMM .条件随机场 CRF 全解析及其python实现 Content 归纳性长文,不断更新中...欢迎关注收藏 本章承接概率图知识 马尔可夫不 ...

  3. 条件随机场CRF的理解

    1.个人理解和总结 对比HMM的状态转移概率矩阵和发射概率矩阵CRF有自己的定义在边上的特征函数(相当于转移概率)和定义在节点上的特征函数(相当月发射概率) 序列标注HMM可以根据转移概率矩阵和发射概 ...

  4. 条件随机场(CRF)相关理论知识

    文章目录 无向概率图模型 条件随机场 CRF 实例 线性链条件随机场的简化形式 线性链条件随机场的矩阵形式 linear-CRF的三个基本问题 1,概率计算问题 前向后向概率概述 前向后向概率计算 l ...

  5. 长文详解基于并行计算的条件随机场CRF

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共3974个字,29张图,预计阅读时间18分钟. 之前写过CRF的详解,只是为了让 ...

  6. 全网最通俗的条件随机场CRF

    前言 本文是我尽量以通俗易懂的口吻来讲解CRF的一篇博文,标题虽然取得有点自不量力,但也是我付出了十分心血总结出来的,如果你还是没能看懂那说明我能力不够没能讲清楚,烦请不要在我的留言区展现出你的杠精本 ...

  7. NLP-初学条件随机场(CRF)

    说明:学习笔记,内容参考<机器学习><数学之美>和七月在线课件 条件随机场 定义1: 条件随机场(conditional random field,简称CRF)是一种判别式无向 ...

  8. 通俗易懂条件随机场CRF

    条件随机场CRF 条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用.本系列主要 ...

  9. 条件随机场(CRF) - 1 - 简介

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  10. 条件随机场(CRF) - 2 - 定义和形式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968 声明: 1,本篇为个人对 ...

最新文章

  1. 微服务架构的四大金刚利器
  2. Qt应用程序主窗口之一:主窗口框架
  3. Magento购物车价格计算的功能实现之代码理解
  4. Javascript中的async await
  5. 跨域调用webapi web端跨域调用webapi
  6. 为什么现在又流行服务端渲染html?
  7. 中国双面柔性印刷电路板(FPC)市场趋势报告、技术动态创新及市场预测
  8. ST-Link驱动安装包 STM32 keil
  9. ubuntu下安装goldendict及离线词库
  10. ~6. ccf 2021-09-1 数组推导
  11. IP-Guard桌面安全解决方案
  12. 一文看懂苹果秋季新品发布会:iPhone 13领衔C位产品齐了
  13. win10 python 查看安装库的帮助文档
  14. java识别节奏,Flutter AudioPlayers 或节拍器滞后
  15. Fortran 源代码资源搜集
  16. java毕业设计基于VUE电脑城摊位出租系统mybatis+源码+调试部署+系统+数据库+lw
  17. Oracle gsd服务是什么,oracle11gRAC的oc4j和gsd服务都处于offline状态
  18. jhipster利用JDL文件生成User、Role、userRole的注意事项及操作方法
  19. 【cocos creater】7.仿《弓箭传说》- 控制主角朝向敌人
  20. VCR(2维码读取器)-PC Data transmission - RS232

热门文章

  1. SAP License:SAP系统上线后的预收款处理
  2. ionic 日期选择控件
  3. ios开发网络学习九:NSURLSessionDownloadTask实现大文件下载
  4. ubuntu-文件管理、编辑
  5. mysql基础之存储引擎
  6. 程序员最艰巨的十大任务
  7. Android开发14——监听内容提供者ContentProvider的数据变化
  8. KMP算法字符串模式匹配
  9. win7 64下安装mysql-python报错的解决办法
  10. hdu-5583 Kingdom of Black and White(数学,贪心,暴力)