点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

生成式模型和判别式模型的概念是机器学习领域非常重要的基础知识,但能准确区分开二者并不是一件非常容易的事情,笔者经常是看一遍忘一遍,为了巩固下知识点,我将从以下几个方面对两种模型进行介绍和对比。

概念

首先我们需要明确,两种不同的模型都用于监督学习任务中。监督学习的任务就是从数据中学习一个模型,并用基于这个模型对给定的输入预测相应的输出。这种模型的一般形式为决策函数 









或者条件概率分布 










我们先用一张图来初步感受一下,等看完文章后再回来看一遍会更直观:

定义
生成式模型先对数据的联合分布 









进行建模,然后再通过贝叶斯公式计算样本属于各类别的后验概率 



























判别式模型直接进行条件概率建模,由数据直接学习决策函数 









或条件概率分布 









作为预测的模型。判别方法不关心背后的数据分布,关心的是对于给定的输入,应该预测什么样的输出。
用一句话总结就是生成模型估计的是联合概率分布,判别式模型估计的是条件概率分布
举例
可能经过上面的表述仍然不能够直观的理解两个模型的差异,我这里举两个例子:
例子 A
两种模型来如何确定一只羊是山羊还是绵羊?
生成式模型:首先根据山羊的数据和绵羊的数据分别学习出山羊的特征 












和绵羊的特征 












,然后从待识别的羊中提取特征 x,将这些特征分别放到山羊模型和绵羊模型中并得到条件概率 
































和 
































,如果 






















,那么我就认为这只羊属于山羊,否则为绵羊。
判别式模型:直接从山羊和绵羊的数据中提取特征 x 并学习得到模型 







,然后从待识别的羊中提取特征 x,然后带入到模型中以判断这只羊是绵羊和山羊概率(比如 LR 中,结果大于 0.5 为正例,小于 0.5 为反例)。
我们可以看到,生成式模型强调数据本身特点,判别式模型强调数据边界。在分类的过程中,生成式模型对每个结果都要亲自试一试,遍历完一遍后取概率最大的结果;而判别式模型直接通过模型得到结果。
例子 B
维基百科中有这样的一个例子:
对于给定数据集 
生成式模型 










y=0 y=1
x=1
1/6
2/6
x=2
2/6
1/6
如果现在有一个 






,那我们可以得到:

所以我们把 






判别为类别 0。
判别式模型 










y=0 y=1
x=1
1/3
2/3
x=2
2/3
1/3
对于给定的 






,我们直接可以得到 













和 













的值。

特点

生成式模型的特点在于,其可以从统计的角度表示数据的分布情况,能反映同类数据本身的相似度,不关心各类的边界在哪;
判别式模型直接学习的是条件概率分布,所以其不能反映训练数据本身的特性,其目的在于寻找不同类别之间的最优分界面,反映异类数据之间的差异。
由生成模型可以得到判别模型,但由判别模型得不到生成模型。
当存在隐变量(当我们找不到引起某一现象的原因的时候,我们就把这个在起作用但是无法确定的因素,叫“隐变量”) 时,仍可以利用生成方法学习,此时判别方法不能用。因为生成式模型同时对 x 和 y 建立概率模型,所以如果 x 中有出现没有观察到的量或者只有部分 y 的时候,就可以很自然地使用 EM 算法来进行处理。极端情况下,在完全没有 y 信息的情况下,GM 仍然是可以工作的——无监督学习可以看成是 GM 的一种。

优缺点

生成式模型 
优点
  1. 由于统计了数据的分布情况,所以其实际带的信息要比判别模型丰富,对于研究单类问题来说也比判别模型灵活性强;
  2. 模型可以通过增量学习得到(增量学习是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。);
  3. 收敛速度更快,当样本容量增加的时,生成模型可以更快的收敛于真实模型;
  4. 隐变量存在时,也可以使用。
缺点
  1. 学习和计算过程比较复杂,由于学习了更多的样本信息,所以计算量大,如果我们只是做分类,就浪费了这部分的计算量;
  2. 准确率较差;
  3. 往往需要对特征进行假设,比如朴素贝叶斯中需要假设特征间独立同分布,所以如果所选特征不满足这个条件,将极大影响生成式模型的性能。
判别式模型 
优点
  1. 由于关注的是数据的边界,所以能清晰的分辨出多类或某一类与其他类之间的差异,所以准确率相对较高;
  2. 计算量较小,需要的样本数量也较小;
缺点
  1. 不能反映训练数据本身的特性;
  2. 收敛速度较慢。

代表算法

生成式模型:朴素贝叶斯、贝叶斯网络、隐马尔可夫模型、隐马尔可夫模型;
判别式模型:k 近邻法、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、条件随机场。
参考
  1. https://www.zhihu.com/question/20446337
  2. https://blog.csdn.net/zouxy09/article/details/8195017
  3. http://freemind.pluskid.org/machine-learning/discriminative-modeling-vs-generative-modeling/


生成式模型 vs 判别式模型相关推荐

  1. 【机器学习】生成式模型和判别式模型

    在机器学习中,对于有监督学习可以将其分为两类模型:判别式模型和生成式模型.判别式模型是针对条件分布建模,而生成式模型则针对联合分布进行建模. 1.抛砖引玉 假设有训练数据(X,Y),X是属性集合,Y是 ...

  2. 机器学习 之 生成式模型 VS 判别式模型

    [摘要] 判别式模型,就是只有一个模型,你把测试用例往里面一丢,label就出来了,如SVM.生成式模型,有多个模型(一般有多少类就有多少个),你得把测试用例分别丢到各个模型里面,最后比较其结果,选择 ...

  3. 机器学习:生成式模型和判别式模型

    决策函数Y=f(X)与条件概率分布P(Y|X) 决策函数Y=f(x):输入一个x,它就输出一个y值,这个y与一个阈值比较,根据比较结果判定x属于哪个类别. 条件概率分布P(y|x):输入一个x,它通过 ...

  4. 机器学习中的生成式模型VS判别式模型,分类,特点

    机器学习中的生成式模型VS判别式模型,分类,特点 提示: 本文将从生成式模型与判别式模型的概念, 适用环境 具体模型 三个方面分析比较这两个模型, 并在最后对列出模型范例,进行范例比较. 基础知识: ...

  5. 生成式模型和判别式模型(通俗易懂)

    原文链接:https://blog.csdn.net/qq_14997473/article/details/85219353 决策函数Y=f(X)与条件概率分布P(Y|X) 决策函数Y=f(x):输 ...

  6. 生成式模型、判别式模型的区别?

    生成式模型.判别式模型的区别? ​ 对于机器学习模型,我们可以根据模型对数据的建模方式将模型分为两大类,生成式模型和判别式模型.如果我们要训练一个关于猫狗分类的模型, 对于判别式模型,只需要学习二者差 ...

  7. 机器学习小问题 -- 生成式模型与判别式模型

    本篇博文总结最近学习到的生成式模型与判别式模型的知识. 1. 简介 就像之前在总结分类和聚类时说的一样,机器学习基本在做的事情就是在分类.打标签,我们的模型也就像一个个分类机器(个人看法,欢迎指正). ...

  8. 生成式模型与判别式模型

    生成式模型与判别式模型的区别 生成式模型(Generative Model)与判别式模型(Discriminative Model)是分类器常遇到的问题 对于判别式模型来说求得P(Y|X),对未见示例 ...

  9. NLP --- 产生式模型VS判别式模型

    上一节我们介绍了概率图模型,这将在隐马尔可夫和条件随机场使用到,还会使用到的另外一个概念就是产生式模型和判别式模型,那么什么是产生式模型,什么是判别式模型呢?下面我们详细介绍这两种模型的区别. 他们的 ...

最新文章

  1. 【c语言】蓝桥杯算法提高 简单加法
  2. java OpenCV 图片清晰度、色偏和亮度检测
  3. Minimum Depth of Binary Tree
  4. 18-爬虫之scrapy框架请求传参实现的深度爬取(全站爬取)05
  5. 机器学习中各科目基本概念集合
  6. 谷歌的下一个×××烦
  7. EXCEL中制作省市区行政区地图
  8. 汽车质量管理体系IATF 16949和培训及相关的标准(主要是电动汽车)
  9. warcraft3Viewer模型导入到3dsmax到Unity
  10. Matlab Gramm绘图工具箱
  11. 天猫小黑盒从发布新品到影响供应链
  12. cad镜像后标注尺寸数字反了_急!CAD镜像后文字反向应该怎么处理?
  13. 计算机科学与技术专业图书,《计算机科学与技术专业毕业论文选》—甲虎网一站式图书批发平台...
  14. 【运筹优化】调用Gurobi求解LP问题(Java代码示例)
  15. 【07月15日】A股滚动市盈率PE最低排名
  16. 8255芯片实现7段LED显示器
  17. 近期修改cython文件问题汇总
  18. java过滤微信表情符号_微信隐藏彩蛋!表情加符号就能传递“神秘信息”
  19. 查看fna文件Linux,FNA 文件扩展名: 它是什么以及如何打开它?
  20. TZC 高中信息技术(Python)必修题单————题解

热门文章

  1. linux将文件的时间记录改为,Linux下修改文件创建时间(修改文件更改时间)
  2. 厂商提前布局新一轮家电“以旧换新”
  3. ReactNative(学习部署){样式使用、图片、文本、布局、按钮、活动提示器、状态栏和背景图、开关和文本输入框}
  4. 小学生python游戏编程arcade----烟花粒子
  5. 英语基础----宾语和表语
  6. 计算机网络知识cache,电脑中的Cache是什么文件?Cache的删除办法
  7. vue全局变量存储的几种方式
  8. 关于失物招领的html网页,notice.html
  9. rancher安装elasticsearch6.4.0的head插件
  10. 攻防世界re:maze