生成模型和判别模型的区别

先上结论

公式上看

生成模型: 学习时先得到 P ( x , y ) P(x,y) P(x,y),继而得到 P ( y ∣ x ) P(y|x) P(yx)。预测时应用最大后验概率法(MAP)得到预测类别 y y y
判别模型: 直接学习得到 P ( y ∣ x ) P(y|x) P(yx),利用MAP得到 y y y。或者直接学得一个映射函数 y = f ( x ) y = f(x) y=f(x)

直观上看

生成模型: 关注数据是如何生成
判别模型: 关注类别之间的差别


先直观理解

我们先从直观上来理解一下:

  • 生成模型: 源头导向。尝试去找到底这个数据是怎么产生的,然后再对一个信号进行分类。基于你学习到的生成假设,判断哪个类别最有可能产生这个信号,这个样本就属于那个类别。
  • 判别模型: 结果导向。并不关心样本数据是怎么生成的,它只关心样本之间的差别,然后用差别来简单对给定的一个样本进行分类。

举个例子

借用一下这位老兄的例子:

假如你的任务是识别一个语音属于哪种语言。例如对面一个人走过来,和你说了一句话,你需要识别出她说的到底是汉语、英语还是法语等。那么你可以有两种方法达到这个目的:

  1. 学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了,我指的学会是你知道什么样的语音对应什么样的语言。然后再有人过来对你说,你就可以知道他说的是什么语音.
  2. 不去学习每一种语言,你只学习这些语言之间的差别,然后再判断(分类)。意思是指我学会了汉语和英语等语言的发音是有差别的,我学会这种差别就好了。

那么第一种方法就是生成方法,第二种方法是判别方法



再深入理解

监督学习的任务:学习一个模型,应用这一模型,对给定的输入预测相应的输出。
这一模型的一般形式为一个决策函数或者条件概率分布:

  1. 决策函数 y = f ( x ) y=f(x) y=f(x)直接得到 输入 x x x 到 输出 y y y(某个类别)的映射函数。(例如神经网络和SVM等属于这种)
  2. 条件概率分布 P ( y ∣ x ) P(y|x) P(yx)预测时用 最大后验概率**(MAP) y = a r g m a x y i P ( y i ∣ x ) y = argmax _{y_i} P(y_i|x) y=argmaxyiP(yix)的方法决定输出类别 y y y。(例如贝叶斯分类器就属于这种)


    监督学习方法又可以分为
    生成方法(generative approach)判别方法(discriminative approach)。所学到的模型分别为生成模型(generative model)判别模型(discriminative model)**。

生成模型

先由数据学习联合概率分布 P ( x , y ) P(x,y) P(x,y)和先验概率分布 P ( x ) P(x) P(x),然后求出条件概率分布 P ( y ∣ x ) = P ( x , y ) / P ( x ) P(y|x)=P(x,y)/P(x) P(yx)=P(x,y)/P(x)作为预测的模型,即得到生成模型: P ( y ∣ x ) = P ( x , y ) P ( x ) P(y|x)= \frac{P(x,y)}{P(x)} P(yx)=P(x)P(x,y) 生成方法强调的是:通过得到 P ( x , y ) P(x,y) P(x,y),继而得到 P ( y ∣ x ) P(y|x) P(yx)

这样的方法之所以称为生成方法,是因为模型表示了给定输入 x x x 产生输出 y y y 的生成关系。这种方法一般建立在统计学和Bayes理论的基础之上。

特点
  • 从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度,但它不关心到底划分各类的那个分类边界在哪。
  • 生成方法能还原出联合概率分布,而判别方法不能
  • 生成方法的学习收敛速度更快、即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型
  • 当存在隐变量时,仍可以用生成方法学习,此时判别方法不能用
典型的生成模型
  • 朴素贝叶斯分类器
  • 马尔科夫模型
  • 高斯混合模型


判别模型

判别方法由数据直接学习决策函数 f ( x ) f(x) f(x)或者条件概率分布 P ( y ∣ x ) P(y|x) P(yx)作为预测的。判别模型利用正负例和分类标签,关注在判别模型的边缘分布。
判别方法强调的是:对给定的输入 x x x,应该预测什么样的输出 y y y

特点
  • 判别方法寻找不同类别之间的最优分类面,反映的是异类数据之间的差异
  • 判别方法利用了训练数据的类别标识信息,直接学习的是条件概率P(Y|X)或者决策函数f(X),直接面对预测,往往学习的准确率更高
  • 由于直接学习条件概率P(Y|X)或者决策函数f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题
  • 缺点是不能反映训练数据本身的特性
典型的判别模型
  • k近邻法
  • 感知机
  • 决策树
  • logistic回归
  • 最大熵模型
  • SVM
  • boosting方法
  • 条件随机场

这里推荐一篇Andrew Ng讨论判别模型和生成模型的paper:
On Dicriminative vs. Generative classfier: A comparison of logistic regression and naive Bayes


References:
《统计学习方法》 李航
生成模型与判别模型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值