生成式模型与判别式模型的区别

生成式模型(Generative Model)与判别式模型(Discriminative Model)是分类器常遇到的问题

对于判别式模型来说求得P(Y|X),对未见示例X,根据P(Y|X)可以求得标记Y,即可以直接判别出来,如上图的左边所示,实际是就是直接得到了判别边界,所以传统的、耳熟能详的机器学习算法如线性回归模型、支持向量机SVM等都是判别式模型,这些模型的特点都是输入属性X可以直接得到Y(对于二分类任务来说,实际得到一个score,当score大于threshold时则为正类,否则为反类)~(根本原因个人认为是对于某示例X_1,对正例和反例的标记的条件概率之和等于1,即P(Y_1|X_1)+P(Y_2|X_1)=1)

而生成式模型求得P(Y,X),对于未见示例X,你要求出X与不同标记之间的联合概率分布,然后大的获胜,如上图右边所示,并没有什么边界存在,对于未见示例(红三角),求两个联合概率分布(有两个类),比较一下,取那个大的。机器学习中朴素贝叶斯模型、隐马尔可夫模型HMM等都是生成式模型,熟悉Naive Bayes的都知道,对于输入X,需要求出好几个联合概率,然后较大的那个就是预测结果~(根本原因个人认为是对于某示例X_1,对正例和反例的标记的联合概率不等于1,即P(Y_1,X_1)+P(Y_2,X_1)<1,要遍历所有的X和Y的联合概率求和,即sum(P(X,Y))=1,具体可参见楼上woodyhui提到的维基百科Generative model里的例子)

它们的区别在于:对于输入数据x,类别标记y,判别式模型求得是P(Y|X),即后验概率;而生成式模型最后求的是P(X,Y),即联合概率。从本质上来说:

判别式模型之所以称为“判别式”模型,是因为其根据X来判别Y,直接对条件概率P(Y|X)建模。不考虑数据的分布,主要寻找异类间的差异或分类面,直面预测,可以将数据进行抽象及特征表示,可以简化学习任务,提高学习效率及准确率。

生成模型之所以称为“生成”模型,是因为其预测的根据是联合概率P(X,Y),而联合概率可以理解为“生成”(X,Y)样本的概率分布(或称为 依据);具体来说,机器学习已知X,从Y的候选集合中选出一个来,可能的样本有(X,Y_1), (X,Y_2), (X,Y_3),……,(X,Y_n),实际数据是如何“生成”的依赖于P(X,Y),那么最后的预测结果选哪一个Y呢?那就选“生成”概率最大的那个吧~

生成式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。生成方法的学习收敛速度更快,当样本容量增加时,学习到的模型可以更快的收敛到真实模型。

通常来说,因为生成式模型要对类条件密度P(x|y)进行建模,而判别式只需要对类后验密度进行建模,前者通常会比后者要复杂,更难以建模。

举例子:

我们利用训练集直接对条件概率p(y|x;θ)建模,例如logistic回归就利用hθ(x) = g(θTx)对p(y|x;θ)建模(其中g(z)是sigmoid函数)。假设现在有一个分类问题,要根据一些动物的特征来区分大象(y = 1)和狗(y = 0)。给定这样的一种数据集,回归模型比如logistic回归会试图找到一条直线也就是决策边界,来区分大象与狗这两类,然后对于新来的样本,回归模型会根据这个新样本的特征计算这个样本会落在决策边界的哪一边,从而得到相应的分类结果。

  现在我们考虑另外一种建模方式:首先,根据训练集中的大象样本,我们可以建立大象模型,根据训练集中的狗样本,我们可以建立狗模型。然后,对于新来的动物样本,我们可以让它与大象模型匹配看概率有多少,与狗模型匹配看概率有多少,哪一个概率大就是那个分类。

一个通俗易懂的解释

  Let's say you have input data x and you want to classify the data into labels y. A generative model learns the joint probability distribution p(x,y) and a discriminative model learns the conditional probability distribution p(y|x) – which you should read as 'the probability of y given x'.

  Here's a really simple example. Suppose you have the following data in the form (x,y):

(1,0), (1,0), (2,0), (2, 1)

  p(x,y) is

  y=0 y=1
x=1 1/2 0
x=2 1/4  1/4

  p(y|x) is

  y=0 y=1
x=1 1 0
x=2 1/2  1/2

If you take a few minutes to stare at those two matrices, you will understand the difference between the two probability distributions.The distribution p(y|x) is the natural distribution for classifying a given example x into a class y, which is why algorithms that model this directly are called discriminative algorithms. Generative algorithms model p(x,y), which can be tranformed into p(y|x) by applying Bayes rule and then used for classification. However, the distribution p(x,y) can also be used for other purposes. For example you could use p(x,y) to generate likely (x,y) pairs.

 From the description above you might be thinking that generative models are more generally useful and therefore better, but it's not as simple as that. This paper is a very popular reference on the subject of discriminative vs. generative classifiers, but it's pretty heavy going.The overall gist is that discriminative models generally outperform generative models in classification tasks.

两个模型的对比

两者所包含的算法

生成式模型

  • 判别式分析
  • 朴素贝叶斯
  • K近邻(KNN)
  • 混合高斯模型
  • 隐马尔科夫模型(HMM)
  • 贝叶斯网络
  • Sigmoid Belief Networks
  • 马尔科夫随机场(Markov Random Fields)
  • 深度信念网络(DBN)

判别式模型

  • 线性回归(Linear Regression)
  • 逻辑斯蒂回归(Logistic Regression)
  • 神经网络(NN)
  • 支持向量机(SVM)
  • 高斯过程(Gaussian Process)
  • 条件随机场(CRF)
  • CART(Classification and Regression Tree)

参考资料:

http://blog.csdn.net/wolenski/article/details/7985426

http://blog.csdn.net/ai_vivi/article/details/41204309

https://www.zhihu.com/question/20446337

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

  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. 生成式模型 vs 判别式模型

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 生成式模型和判别式模型的概念是机器学习领域非常重要的基础知识,但能准确区分开二者并不是 ...

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

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

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

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

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

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

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

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

最新文章

  1. 破除SCI至上!评价 AI 科研成果,需要新思路【附报告下载】
  2. 【Android View事件分发机制】关于拦截事件的注意点
  3. canal解析mysql日志异常_利用Canal解析mysql binlog日志
  4. hadoop2.20+hive+sqoop+mysql数据处理案例
  5. linux mono mysql_LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结
  6. 写给小白的WordPress详细安装步骤
  7. 四种方法下载网络文本数据到本地内存
  8. 通过配置host文件实现本地域名任意设置
  9. BoundsChecker使用说明
  10. 微信公众号连接服务器显示404,WordPress 微信机器人自动回复显示 404 错误解决办法...
  11. 华清远见-重庆中心-JAVA高级阶段知识点梳理
  12. day4new-转自金角大王
  13. MySQL8 一文读懂存储过程
  14. 一张图搞清楚EOS是什么怎么工作
  15. 分立器件~二极管三极管
  16. 如何给笔记本用麦克风录的声音降噪(风扇声音大)
  17. LeetCode基本记录【2】// BASIC NOTES AND CODES OF LEETCODE [ 2 ]
  18. ssm练习第二天_项目拆分moudle_基本增删改查_批量删除_一对一级联查询
  19. 【技术分享】一封伪造邮件引发的研究
  20. 自动驾驶系列(十九)Autoware使用YoloV3识别(海康相机)

热门文章

  1. python定义空字典_python字典空值
  2. Unity3D编辑器的5大视图
  3. xshell 上传文件到 linux
  4. JVM jhat命令(分析dump文件)
  5. 小米笔记本ruby插耳机后声音小时大时小解决办法
  6. 基于wxWidgets(wxWindows)界面开发解方案!
  7. 微服务实战(三)集成服务注册发现中心 - Nacos
  8. mysql如何使用乐观锁_mysql 乐观锁和悲观锁
  9. php播放wmv代码,asp 网页视频播放器程序代码(通用代码),支持avi,wmv,asf,mov,rm,ra,ram等...
  10. shell编程100例