《机器学习-小知识点》1: Generative VS Discriminative 问题
生成式模型(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=0 | y=1 |
|---|---|---|
| x=1 | 1/6 | 2/6 |
| x=2 | 2/6 | 1/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=0 | y=1 |
|---|---|---|
| x=1 | 1/3 | 2/3 |
| x=2 | 2/3 | 1/3 |
我们发现直接给出的概率分布,这次每行改率和为1,也就是如果x=1,它不是0类就是1类;同理x=2
对于给定的x=2, 属于0类的改率为2/3 ;属于1类改率为1/3, 所以判断为0类
.
【例2】典型代表:逻辑回归
就是不考虑统计模型,只考虑特征,不断训练特征向量,用损失函数来不断靠近真实模型。就是我们经常用的 梯度下降什么的
3. 联系和区别

- 同一个function, 两个模型在不同场合性能会各有千秋
.
3.1 生成式模型
优点:
- 由于统计了数据的分布情况,所以其实际带的信息要比判别模型丰富,对于研究单类问题来说也比判别模型灵活性强;
- 模型可以通过增量学习得到(增量学习是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。);
- 收敛速度更快,当样本容量增加的时,生成模型可以更快的收敛于真实模型;
- 隐变量存在时,也可以使用。
缺点
- 学习和计算过程比较复杂,由于学习了更多的样本信息,所以计算量大,如果我们只是做分类,就浪费了这部分的计算量;
- 准确率较差
有四类,class1,2,3,4 分别个数为1,4,4,4
.
- 已知现有两红球
- 用生成法,计算P(c1|x)<0.5 那么不属于class 1,其实我们知道 它和class 1一毛一样,应该属于class 1
.
3.2 判别式模型
优点
- 由于关注的是数据的边界,所以能清晰的分辨出多类或某一类与其他类之间的差异,所以准确率相对较高;
- 计算量较小,需要的样本数量也较小;
- 往往需要对特征进行假设,比如朴素贝叶斯中需要假设特征间独立同分布,所以如果所选特征不满足这个条件,将极大影响生成式模型的性能。
【杨哥助记】
- 生成式大数据准一点,因为大量分布才能更接近真实数据模型,换句话就是【书上的】收敛(到真实模型)速度更快,当样本容量增加的时。
- 判别式数据量可以小一点,但鲁棒性(robust)差点,因为比较看重结果,有噪点影响比较大
缺点
- 不能反映训练数据本身的特性;
- 收敛速度较慢。
- 不能处理隐变量
.
当存在隐变量(当我们找不到引起某一现象的原因的时候,我们就把这个在起作用但是无法确定的因素,叫“隐变量”) 时,仍可以利用生成方法学习,此时判别方法不能用。因为生成式模型同时对 x 和 y 建立概率模型,所以如果 x 中有出现没有观察到的量或者只有部分 y 的时候,就可以很自然地使用 EM 算法 来进行处理。极端情况下,在完全没有 y 信息的情况下,GM 仍然是可以工作的——无监督学习可以看成是 GM 的一种。
更多推荐




所有评论(0)