首页 > 其他分享 >【自然语言处理(二)】条件随机场

【自然语言处理(二)】条件随机场

时间:2023-03-15 15:36:17浏览次数:38  
标签:概率 处理 模型 CRF 机场 条件 自然语言 随机变量

判别式模型与生成式模型

已知的机器学习模型中,分成了生成式模型和判别式模型。生成式模型包括了HMM。

相比生成式模型,判别式模型家族更加兴旺一些,包括感知机、条件随机场、支持向量机、神经网络。就连所谓的神经网络深度学习,也不过是判别式家族成员之一而已。一些判别式模型并不介意输出的到底是[0.1]区间内的概率p(ylx),还是一个分值score(x,y),只保证概率越大分值越大即可。万一下级应用需要概率,只需将分值传入softmax函数转换一下即可:

 

 

为了分析多维随机变量分布,人们使用了概率图模型这个强大的工具。

概率图模型

概率图模型(probabilistic graphical model)是由图表示的概率分布.设有联合概率分布P(Y),是一组随机变量.由无向图G=(V,E)表示概率分布P(Y),即在图G中,结点表示一个随机变量Y,﹔边表示随机变量之间的概率依赖关系。[统计学习方法]

PGM大致可以分为两种,directed graphical model(又称贝叶斯网络)和undirected graphical model(又称马尔可夫随机场)。

在概率有向图中,每个事件之间的方向代表因果关系。边的权重正是一个条件概率。

无向图模型则不探究每个事件的因果关系,也就是说不涉及条件概率分解。无向图模型的边没有方向,仅仅代表两个事件有关联,不表示谁是因谁是果。

而在无向图中,无向边表示两个变量的一种互相关系,互相影响,互相软限制等等,不再是条件概率。

概率图模型分类

如下图:在概率模型中,有向图按照单源点、链到有向图的方式划分,分别是朴素贝叶斯、HMM、贝叶斯网络;

如果加入条件概率,则分别是逻辑回归,链条条件随机场,一般条件随机场。

/i/ll/?i=img_convert/411c16f63894b67217c01592a059a92c.png

 

 

 

 

 

 

 

 

 

 

 

无向图模型将多维随机变量的联合分布分解为一系列最大团中的因子之积:

 

 

 

其中

 

 

记号

势函数,一般定为

特征函数,仅在xa,ya为指定值时为1,其余情况=0

规范化因子,也称分配函数(partition function),

经验分布函数,即训练集上x,y的取值概率

条件随机场

条件随机场(Conditional Random Field,CRF )是一种给定输入随机变量x,求解条件概率p(y|x)的概率无向图模型。

定义为:

条件随机场 设X与Y是随机变量,P(Y|X)是在给定X的条件下Y的条件概率分布.若随机变量Y构成一个由无向图G=(V,E)表示的马尔可夫随机场,即

则称该无向图表示的模型为条件随机场[1]。

表示G中v的所有相邻点

表示v以外的所有结点

表示v,u,w对应的随机变量

线性链条件随机场

CRF用于序列标注时,特例化为线性链条件随机场(linear-chain CRF)。

/i/ll/?i=img_convert/76586f478e124d3a883550ddf1e4428d.png

线性链条件随机场的训练

如何得到线性链CRF的模型参数?

如果将所有特征函数与权重分别写作向量形式,则线性链条件随机场的定义可以简化为:

其中Z

(1)

对数似然函数

将式(1)代入上式,似然函数展开为:

正则化函数

求偏导

特征函数的经验分布就是特征函数在训练集上的计数统计

第二项:

综上简化为:

由于条件随机场的对数似然函数为凸函数( concave function ),所以可以利用许多凸优化算法。其中之一即为L-BFGS凸优化算法。

L-BFGS凸优化算法

 

其中是用于降低计算复杂度而经过变换的矩阵,用以代替Hessian矩阵的逆。

条件随机场与感知机

执行梯度上升,让参数点顺着梯度方向移动,得到更新表达式:

对比感知机的更新表达式

可知每次迭代,CRF会对所有给出错误答案的特征函数进行惩罚。

而感知机仅惩罚的特征函数

其他

要了解概率图模型的相关知识,可参见:https://ermongroup.github.io/cs228-notes/

线性CRF的具体计算,可参见https://www.cnblogs.com/pinard/p/7055072.html

CRF的工具包CRF++ https://taku910.github.io/crfpp/

References

[1]统计学习方法 李航

[2]数值优化:理解L-BFGS算法http://www.hankcs.com/ml/l-bfgs.html

[3]无向图(Undirected Graphical Models) https://zhangzhenhu.github.io/blog/probability_model/

标签:概率,处理,模型,CRF,机场,条件,自然语言,随机变量
From: https://www.cnblogs.com/wangzming/p/17218712.html

相关文章

  • 全局异常处理配置
    全局异常处理配置@ControllerAdvice//aoppublicclassGlobalExceptionHandler{@ExceptionHandler(Exception.class)@ResponseBodypublicResulter......
  • 【倒计时3天】“CSIG企业行”走进合合信息,大咖解密智能文档处理背后的底层技术及AI未
    3月18日,由中国图象图形学会(CSIG)主办,合合信息、CSIG文档图像分析与识别专业委员会联合承办的“CSIG企业行”系列活动将正式举办,通过搭建学术界与企业交流合作平台,为企业创......
  • Java线程池和Spring异步处理高级篇
    开发过程中我们会遇到很多使用线程池的场景,例如异步短信通知,异步发邮件,异步记录操作日志,异步处理批量Excel解析。这些异步处理的场景我们都可以把它放在线程池中去完成,当然......
  • 关于.net 和 JAVA 在内存处理(GC)设计上的差距(ChatGPT水文)
    我听说,java在内存方面,有线程专用的堆空间,从而加快内存分配和回收的速度(因为没有并发的考虑?),是这样的吗?.net有类似的技术吗?是的,Java确实有线程专用的堆空间,即ThreadLoca......
  • iOS 15后设置导航控制器的导航条背景色无效的问题处理
    IOS15+修改了导航条的使用方式:如果有滚动控件的存在,比如UIScrollView存在,那么导航条默认会是透明,滚动的时候,才会显示设置的颜色。修改设置方式,必须要设置navigationBar......
  • Python基础--字符串处理
    Python中,字符串变量提供了3种方法来删除字符串中多余的空格和特殊字符,它们分别是:strip():删除字符串前后(左右两侧)的空格或特殊字符。lstrip():删除字符串前面(左边)的空......
  • bat批处理中如何转发参数给另一个程序
    使用scriptcs命令时发现新版本已经变成 dotnet-script.exe,但vs中插件依然是旧版,所以要相同目录创建了一个scriptcs.bat文件来实现参数转发,内容如下:@echooffrem......
  • golang viper 处理TOML 特殊的arrar和array of table
    参考:https://github.com/spf13/viper/issues/213知识点:go类型断言tomlconfig:[src_isntances]#i=[{ip="dasds",port="asdas"},{ip="dffdafs",port="afasdsdas"}]i1=......
  • .bat(window批处理文件)小记
    1."@echooff"它通常出现在脚本的开头,作用是关闭命令行窗口下的回显功能C:\>echoHello,world!(省略)Hello,world!2.注释用rem或::rem这是多行注释ech......
  • opencv图像处理基础操作之边缘检测
    概述边缘检测是利用图像中边缘像素值会发生剧烈变化来进行检测的,主要用于分割图像、提取特征等多个方面。opencv中常用的算法有Canny边缘检测算法、Sobel算子、Laplacian算......