作者: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。

作者:赏月斋
链接:http://www.cnblogs.com/sddai/p/9588349.html
來源:博客园
转载

引入

监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出。这一模型的一般形式为一个决策函数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方法做人脸的跟踪,这里看到了有关跟踪算法的说明,特此陈述一下。

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

转载于:https://www.cnblogs.com/Harriett-Lin/p/9621107.html

生成模型和判别模型直接的区别相关推荐

  1. 生成模型与判别模型的区别

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

  2. 生成模型与判别模型的区别与理解

    一.判别方法与生成方法 监督学习方法可分为判别方法和生成方法. 判别方法(Discriminative approach) 由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型 ...

  3. 生成模型与判别模型区别

    概念理解 监督学习方法可分为两大类,即生成方法与判别方法,它们所学到的模型称为生成模型与判别模型. 判别模型:判别模型是学得一个分类面(即学得一个模型),该分类面可用来区分不同的数据分别属于哪一类: ...

  4. 生成模型与判别模型详解

    本篇会详细讲解生成模型和判别模型的区别,篇幅稍长 作者:zouxy09 来源:https://blog.csdn.net/zouxy09/article/details/8195017 决策函数Y=f ...

  5. 生成模型和判别模型学习

    生成模型和判别模型 在机器学习中,一般将学习方式分为监督式学习和非监督式学习方式. 回忆一下,监督学习的任务就是从数据中学习一个模型,应用这一模型,对给定的输入X预测相应的输出Y.这个模型的一般形式为 ...

  6. 生成模型 VS. 判别模型 Logistic 回归 VS. Softmax 回归

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

  7. 理解生成模型与判别模型

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 导言 我 ...

  8. [work] 生成模型和判别模型的理解

    转载自:https://blog.csdn.net/zouxy09/article/details/8195017 https://blog.csdn.net/lk7688535/article/de ...

  9. 生成模型和判别模型_生成模型和判别模型简介

    生成模型和判别模型 Intro 介绍 Recently I gave a presentation at work, where I explained how I solved some probl ...

最新文章

  1. java 方法 变量_Java-变量和方法
  2. Chrome DevTools:在 Profile 性能分析中显示原生 javascript 函数
  3. linux网络基础设置
  4. 【前端统计图】echarts改变颜色属性的demo
  5. 继承类对方法的影响java_4-Java面向对象-继承(上)
  6. android studio资源二进制,无法自动检测ADB二进制文件 – Android Studio
  7. 华为手机锁屏上显示广告遭用户吐槽 官方回应:不是我们干的
  8. C语言学习-翁凯(第二章笔记)
  9. Idea编译:Java找不到符号
  10. 马云有自己的银行,为什么还要贷款?
  11. 迁移TFS,批量将文档导入SharePoint 2013 文档库
  12. Flutter高仿微信-第47篇-群聊-语音
  13. 有自学能力的人,赚钱极其简单—来福宝盒
  14. 弘辽科技:拼多多活动价格建议价格太低了怎么办?
  15. 批量转换 gbk 文件到utf8 文件,不引用三方类库【 java 代码】
  16. Linux下架构安全邮件服务器之Sendmail
  17. 海信将在柏林IFA推出屏幕发声激光电视
  18. aix mysql启动_aix mysql | 学步园
  19. 用c语言模拟实现常用字符串函数
  20. C国演义 [第四章]

热门文章

  1. flutter json转对象_在 Flutter 使用 Redux 来共享状态和管理单一数据
  2. Arbin数据导出---cellpy库的安装与使用
  3. oracle登录页面错误,php和oracle的页面登录问题
  4. 编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。
  5. oracle数据库集群采用的是形式,铁道部采用Oracle集群数据库进行TMIS系统“三级建库”...
  6. react 显示当前时间_React 灵魂 23 问,你能答对几个?
  7. java json clone_再谈java clone 以及 浅/深拷贝
  8. layui table勾选框的修改_layui表格(Table)下添加可更新拉选择框select
  9. 知识图谱中的关系推理
  10. 微博python爬虫,每日百万级数据