HMM MEMM CRF 差别 联系
声明:本文主要是基于网上的材料做了文字编辑,原创部分甚少。參考资料见最后。
隐马尔可夫模型(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
HMM MEMM CRF 差别 联系的更多相关文章
- HMM,MEMM,CRF模型
HMM,MEMM,CRF模型之间关系密切,需看: 参考文献: http://www.cnblogs.com/kevinGaoblog/p/3874709.html http://baike.baidu ...
- HMM,MEMM,CRF模型的比较
本文参考自:http://blog.csdn.net/happyzhouxiaopei/article/details/7960876 这三个模型都可以用来做序列标注模型.但是其各自有自身的特点,HM ...
- 生物信息之ME, HMM, MEMM, CRF
原文链接:http://bbs.sciencenet.cn/home.php?mod=space&uid=260809&do=blog&id=573755 注:有少量修改!如有 ...
- Logistic 最大熵 朴素贝叶斯 HMM MEMM CRF 几个模型的总结
朴素贝叶斯(NB) , 最大熵(MaxEnt) (逻辑回归, LR), 因马尔科夫模型(HMM), 最大熵马尔科夫模型(MEMM), 条件随机场(CRF) 这几个模型之间有千丝万缕的联系,本文首先会 ...
- 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!
DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!——和一个句子的分词算法CRF没有区别!注:传统DDos检测直接基于IP数据发送流量来识别, ...
- 条件随机场CRF HMM,MEMM的区别
http://blog.sina.com.cn/s/blog_605f5b4f010109z3.html 首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标 ...
- HMM MEMM & label bias
(http://blog.csdn.net/xum2008/article/details/38147425) 隐马尔科夫模型(HMM): 图1. 隐马尔科夫模型 隐马尔科夫模型的缺点: 1.HMM只 ...
- 标记偏置 隐马尔科夫 最大熵马尔科夫 HMM MEMM
隐马尔科夫模型(HMM): 图1. 隐马尔科夫模型 隐马尔科夫模型的缺点: 1.HMM仅仅依赖于每个状态和它相应的观察对象: 序列标注问题不仅和单个词相关,并且和观察序列的长度,单词的上下文,等等相关 ...
- LR、HMM、CRF和MaxEnt区别
LR:Logistic 是 Softmax 的特殊形式,多以如果 Softmax 与 MaxEnt 是等价的,则 Logistic 与 MaxEnt 是等价的. HMM模型: 将标注看作马尔可夫链,一 ...
随机推荐
- JQUERY杂技
JQUERY小技巧 this.value jsobject.val() #aaa:eq(2) 选择第三个id为aaa的元素 $("input")只选择input标签.如:<i ...
- Linux基础之Linux简介
Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码的类UNIX操作系统. Linux简介 Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码 ...
- 将模型储存到本地-FastCoder
// // ViewController.m // 模型转data储存 // // Created by 谭启宏 on 16/3/4. // Copyright © 2016年 tqh. All ri ...
- Welcome-to-Swift-23访问控制(Access Control)
访问控制可以限定你在源文件或模块中访问代码的级别,也就是说可以控制哪些代码你可以访问,哪些代码你不能访问.这个特性可以让我们隐藏功能实现的一些细节,并且可以明确的指定我们提供给其他人的接口中哪些部分是 ...
- C++ 错误解决 —— internal compiler error
问题: g++ 编译时,报错: g++: internal compiler error: Killed (program cc1plus) 出错原因: 出错的原因是(虚拟机)运行内存不足,而大量te ...
- python logger日志工具类
pytest命令行执行默认不会打印log信息,需要加‘-s’参数或者 ‘–capture=no’,即pytest -s #! /usr/bin/env python # coding=gbk impo ...
- uva 11732 (trie树)
题意:求N个字符串两两比较,共比较了多少次? #include<iostream> #include<cstring> #include<cstdio> using ...
- 【BZOJ1001】狼抓兔子(平面图最小割转最短路)
题意:有一张平面图,求它的最小割.N,M.表示网格的大小,N,M均小于等于1000. 左上角点为(1,1),右下角点为(N,M).有以下三种类型的道路 1:(x,y)<==>(x+1,y ...
- 如何发布第一个属于自己的npm包
原文:https://segmentfault.com/a/1190000013940567 什么是NPM? NPM是随同NodeJS一起安装的javascript包管理工具,能解决NodeJS代码部 ...
- jsp文件放在WebRoot下还是WebInfo下
观点一:(较为赞同) 安全性不是真正的原因,因为jsp是要解析后才显示到浏览器的,即使用户知道你jsp的路径,也不可能通过浏览器看到jsp源码的,而如果是通过其它手段入侵服务器的话,放在WEB-INF ...