首页 > 其他分享 >生成式模型 vs 判别式模型

生成式模型 vs 判别式模型

时间:2022-10-18 15:35:16浏览次数:78  
标签:判别 模型 生成式 学习 判别式 数据


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


概念

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

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

生成式模型 vs 判别式模型_概率分布

定义

生成式模型先对数据的联合分布  进行建模,然后再通过贝叶斯公式计算样本属于各类别的后验概率 。

判别式模型直接进行条件概率建模,由数据直接学习决策函数  或条件概率分布 作为预测的模型。判别方法不关心背后的数据分布,关心的是对于给定的输入,应该预测什么样的输出。

用一句话总结就是生成模型估计的是联合概率分布,判别式模型估计的是条件概率分布

举例

可能经过上面的表述仍然不能够直观的理解两个模型的差异,我这里举两个例子:

例子 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. ​http://freemind.pluskid.org/machine-learning/discriminative-modeling-vs-generative-modeling/​


生成式模型 vs 判别式模型_数据_02

标签:判别,模型,生成式,学习,判别式,数据
From: https://blog.51cto.com/u_15699042/5766737

相关文章

  • [答疑]低版本的EA能打开高版本的模型吗
    Morris2018-11-1019:22低版本的EA能打开高版本的模型吗?潘加宇:我一般都是用最新版本的EA。根据以往的经验,好像我用最新版本做出来的eap文件,没有学员反应说打不开,学员那边可......
  • SuperMap加载三维模型数据(osgb格式)——以SuperMap iDesktop 10i为例
    目录一、生成配置文件(.scp)二、新建球面场景三、添加三维切片缓存图层 一、生成配置文件(.scp)1.1打开三维数据,配置文件,生成配置文件(如图);1.2配置文件设置(如图);①源数......
  • Java内存模型(JMM)详解
    目录什么是JMM?Java运行时内存区域与硬件内存的关系Java内存区域和Java内存模型有何区别?Java线程与主内存的关系什么是主内存?什么是本地内存?线程间通信重温Java并发三......
  • Java I/O(1):模型与流
    在1990年以前,有一帮工程师们认为未来(1990年以后)会有很多小型设备需要得到电脑操控(不得不说,想法非常超前),鉴于当时市面上并没有任何一款编程语言能够跨平台,而且能够在诸如烤......
  • 数据库新增表后,EF通过数据库更新模型后,在视图中已经新表,但在Model 中没有出现Mode实体
    新建表t_PtoductMini, 执行Scaffold-DbContext"DataSource=.;InitialCatalog=XXX;IntegratedSecurity=True"Microsoft.EntityFrameworkCore.SqlServer-OutputDirM......
  • 机器学习——决策树模型
     1.决策树概述1.1决策树模型简介决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一种类别。树的组成: 根节......
  • 相机模型、相机标定
    针孔相机模型和相机镜头畸变模型-melodybinbin-博客园(cnblogs.com)对极几何-mjl_cv-博客园(cnblogs.com)针孔相机模型-知乎(zhihu.com)相机针孔模型详解_......
  • 【数据库】期末必知必会-----第二章 关系数据模型
    第二章关系数据模型1、关系数据结构的相关概念?1)关系模型的数据结构就是二维表,把表称为关系2)关系数据库是表的集合,或者说是关系的集合3)表示一个实体集,每一行是一个实体,又因......
  • 异常处理、生成式对象
    1.异常常见类型SyntaxError:语法错误NameError:名字错误,一般由于变量名未定义造成IndexError:索引错误,列表的索引值超过了范围KeyError:字典键错误,字典的键找不到Inde......
  • 软件测试模型
    V模型-从开发的瀑布模型而来  优点:包含了底层和高层的测试过程每个步骤都是文档驱动缺点:和瀑布模型一样,不能适应需求的改变,灵活性较差 W模型    ......