生成模型(Generative)和判别模型(Discriminative)
最近看文章《
A survey of appearance models in visual object tracking》(
XiLi,ACMTIST,2013),在文章的第4节第1段有这样的描述,“Recently,visual
object 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, including
generative, 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 or
discriminative based on their appearance models.”相似还有不少,每次看到都会有点模糊,感受心中没底,因此就找了些资料总结了下,有不对的地方还请你们指正。
2.
概念
监督学习的任务就是
学习一个
模型,应用这一模型,对给定的输入预测相应的输出。这个模型通常形式为
决策函数Y=f(X)或者
条件几率分布P(Y|X)。能够参考《
机器学习方法概论1》、《
机器学习方法概论2》来进行系统的理解。其中这个模型的分类有不少种,有一种分类就把模型分为:
Generative Modeling (生成模型)和
Discriminative Modeling (判别模型)两种,后面简称
GM和
DM。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. 特色及对比
在监督学习中,两种方法各有优缺点,适合于不一样条件的学习问题。html
GM特色:生成方法学习联合分布P(X,Y),因此就能够从统计的角度表示数据的分布状况,可以反映同类数据自己的类似度。但它不关心到底划分各种的那个分类边界在哪[2]。生成方法能够原出联合几率分布分布P(X,Y),而判别方法不能。生成方法的学习收敛速度更快,即当样本容量增长的时候,学到的模型能够更快的收敛于真实模型,当存在隐变量时,仍能够用生成方法学习。此时判别方法就不能用[1]。算法
DM特色:判别方法直接学习的是决策函数Y=f(X)或者条件几率分布P(Y|X),不能反映训练数据自己的特性。但它寻找不一样类别之间的最优分类面,反映的是异类数据之间的差别[2]。直接面对预测,每每学习的准确率更高。因为直接学习P(Y|X)或f(X),能够对数据进行各类程度上的抽象、定义特征并使用特征,所以能够简化学习问题[1]。app
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. 形象的例子ide
任务是识别一个语音属于哪一种语言。例如对面一我的走过来,和你说了一句话,你须要识别出她说的究竟是汉语、英语仍是法语等。那么你能够有两种方法达到这个目的:函数
一、学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了,我指的学会是你知道什么样的语音对应什么样的语言。而后再有人过来对你哄,你就能够知道他说的是什么语音。这就是GM。性能
二、不去学习每一种语言,你只学习这些语言模型之间的差异,而后再分类。意思是指我学会了汉语和英语等语言的发音是有差异的,我学会这种差异就行了。这就是DM。[2]学习
对于跟踪算法,生成模型:通常是学习一个表明目标的模型,而后经过它去搜索图像区域,而后最小化重构偏差。相似于生成模型描述一个目标,而后就是模式匹配了,在图像中找到和这个模型最匹配的区域,就是目标了。判别模型:将跟踪问题当作一个二分类问题,而后找到目标和背景的决策边界。它无论目标是怎么描述的,那只要知道目标和背景的差异在哪,而后你给一个图像,它看它处于边界的那一边,就归为哪一类。ui
[1] 李航,《统计学习方法》,第1章,1.7节