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

https://www.cnblogs.com/realkate1/p/5683939.html

生成模型(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节

[3] Freemind, 《Discriminative Modeling vs Generative Modeling

[4] 《判别模型、生成模型与朴素贝叶斯方法

原文地址:https://www.cnblogs.com/focus-z/p/10759791.html

时间: 2024-10-22 14:15:23

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

生成模型和判别模型(转)

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

生成模型与判别模型(转)

生成模型与判别模型 [email protected] http://blog.csdn.net/zouxy09 一直在看论文的过程中遇到这个问题,折腾了不少时间,然后是下面的一点理解,不知道正确否.若有错误,还望各位前辈不吝指正,以免小弟一错再错.在此谢过. 一.决策函数Y=f(X)或者条件概率分布P(Y|X) 监督学习的任务就是从数据中学习一个模型(也叫分类器),应用这一模型,对给定的输入X预测相应的输出Y.这个模型的一般形式为决策函数Y=f(X)或者条件概率分布P(Y|X).      

【转载】先验概率与后验概率,生成模型与判别模型

[注]事情还没有发生,要求这件事情发生的可能性的大小,是先验概率.事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,是后验概率 Generative Model 与 Discriminative Model [摘要]    - 生成模型(Generative Model) :无穷样本==>概率密度模型 = 产生模型==>预测- 判别模型(Discriminative Model):有限样本==>判别函数 = 预测模型==>预测 [简介] 简单的说,假设o是观察值,

【机器学习基础】生成模型和判别模型

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

判别模型和生成模型

我们有时称判别模型求的是条件概率,生成模型求的是联合概率. 常见的判别模型有线性回归.对数回归.线性判别分析.支持向量机.boosting.条件随机场.神经网络等. 常见的生产模型有隐马尔科夫模型.朴素贝叶斯模型.高斯混合模型.LDA.Restricted Boltzmann Machine等. 判别方法:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型.基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型. 生成方法:由数据学习联

生成模型和判别模型

对于输入x,类别标签Y: 判别模型:由数据直接学习决策面Y=f(x)或条件概率P(Y|x)作为预测模型 生成模型:由数据学习联合概率分布P(x,Y),然后求出条件概率P(Y|x)作为预测模型 模型区别: 判别模型寻找不同类别之间的分离面,反映不同类别之间的差异. 生成模型通过统计反映同类数据的相似度. 模型的优点和缺点: 判别模型主要缺点: 1,不能反映数据本身的特征 判别模型主要优点: 1,模型简单,容易学习. 2,分类性能好,分类边界灵活. 生成模型的主要缺点: 1,模型复杂 生成模型主要优

生成模型与判别模型

摘要: 1.定义 2.常见算法 3.区别 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标注数据序列指定一个联合概率分布(joint probability distribution).在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布.条件概率分布可以由生成模型根据贝叶斯准则形成  (参考自:中文wiki) 1

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

从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布.能够学习到数据生成的机制. 判别模型:学习得到条件概率分布P(y|x),即在特征x出现的情况下标记y出现的概率. 数据要求:生成模型需要的数据量比较大,能够较好地估计概率密度:而判别模型对数据样本量的要求没有那么多. 两者的优缺点如下图,摘自知乎 生成模型:以统计学和Bayes作为理论基础 1.朴素贝叶斯: 通过学习先验概率分

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

在前面的章节中,我们介绍过SVM.逻辑回归,这两者都属于监督学习中的一种,即训练数据的标签是给定的,我们希望通过对训练数据进行学习,这样对于给定的新样本数据,我们可以对它的类别标签进行预测.实际上,监督学习又可以分为两类,判别模型(Discriminative model)和生成模型(generative model),前面提到的SVM和逻辑回归都属于判别模型的一种.那么判别模型和生成模型有何区别? 1.1 判别模型和生成模型的区别 我们先来看以前讲过的SVM和逻辑回归(LR)有什么特点.这两者