一、概念
对于输入x,类别标签y:
- 产生式模型估计它们的联合概率分布P(x,y)
- 判别式模型估计条件概率分布P(y|x)
产生式模型可以根据贝叶斯公式得到判别式模型,但反过来不行。
生成模型估计的是联合概率分布,然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。
生成方法关心的是给定输入x产生输出y的生成关系。
判别模型估计的是条件概率分布,有数据直接学得决策函数P(X)或者条件概率分布P(Y|X)作为预测的模型。
判别式方法关心的是给定输入X,应该预测什么样的输出Y
二、例子
比如说要确定一只羊是山羊还是绵羊,
用生成模型的方法是我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型P(w1|X)中看概率是多少,再放到绵羊模型P(w2|X)中看概率是多少,若P(w1|X)>P(w2|X),那么我们就认为X是属于w1类,即该羊属于山羊。
用判别模型的方法是先从历史数据中学习到模型,然后通过提取这只羊的特征x来预测出这只羊f(X)是山羊的概率,是绵羊的概率。
三、优缺点
3.1 生成方法
优点:
- 可以还原联合分布率(判别式模型不可以)
- 学习的收敛速度更快,即:当样本容量增加的时候,学到的模型可以更快地收敛于真实模型
- 可以应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法。
缺点:
- 浪费计算资源。联合分布是能提供更多的信息,但也需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件概率的许多信息是我们做分类用不到,因而如果我们只需要做分类任务,就浪费了计算资源。
- 实践中多数情况下判别模型效果更好
3.2 判别方法
优点:
- 节约了计算资源,相比较于生成模型而言
- 直接学习条件概率或者决策函数,直接面对预测往往学习效率更高
- 直接学习可以对数据进行各种程度上的的抽象、定义特征并使用特征,因此可以简化学习问题
缺点:
- 对应生成模型的优点
3.3 两者的区别和联系
- 由生成模型可以得到判别模型,但由判别模型得不到生成模型。
- 当存在隐变量(当我们找不到引起某一现象的原因的时候,我们就把这个在起作用,但是,无法确定的因素,叫“隐变量”) 时,仍可以利用生成方法学习,此时判别方法不能用。
四、模型实例
4.1 生成式模型
- 判别式分析
- 朴素贝叶斯Native Bayes
- 混合高斯型Gaussians
- 隐马尔科夫模型HMM
- 贝叶斯网络
- sigmoid belief networks
- 马尔科夫随机场Markov random fields
- 深度信念网络DBN
- 隐含狄利克雷分布简称LDA(Latent Dirichlet allocation)
- 多专家模型(the mixture of experts model)
4.2 判别式模型
- 感知机
- 决策树
- 逻辑回归
- K近邻
- 最大熵模型
- 支持向量机
- 提升方法Boosting
- 神经网络NN
- 高斯过程Gaussian process
- 条件随机场CRF
- CART(Classification and regression tree)