生成模型(generative model)与判别模型(discriminative model)的区别

监督学习可以分为生成方法与判别方法,所学到的模型可以分为生成模型与判别模型。

生成模型

生成模型由数据学习联合概率分布\(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近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、SVM、CRF等等

区别

生成方法的特点

  • 生成方法可以还原出联合概率分布\(P(X,Y)\),而判别方法则不能;
  • 生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型;
  • 当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。

判别方法的特点

  • 判别方法直接学习的是条件概率\(P(Y|X)\)或决策函数\(f(X)\),直接面对预测,往往学习的准确率更高;
  • 由于直接学习\(P(Y|X)\)或\(f(X)\),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

上述内容摘自于李航老师的《统计学习方法》一书。

我的理解是,生成模型在学习过程中可以得到联合分布,但其最终学习的目标可以不是联合分布,可以与判别模型一样学习条件概率分布。联合分布虽然能提供更多的信息,但也需要更多的样本和更多的计算。因此,对于样本数量较少的问题,优先考虑判别模型。

上一篇:ASP.NET 多语言的实现(后台消息+前台消息+页面自动绑定)


下一篇:快速配置vs2012+opencv