引入

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

决策函数和条件概率分布

决策函数Y=f(X)

决策函数Y=f(X):你输入一个X,它就输出一个Y,这个Y与一个阈值比较,根据比较结果判定X属于哪个类别。例如两类(w1和w2)分类问题,如果Y大于阈值,X就属于类w1,如果小于阈值就属于类w2。这样就得到了该X对应的类别了。

条件概率分布P(Y|X)

你输入一个X,它通过比较它属于所有类的概率,然后输出概率最大的那个作为该X对应的类别。例如:如果P(w1|X)大于P(w2|X),那么我们就认为X是属于w1类的。

小结

两个模型都可以实现对给定的输入X预测相应的输出Y的功能。实际上通过条件概率分布P(Y|X)进行预测也是隐含着表达成决策函数Y=f(X)的形式的。
而同样,很神奇的一件事是,实际上决策函数Y=f(X)也是隐含着使用P(Y|X)的。因为一般决策函数Y=f(X)是通过学习算法使你的预测和训练数据之间的误差平方最小化,而贝叶斯告诉我们,虽然它没有显式的运用贝叶斯或者以某种形式计算概率,但它实际上也是在隐含的输出极大似然假设(MAP假设)。也就是说学习器的任务是在所有假设模型有相等的先验概率条件下,输出极大似然假设。

生成方法和生成模型

生成模型:无穷样本==》概率密度模型 = 产生模型==》预测

生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)=P(X,Y)/P(X)作为预测的模型。这样的方法之所以成为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。用于随机生成的观察值建模,特别是在给定某些隐藏参数情况下。典型的生成模型有:朴素贝叶斯法、马尔科夫模型、高斯混合模型。这种方法一般建立在统计学和Bayes理论的基础之上。

生成方法的特点

  • 从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度;
  • 生成方法还原出联合概率分布,而判别方法不能;
  • 生成方法的学习收敛速度更快、即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;
  • 当存在隐变量时,扔可以用生成方法学习,此时判别方法不能用

判别方法和判别模型

判别模型:有限样本==》判别函数 = 预测模型==》预测

判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。典型的判别模型包括:k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、boosting方法和条件随机场等。判别模型利用正负例和分类标签,关注在判别模型的边缘分布。

判别方法的特点

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

判别模型和生成模型对比

(1)训练时,二者优化准则不同
生成模型优化训练数据的联合分布概率;
判别模型优化训练数据的条件分布概率,判别模型与序列标记问题有较好的对应性。
(2)对于观察序列的处理不同
生成模型中,观察序列作为模型的一部分;
判别模型中,观察序列只作为条件,因此可以针对观察序列设计灵活的特征。
(3)训练复杂度不同
判别模型训练复杂度较高。
(4)是否支持无指导训练
生成模型支持无指导训练。
(5)本质区别
discriminative model 估计的是条件概率分布(conditional distribution)p(class|context)
generative model 估计的是联合概率分布(joint probability distribution)p()

另外,由生成模型可以得到判别模型,但由判别模型得不到生成模型。

对于跟踪算法

由于之前用Camshift方法做人脸的跟踪,这里看到了有关跟踪算法的说明,特此陈述一下。

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

参考资料

统计学习方法 李航著,清华大学出版社
CSDN博客 生成模型与判别模型

转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

作者:JasonDing
链接:https://www.jianshu.com/p/d195b887a32e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


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

判别模型(Discriminative Model),又可以称为条件模型,或条件概率模型。估计的是条件概率分布(conditional distribution),p(class|context)。利用正负例和分类标签,主要关心判别模型的边缘分布。其目标函数直接对应于分类准确率。 (判别模型多数放在分类

主要特点:寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。

优点:(1)分类边界更灵活,比使用纯概率方法或生产模型得到的更高级;(2)能清晰的分辨出多类或某一类与其他类之间的差异特征;(3)在聚类、视角变化、部分遮挡、尺度改变等方面效果较好;(4)适用于较多类别的识别;(5)判别模型的性能比生成模型要简单,比较容易学习。

缺点:(1)不能反映训练数据本身的特性,即能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来;(2)缺少生成模型的优点,即先验结构的不确定性;(3)黑盒操作,即变量间的关系不清楚,不可视。

常见的主要有:logistic regression、SVMs、traditional neural networks、Nearest neighbor、Conditional random fields。

主要应用:Image and document classification、Biosequence analysis、Time series prediction。

   生成模型(Generative Model),又叫产生式模型。估计的是联合概率分布(joint probability distribution),p(class, context)=p(class|context)*p(context)。用于随机生成的观察值建模,特别是在给定某些隐藏参数情况下。在机器学习中,或用于直接对数据建模(用概率密度函数对观察到的样本数据建模),或作为生成条件概率密度函数的中间步骤。通过使用贝叶斯规则可以从生成模型中得到条件分布。如果观察到的数据是完全由生成模型所生成的,那么就可以拟合生成模型的参数,从而仅可能的增加数据相似度。但数据很少能由生成模型完全得到,所以比较准确的方式是直接对条件密度函数建模,即使用分类或回归分析。与描述模型的不同是,描述模型中所有变量都是直接测量得到。
 
 
所以生成模型和判别模型的主要区别在于:添加了先验概率
 即:生成模型:p(class, context)=p(class|context)*p(context)
判别模型: p(class|context) 
 
 
     主要特点:(1)一般主要是对后验概率建模,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度;(2)只关注自己的类本身(即点左下角区域内的概率),不关心到底决策边界在哪。

优点:(1)实际上带的信息要比判别模型丰富;(2)研究单类问题比判别模型灵活性强;(3)模型可以通过增量学习得到;(4)能用于数据不完整(missing data)情况;(5)很容易将先验知识考虑进去。

缺点:(1)容易会产生错误分类;(2)学习和计算过程比较复杂。

常见的主要有:Gaussians、Naive Bayes、Mixtures of multinomials、Mixtures of Gaussians、Mixtures of experts、HMMs、Sigmoidal belief networks、Bayesian networks、Markov random fields。

主要应用:(1)传统基于规则的或布尔逻辑系统正被统计方法所代替;(2)医学诊断。

注:所列举的生成模型也可以用判决模型的方法来训练,比如GMM或HMM,训练的方法有EBW(Extended Baum Welch),或最近Fei Sha提出的Large Margin方法。

 
 
 过去的报告认为判别模型在分类问题上比生成表现更加好(比如Logistic Regression与Naive Bayesian的比较,再比如HMM与Linear Chain CRF的比较)。
 
当然,生成模型的图模型也有一些难以代替的地方,比如更容易结合无标注数据做semi-or-un-supervised learning。

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

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

    生成模型(Generative)和判别模型(Discriminative) 引言    最近看文章<A survey of appearance models in visual object ...

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

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

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

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

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

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

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

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

  6. 转Generative Model 与 Discriminative Model

    没有完全看懂,以后再看,特别是hmm,CRF那里,以及生成模型产生的数据是序列还是一个值,hmm应该是序列,和图像的关系是什么. [摘要]    - 生成模型(Generative Model) :无 ...

  7. Generative Model 与 Discriminative Model

      [摘要]    - 生成模型(Generative Model) :无穷样本==>概率密度模型 = 产生模型==>预测    - 判别模型(Discriminative Model): ...

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

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

  9. 生成式模型(generative) vs 判别式模型(discriminative)

    Andrew Ng, On Discriminative vs. Generative classifiers: A comparison of logistic regression and nai ...

随机推荐

  1. 006.FTP用户访问控制配置

    一 FTP控制文件 1.1 文件说明 /etc/vsftpd/ftpusers:黑名单,优先级高 #通常不修改此文件 /etc/vsftpd/user_list:黑名单,优先级相对低 注意:Linux ...

  2. 001.NTP简介

    一 NTP简介 ntp服务器顾名思义就是时间同步服务器(Network Time Protocol),时间同步对于计划备份.入侵检测记录.分布式任务调度或者事务订单管理来说都是非常有必要的日常任务. ...

  3. Mysql索引整理总结

    一.索引概述 1. 简介 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 举例说明索引:如果把数据库中的某一张看成一本书,那么索引就像是书的目录,可以通过 ...

  4. 送你一套纯净版的 SSM 架构

    大致介绍一下,目前 Java 中使用比较多的框架组合就是 Spring .Springmvc .Mybatis ,这 3 个框架也就是我们常说的 SSM. 前面陆陆续续也已经介绍完了这 3 个框架,今 ...

  5. python标准库--functools.partial

        官方相关地址:https://docs.python.org/3.6/library/functools.html 一.简单介绍: functools模块用于高阶函数:作用于或返回其他函数的函 ...

  6. JTAG Communications model

    https://en.wikipedia.org/wiki/Joint_Test_Action_Group In JTAG, devices expose one or more test acces ...

  7. Eclipse Mark Occurrences

    Mark Occurrences The Mark Occurrences feature enables you to see where an element is referenced by s ...

  8. SQL Server 2012 Always on Availability Groups安装

    http://blog.csdn.net/kevinsqlserver/article/details/7886455

  9. Revit API移动风管

    移动风管曲线就可以移动风管 , , ));//向上移动3         ts.Commit();         return Result.Succeeded;     } } url:http: ...

  10. C#内存映射文件消息队列实战演练(MMF—MQ)

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和 ...