生成式模型(generative) vs 判别式模型(discriminative)

2021.12.22 在《统计学习方法》的时候,对此篇内容重新做了整理和更新

1 基本概念

监督学习的任务就是学习一个模型, 应用这一模型, 对给定的输入预测相应的输出。 这个模型的一般形式为决策函数: Y = f ( X ) Y=f(X) Y=f(X)或者条件概率分布: P ( Y ∣ X ) P(Y|X) P(Y∣X)

举个例子,方便理解:

  • 输入一个人身高2米,体重200斤的数据
  • Y=f(X) 输出为0(代表男) 是个分类的结果
  • P(Y|X) 则可能输出 P ( 男 ) = 0.9 , P ( 女 ) = 0.1 P(男)=0.9,P(女)=0.1 P(男)=0.9,P(女)=0.1
  • 监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach)
  • 所学到的模型分别称为生成模型(generative model) 和判别模型(discriminative model)

2 思路的区别

2.1 生成式模型(generative)

生成方法原理:① 由数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y), 然后求出 ② 条件改率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 作为预测模型。

经典生成模型:朴素贝叶斯法 和 隐马尔可夫模型。
.

【例1】离散型联合分布

① 我们先知道有这样的联合分布

P(x,y)y=0y=1
x=11/62/6
x=22/61/6

.
② 如果现在有一个 x = 2 ,那我们看看属于哪类?

  • P ( y = 0 ∣ x = 2 ) = P ( y = 0 , x = 2 ) / P ( x = 2 ) = ( 2 / 6 ) / ( 1 / 2 ) = 1 / 6 P(y=0|x=2)=P(y=0, x=2)/P(x=2)=(2/6 )/(1/2)=1/6 P(y=0∣x=2)=P(y=0,x=2)/P(x=2)=(2/6)/(1/2)=1/6
  • P ( y = 1 ∣ x = 2 ) = P ( y = 1 , x = 2 ) / P ( x = 2 ) = ( 1 / 6 ) / ( 1 / 2 ) = 1 / 3 P(y=1|x=2)=P(y=1, x=2)/P(x=2)=(1/6 )/(1/2)=1/3 P(y=1∣x=2)=P(y=1,x=2)/P(x=2)=(1/6)/(1/2)=1/3
  • x=2属于y=1概率大,所以属于1类

.
【例2】典型代表:朴素贝叶斯模型

通过已知抽样数据,来假设是数据来自高斯分布(当然也可以用伯努利分布之类的)模型,通过模型确定 μ 1 , μ 2 , Σ \mu_1,\mu_2,\Sigma μ1​,μ2​,Σ等参数,带入高斯公式,求出分类概率

详见:李宏毅《机器学习》笔记:4.概率分类模型:应用过程


2.2 判别式模型(discriminative)

  • 判别方法: 由数据直接学习决策函数F(x) 或者 条件改率分布P(Y|X)。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。
  • 经典模型:K近邻法, 感知机, 逻辑斯蒂回归模型, 最大熵模型

【例1】离散型改率分布 P ( y ∣ x ) P(y|x) P(y∣x)

P(y/x)y=0y=1
x=11/32/3
x=22/31/3

我们发现直接给出的概率分布,这次每行改率和为1,也就是如果x=1,它不是0类就是1类;同理x=2

对于给定的x=2, 属于0类的改率为2/3 ;属于1类改率为1/3, 所以判断为0类
.
【例2】典型代表:逻辑回归

李宏毅《机器学习》笔记:5.logistic回归

就是不考虑统计模型,只考虑特征,不断训练特征向量,用损失函数来不断靠近真实模型。就是我们经常用的 梯度下降什么的


3. 联系和区别

在这里插入图片描述

  • 同一个function, 两个模型在不同场合性能会各有千秋

.

3.1 生成式模型

优点:

  1. 由于统计了数据的分布情况,所以其实际带的信息要比判别模型丰富,对于研究单类问题来说也比判别模型灵活性强;
  2. 模型可以通过增量学习得到(增量学习是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。);
  3. 收敛速度更快,当样本容量增加的时,生成模型可以更快的收敛于真实模型;
  4. 隐变量存在时,也可以使用。

缺点

  1. 学习和计算过程比较复杂,由于学习了更多的样本信息,所以计算量大,如果我们只是做分类,就浪费了这部分的计算量;
  2. 准确率较差

有四类,class1,2,3,4 分别个数为1,4,4,4

.在这里插入图片描述

  • 已知现有两红球
  • 用生成法,计算P(c1|x)<0.5 那么不属于class 1,其实我们知道 它和class 1一毛一样,应该属于class 1

.

3.2 判别式模型

优点

  1. 由于关注的是数据的边界,所以能清晰的分辨出多类或某一类与其他类之间的差异,所以准确率相对较高;
  2. 计算量较小,需要的样本数量也较小;
  3. 往往需要对特征进行假设,比如朴素贝叶斯中需要假设特征间独立同分布,所以如果所选特征不满足这个条件,将极大影响生成式模型的性能。

【杨哥助记】

  • 生成式大数据准一点,因为大量分布才能更接近真实数据模型,换句话就是【书上的】收敛(到真实模型)速度更快,当样本容量增加的时。
  • 判别式数据量可以小一点,但鲁棒性(robust)差点,因为比较看重结果,有噪点影响比较大

缺点

  1. 不能反映训练数据本身的特性;
  2. 收敛速度较慢。
  3. 不能处理隐变量

.
当存在隐变量(当我们找不到引起某一现象的原因的时候,我们就把这个在起作用但是无法确定的因素,叫“隐变量”) 时,仍可以利用生成方法学习,此时判别方法不能用。因为生成式模型同时对 x 和 y 建立概率模型,所以如果 x 中有出现没有观察到的量或者只有部分 y 的时候,就可以很自然地使用 EM 算法 来进行处理。极端情况下,在完全没有 y 信息的情况下,GM 仍然是可以工作的——无监督学习可以看成是 GM 的一种。

EM 算法 :https://zhuanlan.zhihu.com/p/36331115

更多推荐