在李航的书中讲到,监督学习方法可以分为生成方法(generative approach)和判别方法 (discriminative approach) 。所学习到的模型分别称为生成模型和判别模型。

之前一直搞不清楚这俩模型区别到底是什么,课程中也只是学习了一下条件概率和联合概率分布,理解总是有些偏差。 对于生成方法,模型通过对数据进行学习,得到联合概率分布$P(X,Y)$,然后求出条件概率分布$P(Y|X)$作为预测的模型。 也就是说:

$$P(Y|X)=\frac{P(X,Y)}{P(X)}$$

这个方法之所以称之为生成方法,是因为模型表示了给定输入$X$产生输出$Y$的生成关系。 典型的生成模型有朴素贝叶斯法和隐马尔可夫模型。

判别方法由数据直接学习决策函数$f(X)$或者条件概率分布$P(Y|X)$作为预测模型,即判别模型。 判别方法关心的是给定输入$X$,应该预测什么样的输出$Y$。

典型的判别模型包括:k近邻法、感知机、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法和条件随机场等。

隐变量是不可观测的随机变量。

区别

  1. 对生成方法而言,学习收敛的速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型。如果存在隐变量,判别方法就不能用。
  2. 对于判别方法而言,直接学习条件概率$P(Y|X)$或决策函数$f(X)$,直接面对预测,往往学习的准确率更高。

我的理解:区别是一个是学习$P(X,Y)$,因此如果输入的样本发生变化,即$P(X)$发生变化,那么$P(Y|X)$只需要进行简单计算。相比之下, 直接使用$P(Y|X)$的模型则可能需要重新训练。

附录

决策函数指的是应用监督学习的方法:$Y=f(X)$,或者条件概率分布$P(Y|X)$。