首发于人工智能
写文章

机器学习中的判别式模型和生成式模型

Microstrong
微信公众号:Microstrong,人工智能算法工程师

已关注

78 人赞同了该文章

目录:

  1. 基本概念
  2. 用例子说明概念
  3. 判别式模型和生成式模型的区别
  4. 二者所包含的算法

在机器学习中,对于有监督学习可以将其分为两类模型:判别式模型和生成式模型。简单地说,判别式模型是针对条件分布建模,而生成式模型则针对联合分布进行建模。

1. 基本概念

假设我们有训练数据(X,Y),X是属性集合,Y是类别标记。这时来了一个新的样本,我们想要预测它的类别

我们最终的目的是求得最大的条件概率作为新样本的分类。

1.1 判别式模型这么做:

根据训练数据得到分类函数和分界面,比如说根据SVM模型得到一个分界面,然后直接计算条件概率 ,我们将最大的 作为新样本的分类。判别式模型是对条件概率建模,学习不同类别之间的最优边界,无法反映训练数据本身的特性,能力有限,其只能告诉我们分类的类别。

1.2 生成式模型这么做

一般会对每一个类建立一个模型,有多少个类别,就建立多少个模型。比如说类别标签有{猫,狗,猪},那首先根据猫的特征学习出一个猫的模型,再根据狗的特征学习出狗的模型,之后分别计算新样本 跟三个类别的联合概率 ,然后根据贝叶斯公式:


分别计算,选择三类中最大的作为样本的分类。

1.3 两个模型的小结

不管是生成式模型还是判别式模型,它们最终的判断依据都是条件概率,但是生成式模型先计算了联合概率,再由贝叶斯公式计算得到条件概率。因此,生成式模型可以体现更多数据本身的分布信息,其普适性更广。

2. 用例子说明概念

2.1 山羊绵羊的例子

判别式模型:要确定一个羊是山羊还是绵羊,用判别式模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。

生成式模型:是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。

2.2 模型范例

假设现在有一个分类问题,X是特征,Y是类标记。用判别式模型学习一个条件概率分布,用生成式模型学习一个联合概率分布 。用一个简单的例子来说明这个问题。假设X就是两个特征(1或2),Y有两类(0或1),有如下训练样本(1,0)、(1,0)、(1,1)、(2,1)。

则学习到的条件概率分布(判别式模型)如下:


而学习到的联合概率分布(生成式模型)如下:


在实际分类问题中,判别式模型可以直接用来判断特征的类别情况;而生成式模型需要加上贝叶斯公式,然后应用到分类中。但是,生成式模型的概率分布可以有其他应用,就是说生成式模型更一般更普适。不过判别式模型更直接,更简单。两种方法目前交叉较多。由生成式模型可以得到判别式模型,但由判别式模型得不到生成式模型。

3. 判别式模型和生成式模型的区别

3.1 判别式模型和生成式模型的对比图


上图左边为判别式模型而右边为生成式模型,可以很清晰地看到差别,判别式模型是在寻找一个决策边界,通过该边界来将样本划分到对应类别。而生成式模型则不同,它学习了每个类别的边界,它包含了更多信息,可以用来生成样本。

3.2 判别式模型和生成式模型的特点

判别式模型特点:

判别式模型直接学习决策函数 或者条件概率 ,不能反映训练数据本身的特性,但它寻找不同类别之间的最优分裂面,反映的是异类数据之间的差异,直接面对预测往往学习准确度更高。具体来说有以下特点:

  • 对条件概率建模,学习不同类别之间的最优边界。
  • 捕捉不同类别特征的差异信息,不学习本身分布信息,无法反应数据本身特性。
  • 学习成本较低,需要的计算资源较少。
  • 需要的样本数可以较少,少样本也能很好学习。
  • 预测时拥有较好性能。
  • 无法转换成生成式。

生成式模型的特点:

生成式模型学习的是联合概率密度分布 ,可以从统计的角度表示分布的情况,能够反映同类数据本身的相似度,它不关心到底划分不同类的边界在哪里。生成式模型的学习收敛速度更快,当样本容量增加时,学习到的模型可以更快的收敛到真实模型,当存在隐变量时,依旧可以用生成式模型,此时判别式方法就不行了。具体来说,有以下特点:

  • 对联合概率建模,学习所有分类数据的分布。
  • 学习到的数据本身信息更多,能反应数据本身特性。
  • 学习成本较高,需要更多的计算资源。
  • 需要的样本数更多,样本较少时学习效果较差。
  • 推断时性能较差。
  • 一定条件下能转换成判别式。

总之,判别式模型和生成式模型都是使后验概率最大化,判别式是直接对后验概率建模,而生成式模型通过贝叶斯定理这一“桥梁”使问题转化为求联合概率。

4. 二者所包含的算法


Reference:

【1】数据挖掘面试题之:生成模型 VS 判别模型,https://mp.weixin.qq.com/s/p6jidEexD2HgjMev5rXwUg

【2】机器学习“判定模型”和“生成模型”有什么区别? - politer的回答 - 知乎 https://www.zhihu.com/question/20446337/answer/256466823

【3】生成式模型VS判别式模型浅析 - Old King的文章 - 知乎 https://zhuanlan.zhihu.com/p/30941701

【4】https://www.cnblogs.com/nolonely/p/6435213.html

【5】https://blog.csdn.net/u013630349/article/details/47146425

【6】https://www.cnblogs.com/kemaswill/p/3427422.html

【7】机器学习判别式与生成式

【8】机器学习:分类问题的两种模型 - gegey的文章 - 知乎 https://zhuanlan.zhihu.com/p/28675220

编辑于 2019-08-25
机器学习
监督学习
生成模型

​赞同 78​

​9 条评论
​分享

​喜欢​收藏​申请转载


http://www.taodudu.cc/news/show-3581704.html

相关文章:

  • 如何推算Jedispool连接池的最大空闲连接数maxIdle值呢?
  • maxIdle is deprecated+DruidDataSourceFactory报错+java.sql.SQLException: url not set
  • redis连接池 maxIdle、maxTotal、maxWaitMillis等参数报错
  • 报Could not resolve placeholder 'redis.maxIdle' in string value ${redis.maxIdle}错
  • initialSize,maxTotal,maxIdle,minIdle,maxWaitMillis
  • Could not resolve placeholder 'redis.maxIdle' in string value ${redis.maxIdle}
  • 连接池中的maxIdle,MaxActive,maxWait等参数详解
  • 严重: maxIdle is deprecated,严重: testWhileIdle is true, validationQuery not set,Druid连接池连接MSQL报错处理
  • Redis配置错误(已解决) Could not resolve placeholder 'redis.maxIdle' in string value ${redis.maxIdle}
  • 关于java.lang.NumberFormatException: For input string:${redis.maxIdle}的报错
  • commons-pool2中GenericObjectPoolConfig的maxTotal、maxIdle、minIdle属性理解
  • java连接池的maxIdle该如何配置
  • maxIdle和maxIdle和maxWait
  • java 数据库连接池的maxIdle该如何配置(转载非我原创)备忘
  • MySQL之索引(三)
  • MySQL 之 事务、存储过程、索引
  • Mysql索引知识概括
  • 一,mysql索引的概述
  • MySQL 索引与索引优化
  • MySQL索引B+Tree
  • 索引优化分析
  • MySQL高级篇知识点——索引优化与查询优化
  • MySQL索引及其SQL优化
  • Mysql调优及索引锁机制学习
  • MySQL索引设计
  • MySQL--索引、事务
  • Oracle索引游标学习
  • sqlserver和mysql索引结构_sqlserver 索引的一些总结
  • mysql 索引pk_mysql索引
  • SQLSERVER聚集索引与非聚集索引的再次研究(下)

机器学习中的判别式模型和生成式模型相关推荐

  1. 机器学习--判别式模型与生成式模型

    原文地址为:机器学习--判别式模型与生成式模型 一.引言 本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu 在上一篇有监督学习回归模型中,我们利用训练 ...

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

    问题 判别式模型和生成式模型是机器学习中很重要的两个概念,也是笔试面试中很可能出现的问题,这里整理一遍是为了让自己更好地理解和区分这两者之间的不同. 概念 假设可观测到的变量集合为X,其他变量集合为Z ...

  3. 【机器学习】:判别式模型与生成式模型

    目录 问题引出 基本概念 举个例子 优缺点 模型实例 参考文献 问题引出 来源:牛客网 以下几种模型方法属于判别式模型(Discriminative Model)的有() 1)混合高斯模型 2)条件随 ...

  4. 监督学习中判别式模型和生成式模型的区别 | 无监督学习的生成模型GAN、VAE(生成样本)

    文章目录 一.监督学习中的判别式模型和生成式模型 1.1 判别式模型(线性回归.SVM.NN) 1.2 生成式模型(朴素贝叶斯.HMM) 1.3 两种模型的小结 二.无监督学习中的生成式模型(生成样本 ...

  5. 判别式模型和生成式模型的区别(discriminative model and generative model)

    判别式模型和生成式模型的区别(discriminative model and generative model) 本博客转载自: http://blog.csdn.net/amblue/articl ...

  6. 谈谈判别式模型与生成式模型

    判别式模型与生成式模型是机器学习领域中的基本概念,今天将两者的特点总结一下,如下表所示: 对比 判别式模型 生成式模型 特点 寻找不同类别之间的最优分类面,反映异类数据之间的差异 以统计的角度表示数据 ...

  7. 判别式模型和生成式模型的区别

    其实机器学习的任务是从属性X预测标记Y,即求概率P(Y|X). 判别式模型 对于判别式模型来说求得P(Y|X),对未见示例X,根据P(Y|X)可以求得标记Y,即可以直接判别出来,如上图的左边所示,实际 ...

  8. BAT面试题9:谈谈判别式模型和生成式模型?

    BAT面试题9:谈谈判别式模型和生成式模型? https://mp.weixin.qq.com/s/X7zWJCMN7gbCwqskIIpLcw 判别方法:由数据直接学习决策函数 Y = f(X),或 ...

  9. 判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点?

    判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点? 目录 判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点? 判别式模型和生成式模型分别是什么?

最新文章

  1. 记一次 react 15.3.1 老项目升级到 react 16.7.0 之路
  2. excel可视化图表插件_Excel新版图表插件EasyShu: 新型面积图
  3. 如何实现文章中文字的打字效果
  4. WCF消息之XmlDictionaryWriter
  5. Python之编写函数
  6. 日志分析里面的max是什么_mysql慢日志文件分析处理
  7. 省市区的行政区域数据2021(国家统计局)
  8. python中re的group方法详解(来自官方文档的权威解释)
  9. Oracle Coherence中文教程五:Coherence调试
  10. MT6762 Android 8.1 移植acc+gyro二合一sensor之后,acc有数据,gyro没有数据的问题
  11. waf指纹识别工具WAFW00F的使用
  12. Surface Pro 4 系统优化全教程及QA
  13. 激活pytorch环境
  14. 微商利用手机APP挣钱方法与大家分享
  15. 关于MBR和GUID分区的问题
  16. 禅道的安装使用和升级
  17. 特征工程——推荐系统里的特征工程
  18. 苹果x屏幕出现一条绿线_iPhone X 屏幕维修怎么防止被坑?各种屏幕的介绍
  19. MP4/MP3解封装ffmpeg(十三)
  20. 计算机毕业设计之java+ssm基于微信小程序的游戏美术外包管理信息系统

热门文章

  1. 《高阶Perl》——3.4 记忆术
  2. 世界排名前十位的奢侈品
  3. ESP8266连接wifi
  4. linux内核链接脚本vmlinux.lds分析(十一)
  5. win10虚拟机监控服务器,Windows虚拟机监控程序必须正在运行
  6. 一文详解shell编程(shell编程笔记)
  7. Flex布局、flex容器和flex项目
  8. (48)uniGUI for cBuilderDelphi PDF文档控制
  9. javascript 变量 strict
  10. 一个java类只能有一个public类,但可以定义多个非public类