ANN:ML方法与概率图模型
一、ML方法分类:
产生式模型和判别式模型
假定输入x,类别标签y
(1,0), (1,0), (2,0), (2, 1)
产生式模型:
p(x,y):
P(1, 0) = 1/2,
P(1, 1) = 0 ,
P(2, 0) = 1/4,
P(2, 1) = 1/4.
P(y|x):
P(0|1) = 1,
P(1|1) = 0,
P(0|2) = 1/2,
P(1|2) = 1/2
判别式模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
判别式模型:有限样本==》判别函数=预测模型 ==》预测
概率图模型:
马尔科夫性质:
二、CRF:
条件随机场模型是由Lafferty在2001年提出的一种典型的判别式模型。它在观测序列的基础上对目标序列进行建模,重点解决序列化标注的问题。条件随机场模型既具有判别式模型的优点,又具有产生式模型考虑到上下文标记间的转移概率,以序列化形式进行全局参数优化和解码的特点,解决了其他判别式模型(如最大熵马尔科夫模型)难以避免的标记偏置问题。
条件随机场理论(CRFs)可以用于序列标记、数据分割、组块分析等自然语言处理任务中。在中文分词、中文人名识别、歧义消解等汉语自然语言处理任务中都有应用,表现很好。目前基于CRFs的主要系统实现有CRF,FlexCRF,CRF++。缺点:训练代价大、复杂度高
三、HMM、MEMM、CRF区别和联系:
原文链接:http://1.guzili.sinaapp.com/?p=133
隐马尔可夫模型(Hidden Markov Model,HMM),最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)以及条件随机场(Conditional Random Field,CRF)是序列标注中最常用也是最基本的三个模型。HMM首先出现,MEMM其次,CRF最后。
三个算法主要思想如下:
- HMM模型是对转移概率和表现概率直接建模,统计共现概率。
- MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,但MEMM容易陷入局部最优,是因为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,这明显是和直觉不相符的。( 因为状态2可以转换的状态比状态1要多,从而使转移概率降低;即MEMM倾向于选择拥有更少转移的状态)
这就是所谓的标注偏置问题。实际上,造成这一问题的根本原因是每个节点分支数不同,由于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
ANN:ML方法与概率图模型的更多相关文章
- 概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- 机器学习 —— 概率图模型(Homework: MCMC)
除了精确推理之外,我们还有非精确推理的手段来对概率图单个变量的分布进行求解.在很多情况下,概率图无法简化成团树,或者简化成团树后单个团中随机变量数目较多,会导致团树标定的效率低下.以图像分割为例,如果 ...
- 机器学习 —— 概率图模型(Homework: Exact Inference)
在前三周的作业中,我构造了概率图模型并调用第三方的求解器对器进行了求解,最终获得了每个随机变量的分布(有向图),最大后验分布(双向图).本周作业的主要内容就是自行编写概率图模型的求解器.实际上,从根本 ...
- 机器学习 —— 概率图模型(Homework: StructuredCPD)
Week2的作业主要是关于概率图模型的构造,主要任务可以分为两个部分:1.构造CPD;2.构造Graph.对于有向图而言,在获得单个节点的CPD之后就可依据图对Combine CPD进行构造.在获得C ...
- 机器学习 —— 概率图模型(Homework: Factors)
Talk is cheap, I show you the code 第一章的作业主要是关于PGM的因子操作.实际上,因子是整个概率图的核心.对于有向图而言,因子对应的是CPD(条件分布):对无向图而 ...
- PGM:概率图模型Graphical Model
http://blog.csdn.net/pipisorry/article/details/51461878 概率图模型Graphical Models简介 完全通过代数计算来对更加复杂的模型进行建 ...
- 学习ML.NET(2): 使用模型进行预测
训练模型 在上一篇文章中,我们已经通过LearningPipeline训练好了一个“鸢尾花瓣预测”模型, var model = pipeline.Train<IrisData, IrisPre ...
- 深度学习 vs. 概率图模型 vs. 逻辑学
深度学习 vs. 概率图模型 vs. 逻辑学 摘要:本文回顾过去50年人工智能(AI)领域形成的三大范式:逻辑学.概率方法和深度学习.文章按时间顺序展开,先回顾逻辑学和概率图方法,然后就人工智能和机器 ...
- 概率图模型(PGM)综述-by MIT 林达华博士
声明:本文转载自http://www.sigvc.org/bbs/thread-728-1-1.html,个人感觉是很好的PGM理论综述,高屋建瓴的总结了PGM的主要分支和发展趋势,特收藏于此. “概 ...
随机推荐
- BZOJ 4327 [JSOI2012]玄武密码 (AC自动机)
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=4327 题解: 做法挺显然,建出AC自动机之后在上面跑,标记所有走过的点,然后再进行递推 ...
- 微信公众号:1-IDHTTP控件:GET/POST 请求获取access_token
(图来源于方蓓?) 首先要理解公众号的流程.通过图知道,我们要:1.你要有个web服务器,用于和微信服务器通讯.你的web服务器必须让微信服务器能找到.2.通信要求按照微信公众号开发要求的格式提供相关 ...
- vue监听数组中某个属性,计算其他属性问题
今天在项目开发中遇到一个根据数组中某个属性变化同时更新另一个属性变化的问题,刚开始代码如下 this.weekList1=r.data.roomProducts; this.weekList1.map ...
- Ubuntu 安装有道词典
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51302546 官网首页:有道词典 其中 ...
- RestEasy 用户指南----第7章 @HeaderParam
转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...
- 开启mysql远程连接
mysql默认只允许本地连接,也就是说,在安装完mysql后会存在两个root账户,他们的host分别是localhost和127.0.0.1 use mysql; update user set h ...
- Android Gallery2源代码分析
打开图库中图片为什么从模糊变清晰 1. 有一点要明白,图片要进行显示,首先要先将图片进行decode,然后才干显示 2. 图片decode须要时间,越大的图片,细节越多的图片,那么它decode时间就 ...
- Codeforces Round #388 (Div. 2) C. Voting
题意:有n个人,每个人要么是属于D派要么就是R派的.从编号1开始按顺序,每个人都有一次机会可以剔除其他任何一个人(被剔除的人就不在序列中也就失去了剔除其他人的机会了):当轮完一遍后就再次从头从仅存的人 ...
- linux面试之--堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在须要的时候分配,在不须要的时候自己主动清除的变量的存储区.里面的变量一般是局部变量.函数參数等.在一个进程中.位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用.和堆 ...
- WCF学习笔记——不支持内容类型 text/xml; charset=utf-8
我在使用WCF的时候,客户端运行报错: 不支持内容类型 text/xml; charset=utf-8 原因是WCF服务做了修改.刷新客户端的服务引用,问题消失 =================== ...