监督学习的任务是学习一个“模型”。这个模型可以使给定的样本数据生成一个输出数据,且这个输出数据应尽可能与标签数据吻合。监督学习方法可以分为两大类:当学到的这个模型是真正的“模型”时,我们称之为生成方法(generative approach)。当学到的模型只是一种映射关系时,称为判别方法(discriminative approach)。对应的模型分别叫做生成模型(generative model)与判别模型(discriminative model)。
从定义我们可以看出两个模型之间最明显的区别:生成模型可以“生成”数据,判别模型只能对输入数据作"判别/预测"。再从公式切入:
生成模型: P ( Y ∣ X ) = P ( X , Y ) P ( X ) P\left( {Y|X} \right) = \frac{{P\left( {X,Y} \right)}}{{P\left( X \right)}} P(Y∣X)=P(X)P(X,Y)
因此生成模型可以还原出联合概率分布 P ( X , Y ) P\left({X,Y}\right) P(X,Y)
判别模型:直接学习 P ( Y ∣ X ) P\left( {Y|X} \right) P(Y∣X)或决策函数 f ( X ) f\left( {X} \right) f(X)
在应用方面:
山羊绵羊分类问题:
生成模型:根据山羊、绵羊样本的特征建立山羊模型、绵羊模型。输入一只新的小羊特征,分别计算新的小羊属于山羊、绵羊的概率各为多少。
判别模型:提取小羊特征,输入一个大模型中,直接输出小羊分别是山羊、绵羊的概率。
典型的模型举例
生成模型:naive Bayes、HMM
判别模型:KNN(K近邻)、感知机、决策树、logistic regression、最大熵模型、支持向量机、提升方法、条件随机场。
优缺点:
生成方法:
- 收敛速度更快。当有大量样本数据时,学到的模型能更快的收敛于真实模型。
- 当存在隐变量时,生成方法可以work,判别方法不work(die)。
判别方法:
- 直接学习的是 P ( Y ∣ X ) P\left( {Y|X} \right) P(Y∣X)或决策函数 f ( X ) f\left( {X} \right) f(X),直接面对预测,准确率高。
- 由于学习的是一种判决关系,则可以对数据进行各种程度的抽样、定义特征和使用特征,因此可以简化学习问题。