一、ML方法分类:

        
产生式模型和判别式模型

假定输入x,类别标签y

        —  产生式模型(生成模型)估计联合概率P(x,y),因可以根据联合概率来生成样本:HMMs
        — 判别式模型(判别模型)估计条件概率P(y|x),因为没有x的知识,无法生成样本,只能判断分类:SVMs,CRF,MEM

一个举例:

  (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

o和s分别代表观察序列和标记序列
产生式模型: 构建o和s的联合分布p(s,o);
—判别式模型: 构建o和s的条件分布p(s|o);

—产生式模型中,观察序列作为模型的一部分;

    判别式模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
    产生式模型:无穷样本==》概率密度模型=产生模型==》预测

    判别式模型:有限样本==》判别函数=预测模型         ==》预测
    一般认为判别型模型要好于生成型模型,因为它是直接根据数据对概率建模,而生成型模型还要先求两个难度相当的概率。

概率图模型:
        概率图模型,用图的形式表示概率分布,—基于概率论中贝叶斯规则建立起来的,解决不确定性问题,可以用于人工智能、数据挖掘、 语言处理文本分类等领域,图模型是表示随机变量之间的关系的图,图中的节点表示随机变量,缺少边表示条件独立假设。因此可以对联合分布提供一种紧致表示。

根据边的方向性,有两种主要的图模型:
◦无向图:亦称马尔科夫随机场(MarkovRandom Fields,MRF’s)或马尔科夫网络(MarkovNetworks)
◦有向图:亦称贝叶斯网络(Bayesian        Networks)                   或信念网络(Belief Networks, BN’s).
◦还有混合图模型,有时称为链图(chaingraphs)

 —我们不妨拿种地来打个比方。其中有两个概念:位置(site),相空间(phasespace)。“位置”好比是一亩亩农田;“相空间”好比是种的各种庄稼。我们可以给不同的地种上不同的庄稼,这就好比给随机场的每个“位置”,赋予相空间里不同的值。所以,俗气点说,随机场就是在哪块地里种什么庄稼的事情。 
         简单地讲,随机场可以看成是一组随机变量的集合(这组随机变量对应同一个样本空间)。当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。
        当然,这些随机变量之间可能有依赖关系,一般来说,也只有当这些变量之间有依赖关系的时候,我们将其单独拿出来看成一个随机场才有实际意义。


马尔科夫性质:
        体现了一个思想:离当前因素比较遥远(这个遥远要根据具体情况自己定义)的因素对当前因素的性质影响不大。
        条件随机场模型是一种无向图模型,它是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。即给定观察序列O,求最佳序列S
 

二、CRF:

条件随机场模型是由Lafferty在2001年提出的一种典型的判别式模型。它在观测序列的基础上对目标序列进行建模,重点解决序列化标注的问题。条件随机场模型既具有判别式模型的优点,又具有产生式模型考虑到上下文标记间的转移概率,以序列化形式进行全局参数优化和解码的特点,解决了其他判别式模型(如最大熵马尔科夫模型)难以避免的标记偏置问题。

条件随机场理论(CRFs)可以用于序列标记数据分割组块分析等自然语言处理任务中。在中文分词、中文人名识别、歧义消解等汉语自然语言处理任务中都有应用,表现很好。目前基于CRFs的主要系统实现有CRF,FlexCRF,CRF++。缺点:训练代价大、复杂度高

—PreKnowledge:
—产生式模型和判别式模型(Generativemodel vs. Discriminative model)
—概率图模型
—隐马尔科夫模型
—最大熵模型

三、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方法与概率图模型的更多相关文章

  1. 概率图模型学习笔记:HMM、MEMM、CRF

    作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  2. 机器学习 —— 概率图模型(Homework: MCMC)

    除了精确推理之外,我们还有非精确推理的手段来对概率图单个变量的分布进行求解.在很多情况下,概率图无法简化成团树,或者简化成团树后单个团中随机变量数目较多,会导致团树标定的效率低下.以图像分割为例,如果 ...

  3. 机器学习 —— 概率图模型(Homework: Exact Inference)

    在前三周的作业中,我构造了概率图模型并调用第三方的求解器对器进行了求解,最终获得了每个随机变量的分布(有向图),最大后验分布(双向图).本周作业的主要内容就是自行编写概率图模型的求解器.实际上,从根本 ...

  4. 机器学习 —— 概率图模型(Homework: StructuredCPD)

    Week2的作业主要是关于概率图模型的构造,主要任务可以分为两个部分:1.构造CPD;2.构造Graph.对于有向图而言,在获得单个节点的CPD之后就可依据图对Combine CPD进行构造.在获得C ...

  5. 机器学习 —— 概率图模型(Homework: Factors)

    Talk is cheap, I show you the code 第一章的作业主要是关于PGM的因子操作.实际上,因子是整个概率图的核心.对于有向图而言,因子对应的是CPD(条件分布):对无向图而 ...

  6. PGM:概率图模型Graphical Model

    http://blog.csdn.net/pipisorry/article/details/51461878 概率图模型Graphical Models简介 完全通过代数计算来对更加复杂的模型进行建 ...

  7. 学习ML.NET(2): 使用模型进行预测

    训练模型 在上一篇文章中,我们已经通过LearningPipeline训练好了一个“鸢尾花瓣预测”模型, var model = pipeline.Train<IrisData, IrisPre ...

  8. 深度学习 vs. 概率图模型 vs. 逻辑学

    深度学习 vs. 概率图模型 vs. 逻辑学 摘要:本文回顾过去50年人工智能(AI)领域形成的三大范式:逻辑学.概率方法和深度学习.文章按时间顺序展开,先回顾逻辑学和概率图方法,然后就人工智能和机器 ...

  9. 概率图模型(PGM)综述-by MIT 林达华博士

    声明:本文转载自http://www.sigvc.org/bbs/thread-728-1-1.html,个人感觉是很好的PGM理论综述,高屋建瓴的总结了PGM的主要分支和发展趋势,特收藏于此. “概 ...

随机推荐

  1. 洛谷 P1308 统计单词数【字符串处理】

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  2. Python 6 数字和布尔值及字符串的基本功能

    数据类型:查看变量数据类型type(变量)  或者  print(type(变量)) 整数int:就是不带小数的自然数字,也叫整型.在2.X版本中还分为长整型和整形.但是在3.X版本中统一称为整数或整 ...

  3. [bzoj4636]蒟蒻的数列_线段树

    蒟蒻的数列 bzoj-4636 题目大意:给定一个序列,初始均为0.n次操作:每次讲一段区间中小于k的数都变成k.操作的最后询问全局和. 注释:$1\le n\le 4\cdot 10^4$. 想法: ...

  4. HDU 3247 Resource Archiver (AC自己主动机 + BFS + 状态压缩DP)

    题目链接:Resource Archiver 解析:n个正常的串.m个病毒串,问包括全部正常串(可重叠)且不包括不论什么病毒串的字符串的最小长度为多少. AC自己主动机 + bfs + 状态压缩DP ...

  5. .NET几大热点问题(.NET人员必读)

    下面收集了关于.NET几大热点问题及简要答案,防止我们回答问题不专业的尴尬.同一时候还将一些.NET资源的相关网址罗列一二. 一.什么是.Net?它主要包含什么?  .Net是为简化在第三代因特网的高 ...

  6. QueryString 地址栏参数

    MXS&Vincene  ─╄OvЁ  &0000002 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  7. C语言编程入门——程序练习(上)

    大家能够敲写一下以下的练习代码.看下执行结果,都非常easy.关键要理解. if: # include <stdio.h> int main(void) { int i = 1; i = ...

  8. Android自己定义组件系列【1】——自己定义View及ViewGroup

    View类是ViewGroup的父类,ViewGroup具有View的全部特性.ViewGroup主要用来充当View的容器.将当中的View作为自己孩子,并对其进行管理.当然孩子也能够是ViewGr ...

  9. jquery文件批量上传控件Uploadify3.2(java springMVC)

    人比較懒  有用为主 不怎么排版了 先放上Uploadify的官网链接:http://www.uploadify.com/  -->里面能够看到PHP的演示样例,属性说明,以及控件下载地址.分f ...

  10. DockPanelSuite中的DocumentStyle

    首先明确一个概念Mdi的完整词组:Multiple document interface namespace WeifenLuo.WinFormsUI.Docking { public enum Do ...