hmmmemmcrf差别联系

llguanli llguanli     2022-08-31     326

关键词:

声明:本文主要是基于网上的材料做了文字编辑,原创部分甚少。參考资料见最后。

隐马尔可夫模型(Hidden Markov Model。HMM),最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)以及条件随机场(Conditional Random Field,CRF)是序列标注中最经常使用也是最主要的三个模型。HMM首先出现。MEMM其次,CRF最后。三个算法主要思想例如以下:

  • HMM模型是对转移概率和表现概率直接建模,统计共现概率。
  • MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率。但MEMMeasy陷入局部最优,是由于MEMM仅仅在局部做归一化。
  • RF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布。而不是只在局部归一化,这样就攻克了MEMM中的标记偏置(label bias)的问题。

举个样例。对于一个标注任务,“我爱北京天安门“,

                                 标注为” s s  b  e b c e”

  • 对于HMM的话,其推断这个标注成立的概率为 P= P(s转移到s)*P(‘我’表现为s)* P(s转移到b)*P(‘爱’表现为s)* …*P().训练时。要统计状态转移概率矩阵和表现矩 阵。
  • 对于MEMM的话。其推断这个标注成立的概率为 P= P(s转移到s|’我’表现为s)*P(‘我’表现为s)* P(s转移到b|’爱’表现为s)*P(‘爱’表现为s)*..训练时,要统计条件状态转移概率矩阵和表现矩阵。

  • 对于CRF的话,其推断这个标注成立的概率为 P= F(s转移到s,’我’表现为s)….F为一个函数,是在全局范围统计归一化的概率而不是像MEMM在局部统计归一化的概率。

当前。最后出现的CRF在多项任务上达到了统治级的表现,所以假设重头搞应用的话。大家能够首选CRF。本质上。CRF有下面三个长处:

  • CRF没有HMM那样严格的独立性如果条件。因而能够容纳随意的上下文信息。

    特征设计灵活(与ME一样)   ————与HMM比較

  • 同一时候,因为CRF计算全局最优输出节点的条件概率。它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。

    ­­————与MEMM比較

  • CRF是在给定须要标记的观察序列的条件下。计算整个标记序列的联合概率分布。而不是在给定当前状态条件下。定义下一个状态的状态分布。

凡事都有两面,正因为这些长处,CRF须要训练的參数很多其它,与MEMM和HMM相比,它存在训练代价大、复杂度高的缺点。

那么,到底什么是标记偏置问题呢?还是看个实际样例吧!

基于上图各边上的转移概率简单进行计算可得每条路径的概率例如以下:

  • 路径1-1-1-1的概率:0.4*0.45*0.5=0.09
  • 路径2-2-2-2的概率:0.2*0.3*0.3=0.018
  • 路径1-2-1-2的概率:0.6*0.2*0.5=0.06
  • 路径1-1-2-2的概率:0.4*0.55*0.3=0.066

由此。可知最优路径为1-1-1-1. 然而。细致观察可发现上图中stat1 中每一个结点都倾向于转移到stat2。这明显是和直觉不相符的。这就是所谓的标注偏置问题。实际上。造成这一问题的根本原因是每一个节点分支数不同。因为MEMM的局部归一化特性,使得转出概率的分布不均衡。终于导致状态的转移存在不公平的情况。

怎么解决这样的问题呢?先介绍一个最直观的最粗暴的解决方法,由于我们知道是由于概率分布不均导致的,能够简单把每一个节点转出概率和为1的限制去掉。比方我们简单把上图中stat2中每一个结点出发的边的概率值×10,又一次计算每条路径的概率例如以下:

  • 路径1-1-1-1的概率:0.4*0.45*0.5=0.09
  • 路径2-2-2-2的概率:2*3*3=18
  • 路径1-2-1-2的概率:0.6*2*5=6
  • 路径1-1-2-2的概率:0.4*0.55*3=0.66

由此可得最优路径是2-2-2-2, 这就攻克了MEMM的标记偏置问题。

当然这种方法太粗暴了。CRF则是利用一种全局的优化思路来定向解决的。

至此,这三个算法的差别和联系基本算讲清晰了。以下从机器学习中的概率图角度来看怎样区分三者的差别呢?以下这三个图很清晰地展示了之间的差别和联系。

上图非常好诠释了HMM模型中存在两个如果:一是输出观察值之间严格独立,二是状态的转移过程中当前状态仅仅与前一状态有关(一阶马尔可夫模型)。

上图说明MEMM模型克服了观察值之间严格独立产生的问题,可是因为状态之间的如果理论,使得该模型存在标注偏置问题。

上图显示CRF模型攻克了标注偏置问题,去除了HMM中两个不合理的如果。

当然,模型对应得也变复杂了。

最后,假设要想细致研究下这三个算法发展历程的话,请接着阅读下面部分。

HMM模型将标注任务抽象成马尔可夫链。一阶马尔可夫链式针对相邻标注的关系进行建模,当中每一个标记相应一个概率函数。HMM是一种产生式模型,定义了联合概率分布p(x,y) ,当中x和y分别表示观察序列和相相应的标注序列的随机变量。为了可以定义这样的联合概率分布,产生式模型须要枚举出全部可能的观察序列,这在实际运算过程中非常困难。所以我们可以将观察序列的元素看做是彼此孤立的个体, 即如果每一个元素彼此独立(和naive bayes类似),不论什么时刻的观察结果仅仅依赖于该时刻的状态。

HMM模型的这个如果前提在比較小的数据集(也不全是吧)上是合适的。但实际上在大量真实语料中观察序列很多其它的是以一种多重的交互特征形式表现的。观察元素之间广泛存在长程相关性。比如,在命名实体识别任务中,因为实体本身结构所具有的复杂性,利用简单的特征函数往往无法涵盖全部特性,这时HMM的如果前提使得它无法使用复杂特征(它无法使用多于 一个标记的特征。)。这时HMM的弊端就显现无疑了。突破这一瓶颈的方法就是引入最大熵模型。以下,我们简介下这个模型,大家会发现ME和HMM具有天然的杂交优势,不结合天理不容哈。呵呵。

我们知道最大熵模型能够使用随意的复杂相关特征,在性能上也超过了Bayes分类器。最大熵模型的长处:首先,最大熵统计模型获得的是全部满足约束条件的模型中信息熵极大的模型; 其次。最大熵统计模型能够灵活地设置约束条件,通过约束条件的多少能够调节模型对未知数据的适应度和对已知数据的拟合程度; 再次。它还能自然地攻克了统计模型中參数平滑的问题。最大熵模型的不足:首先,最大熵统计模型中二值化特征仅仅是记录特征的出现是否。而文本分类须要知道特征的强度。因此。它在分类方法中不是最优的; 其次,因为算法收敛的速度较慢,所以导致最大熵统计模型它的计算代价较大。时空开销大; 再次,数据稀疏问题比較严重。最致命的是,作为一种分类器模型,最大熵对每一个词都是单独进行分类的,标记之间的关系无法得到充分利用。然而,具有马尔可夫链的HMM模型能够建立标记之间的马尔可夫关联性,这是最大熵模型所没有的。

好了,如今是时候隆重介绍杂交后的最大熵马尔科夫模型(MEMM)。简单来说,MEMM把HMM模型和maximum-entropy模型的长处集合成一个统一的产生式模型,这个模型同意状态转移概率依赖于序列中彼此之间非独立的特征上,从而将上下文信息引入到模型的学习和识别过程中,达到了提高识别的准召率的效果。有实验证明,MEMM在序列标注任务上表现的比 HMM和无状态的最大熵模型要好得多。然而,如上面所述。MEMM并不完美,它存在明显的标记偏置问题。

于是CMU的教授 John Lafferty提出了更先进的CRF模型。

CRF模型具有下面特点:(1)CRF在给定了观察序列的情况下。对整个的序列的联合概率有一个统一的指数模型,它具备一个比較吸引人的特性就是其损失函数的凸面性;(2)CRF具有非常强的推理能力,而且可以使用复杂、有重叠性和非独立的特征进行训练和推理,可以充分地利用上下文信息作为 特征,还可以随意地加入其它外部特征。使得模型可以获取的信息非常丰富;(3)CRF攻克了MEMM中的标记偏置问题。这也正是CRF与MEMM的本质差别所在—-最大熵模型在每一个状态都有一个概率模型,在每一个状态转移时都要进行归一化。假设某个状态仅仅有一个兴许 状态,那么该状态到兴许状态的跳转概率即为1。这样,无论输入为不论什么内容,它都向该兴许状态跳转。而CRFs是在全部的状态上建立一个统一的概率模型。这 样在进行归一化时,即使某个状态仅仅有一个兴许状态,它到该兴许状态的跳转概率也不会为1。

最后,我们简单汇总下实际应用中大放异彩的CRF的优缺点来结束本文。

CRF模型的长处:首先,CRF模型在结合多种特征方面的存在优势。其次。它避免了标记偏置问题。再次,CRF的性能更好,对特征的融合能力更强。

CRF 模型的不足:首先,特征的选择和优化是影响结果的关键因素。特征选择问题的好与坏,直接决定了系统性能的高低;其次,训练模型的时间比ME更长,且获得的模型非常大。在一般的PC机上可能无法执行。

【1】http://ssli.ee.washington.edu/people/duh/projects/CRFintro.pdf

【2】http://blog.csdn.net/zhoubl668/article/details/7787690

【3】http://blog.csdn.net/caohao2008/article/details/4242308

【4】http://www.cnblogs.com/549294286/archive/2013/06/06/3121761.html

【5】 www.cs.cmu.edu/~epxing/Class/10801-07/lectures/note7.pdf ‎

“大型票务系统”和“实物电商系统”的系统边界之间的差别与联系

讨论请移步至:http://www.zhiliaotech.com/ideajam/idea/detail/118相关文章:《今天你买到票了吗?——从铁道部12306.cn站点漫谈电子商务站点的“海量事务快速处理”系统》不能简单套用“实物电商系统”对“大型票务系统”做需求分析... 查看详情

微信服务号订阅号和企业号的差别(运营和开发两个角度)

一、运营的角度1.1、概括订阅号:微信最初的形态是一个纯粹的社交工具,也就是人与人之间的联系工具,当中又分熟人之间的联系和陌生人之间的联系。于是就诞生了朋友圈和订阅号。而订阅号的作用就是媒体社交。订阅号最... 查看详情

同样是删用户,为啥还有差别?(代码片段)

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源在MySQL当中,对于删除用户的操作大家并不陌生,先来看看问题:#创建用户testuser01mysql>createuser'testuser01'@'%'identifiedby'T... 查看详情

同样是删用户,为啥还有差别?(代码片段)

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源在MySQL当中,对于删除用户的操作大家并不陌生,先来看看问题:#创建用户testuser01mysql>createuser'testuser01'@'%'identifiedby'T... 查看详情

傅立叶变换的深入理解转载数字信号处理

...1变换的目的,意义,应用。2傅里叶级数与傅里叶变换的差别和联系3连续傅里叶变换,离散时间傅里叶变换,离散傅里叶变换,序列的傅里叶变换,各自的定义,差别,联系。3高速傅里叶变换的实质,经常使用的算法之间的差... 查看详情

http/tcp/ipudpsocket等区别联系

...层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次 查看详情

java中nio与io的区别与联系

一区别于联系avaNIO和IO之间的主要差别:IO                     NIO 面向流               面向缓冲 阻塞IO              非阻塞IO 无                   选择器1.面向流与面向缓冲JavaNIO和IO之间第... 查看详情

dom和bom的区别与联系

... DOM在各自浏览器上的实现;[表现为不同浏览器定义有差别,实现方式不同]3.window 是 BOM对象,而非js对象;DOM(文档对象模型)是HTM 查看详情

数字孪生与元宇宙:虚拟与现实的奇妙对话

元宇宙和数字孪生是两种概念,存在差别和联系。概念(1)元宇宙(Metaverse)是一个虚拟的三维世界,由数字内容和物理世界中的现实空间相互交织而成,能够提供各种虚拟体验,例如虚拟现实、增强现实、虚拟社交、虚拟经... 查看详情

nrf51802和nrf51822的区别于联系

51802QFAA与51822QFAA在FLASH跟RAM的容量没有差别;区别在于:a,接收灵敏度51802是-91dBm;51822是-93dBm,这个差异导致接收距离有差异;b,TxPower@省电模式51822是-35dBm,51802是-30dBm;这个导致芯片的发射的功耗不同;51822的功耗更低c,OdBm@DC/DC供电... 查看详情

数据仓库与数据挖掘的关系,区别与联系

...数据仓库提供了广泛的技术支持。数据仓库与数据挖掘的差别(1)数据仓库是一种数据存储和数据组织技术,提供数据源。(2)数据挖掘是一种数据分析技术,可针对数据仓库中的数据进行分析。 参考技术B先百度数据仓库,在百度数... 查看详情

矩阵连乘问题

...动态规划好像和分治法相差无几,但是两者还是有着一些差别的,分治法分解的子问题中,子问题互相之间是没有联系的,就是子问题是互相独立的,但是动态规划则不同,子问题之间是有联系的,甚至同一个子问题要被求解多... 查看详情

swiftui之深入解析@stateobject@observedobject和@environmentobject的联系和区别(代码片段)

...在应用程序中存储状态的方法,但它们之间有细微的差别,为了正确地使用它们,理解它们之间的差别是很重要的。处理state的最简单的方法是@State属性包装器,使用如下:structContentView:View@Stateprivatevarta... 查看详情

对比分析(代码片段)

...ine#1、绝对数比较→相减#相互对比的指标在量级上不能差别过大#(1)折线图比 查看详情

指针和引用的差别

查看详情

service和controller差别

service 层能够看做是还有一个DAO层,仅仅是在里面封装了还有一些逻辑。而 Controller和 service差别就大了。Controller要处理请求映射, service不会。 查看详情

vimi和a差别

i是当前位置插入a是当前文字的后面插入 查看详情

div中display和visibility属性差别

DIV中display和visibility属性差别DIV中display和visibility属性差别还是挺大的,虽然Visibility和Display属性都可以达到隐藏页面元素的目的,但它们的区别在于如何回应正常文档流本节向大家描述一下DIV中display和visibility的差别,visibility属... 查看详情