生成模型(Generative)和判别模型(Discriminative)

  1. 引言
   最近看文章《A survey of appearance models in visual object tracking》(XiLi,ACMTIST,2013),在文章的第4节第1段有这样的描述,“Recently,visualobject tracking has been posed as a tracking-by-detectionproblem, where statistical modeling is dynamically performed to support object detection. According to the model-construction mechanism, statistical modeling is classified into three categories, includinggenerative, discriminative, and hybrid generative-discriminative.”随后又再以前看的《Fast Compressive Tracking》(Kaihua Zhang,PAMI,2014)的第2节第1段找到相应的话,“Recent surveys of object tracking can be found in [22]-[24],In this section, we briefly review the most relevant literature of on-line object tracking. In general,tracking algorithms can be categorized as either generative ordiscriminative based on their appearance models.”类似还有很多,每次看到都会有点模糊,感觉心中没底,所以就找了些资料总结了下,有不对的地方还请大家指正。
 
 2.  概念
 
    监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出。这个模型一般形式为决策函数Y=f(X)或者条件概率分布P(Y|X)。可以参考《机器学习方法概论1》、《机器学习方法概论2》来进行系统的理解。其中这个模型的分类有很多种,有一种分类就把模型分为:Generative Modeling (生成模型)Discriminative Modeling (判别模型)两种,后面简称GMDM。GM是由训练数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
                                 
之所以叫生成模型,是因为模型表示了给定输入X产生输出Y的生成关系[1]。典型的生成模型有:朴素贝叶斯和隐马尔科夫模型。判别模型是由训练数据直接学习决策函数f(X)或者条件概率分布P(X,Y)作为预测的模型,模型关心的是对给定的输入X,应该预测什么样的输出Y,与GM的不同在于不需要先学习出联合分布P(X,Y)。典型的判别模型有:k近邻法、感知机、决策树、逻辑回归、最大熵、SVM、AdaBoost条件随机场等。
 
 3.  扩展
 
   根据贝叶斯公式,我们知道P(X,Y)=P(X|Y)P(Y)=P(Y|X)P(X),所以生成模型也可以表示成:P(Y|X)=P(X|Y)P(Y)/P(X),其中P(X|Y)是X的后验概率,P(Y)为先验概率,其实条件概率P(Y|X)也是后验概率,条件概率和后验概率是相同的式子,只是表述不同,具体如下:P(Y|X)是已知X发生后Y的条件概率,也由于得自X的取值而被称作是Y的后验概率;P(X|Y)是已知Y发生后X的条件概率,也由于得自Y的取值而称作X的后验概率。所以监督模型中的我们要求解的条件概率其实是已知输入X发生后输出Y的条件概率。而我们现在用P(Y|X)=P(X|Y)P(Y)/P(X)这个公式,首先求解的是P(X|Y),所以有些地方也说对P(X|Y)建模为GM(当然也要求P(Y)和P(X)),对P(Y|X)直接建模为DM;意思其实是一样的,以为GM中先对P(X|Y)建模后,可以求出联合分布P(X,Y)=P(X|Y)P(Y),仍可以说是求联合分布为GM。例如:X=吸烟的人,Y=得肺癌的几率,对P(Y|X)建模可能非常复杂,而对P(X|Y)建模就比较容易,因为对P(X|Y)建模就好像在得肺癌的人里面看吸烟人的情况。我们都知道吸烟的人数亿亿计,但得肺癌的人毕竟是少数,建模从得肺癌的人出发,更加容易,比如10万个得肺癌的,抽样1000个就差不多了。所以不能一概说哪个不好哪个好,要看在什么情况下,比如考虑先验概率P(X)和P(Y)比较难求后呢?所以具体情况下考虑用哪种模型。
    DM 关注于X和Y的关系,或者说在给定某个X的情况下所对应的Y应该满足的规律或分布;而GM则试图描述X和Y的联合分布
    
 4.  特点及对比

在监督学习中,两种方法各有优缺点,适合于不同条件的学习问题。

GM特点:生成方法学习联合分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪[2]。生成方法可以原出联合概率分布分布P(X,Y),而判别方法不能。生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型,当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用[1]。

DM特点:判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X),不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异[2]。直接面对预测,往往学习的准确率更高。由于直接学习P(Y|X)或f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题[1]。

pluskid的主要是通过朴树贝叶斯和逻辑回归进行GM和DM的对比[3],讲的感觉有点深,能力即知识点有限,很多看不懂。但是里面的对比感觉还是有道理的。他说,Naive Bayes 需要同时对输入X和输出Y进行建模,得到联合分布P(X,Y),因此是生成模型。由于X是个比较复杂的东西,建模起来很痛苦,于是 Naive Bayes 不得不做了很强的假设,从此一辈子戴上了 “Naive” 的帽子。一般来说,DM 比 GM 看起来更诱人一些,特别是我们的目标就是分类的时候,DM 直接建模 P(Y|X)进行分类,而 GM 则先建模P(X,Y)然后再通过该模型计算P(Y|X)进行分类。首先P(X,Y)的估计本身会很困难,需要的计算量和训练数据量都会非常巨大,像 Naive Bayes 那样为了使得模型复杂度被控制在可以处理的范围内就不得不做了非常强的假设。如果X严重违背了独立性假设的话,Naive Bayes 的性能有可能会受到严重影响。比如,在自然语言处理中分析句子的语法树的时候,为了提高性能通常会使用一些冗余度和相关性非常高的特征,这个时候如果使用独立性假设很强的 GM 来处理,效果就不好,但如果不做很强的独立性假设,模型的复杂度又会指数级别增长,很快就无法处理了。

5.  形象的例子

 

    任务是识别一个语音属于哪种语言。例如对面一个人走过来,和你说了一句话,你需要识别出她说的到底是汉语、英语还是法语等。那么你可以有两种方法达到这个目的:

1、学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了,我指的学会是你知道什么样的语音对应什么样的语言。然后再有人过来对你哄,你就可以知道他说的是什么语音。这就是GM。

2、不去学习每一种语言,你只学习这些语言模型之间的差别,然后再分类。意思是指我学会了汉语和英语等语言的发音是有差别的,我学会这种差别就好了。这就是DM。[2]

对于跟踪算法,生成模型:一般是学习一个代表目标的模型,然后通过它去搜索图像区域,然后最小化重构误差。类似于生成模型描述一个目标,然后就是模式匹配了,在图像中找到和这个模型最匹配的区域,就是目标了。判别模型:将跟踪问题看成一个二分类问题,然后找到目标和背景的决策边界。它不管目标是怎么描述的,那只要知道目标和背景的差别在哪,然后你给一个图像,它看它处于边界的那一边,就归为哪一类。

[1] 李航,《统计学习方法》,第1章,1.7节
[2] ZouXY,《生成模型与判别模型》,第3节、第5节

生成模型(Generative)和判别模型(Discriminative)的更多相关文章

  1. 生成模型(Generative Model)和 判别模型(Discriminative Model)

    引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...

  2. 生成模型(Generative Model)与判别模型(Discriminative Model)

    摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...

  3. 生成模型(generative model)与判别模型(discriminative model)的区别

    监督学习可以分为生成方法与判别方法,所学到的模型可以分为生成模型与判别模型. 生成模型 生成模型由数据学习联合概率分布\(P(X,Y)\),然后求出条件概率分布\(P(Y|X)\)作为预测的模型,即生 ...

  4. PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)

    主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...

  5. 生成模型 VS 判别模型 (含义、区别、对应经典算法)

      从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布.能够学习到数据生成的机制 ...

  6. 产生式模型(生成式模型)与判别式模型<转载>

    转自http://dongzipnf.blog.sohu.com/189983746.html 产生式模型与判别式模型 产生式模型(Generative Model)与判别式模型(Discrimiti ...

  7. 生成模型(Generative Model)Vs 判别模型(Discriminative Model)

      概率图分为有向图(bayesian network)与无向图(markov random filed).在概率图上可以建立生成模型或判别模型.有向图多为生成模型,无向图多为判别模型. 判别模型(D ...

  8. tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!

    GAN:通过 将 样本 特征 化 以后, 告诉 模型 哪些 样本 是 黑 哪些 是 白, 模型 通过 训练 后, 理解 了 黑白 样本 的 区别, 再输入 测试 样本 时, 模型 就可以 根据 以往 ...

  9. 机器学习理论基础学习3.4--- Linear classification 线性分类之Gaussian Discriminant Analysis高斯判别模型

    一.什么是高斯判别模型? 二.怎么求解参数?

随机推荐

  1. jsonp的使用

    假设我们已经了解什么是同源策略,以及什么是浏览器的同源策略的限制. 现在我们需要在a.demo.com下的某个页面one.html 里加载不同域b.demo.com下的json数据. 我们都知道用&l ...

  2. Oracle SQL explain/execution Plan

    From http://blog.csdn.net/wujiandao/article/details/6621073 1. Four ways to get execution plan(anyti ...

  3. 不在折腾----zookeeper-3.4.5

    上传zk安装包 解压 配置(先在一台节点上配置) * 添加一个zoo.cfg配置文件 $ZOOKEEPER/conf mv zoo_sample.cfg zoo.cfg * 修改配置文件(zoo.cf ...

  4. ubuntu的一些常用命令,测试版本:Ubuntu 12.04.5 LTS

    最近配置了一台Linux服务器,选用的是Ubuntu 12.04.5 LTS版本. 把之前放在Windows Server 2003上的网站移到了现在的服务器上,给我的感受用一个字形容:真JB快! 网 ...

  5. SQL Server 2014连接不到服务器解决方法

    多半是不小心使用qq管家之类软件加速系统时把SQL Server(MSSSQL)不小心关闭了 解决方法如下(以WIN8为例):

  6. ZOJ 2048 highways

    题目 比我想象地要容易很多..一开始想得太复杂了,本来想试一下kruskal算法的,嫌麻烦..还是用了之前1203的prim算法...以为要注意这道题的输出顺序,结果不用,直接输出就可以了,就是注意一 ...

  7. Python’s SQLAlchemy vs Other ORMs[转发 6]SQLAlchemy

    SQLAlchemy SQLAlchemy is an open source SQL toolkit and ORM for the Python programming language rele ...

  8. gulp教程之gulp-minify-css

    简介: 使用gulp-minify-css压缩css文件,减小文件大小,并给引用url添加版本号避免缓存.重要:gulp-minify-css已经被废弃,请使用gulp-clean-css,用法一致. ...

  9. 关于MySql has gone away问题的解决

    everybody 是否导入数据库的时候 导的导的 就会出现这个错误呢,这个错误的原因是你的数据库有点大,数据有点多,导入时间过长与服务器失去连接了,让我们看下咋解决把. 如果用的是xampp 修改m ...

  10. a 标签中调用js的几种方法 文章摘自他人

    我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题 ...