【机器学习】判别模型和生成模型

判别模型与生成模型

判别模型 (Discriminative Model)

定义

直接对条件概率 \(P(Y|X;\theta)\)建模。常见的模型有线性回归模型,线性判别分析,支持向量机,神经网络,boosting,条件随机场。

分析

优点

  1. 直观(另一个同义词是简单粗暴)
  2. 准确率高

缺点

  1. 收敛慢
  2. 无法用于 outlier detection 等任务
  3. 无法处理隐变量

生成模型 (Generative Model)

定义

先对\(X\)\(Y\)的联合分布\(P(X,Y)\)建模,然后通过贝叶斯公式求得\(P(Y_i|X)\),然后选取使得\(P(Y_i|X)\)最大的\(Y_i\)。常见模型有隐马尔可夫模型、朴素贝叶斯模型、高斯混合模型、LDA 主题模型(注意不是 LDA 线性判别分析啊,那个是判别模型)。

分析

优点

  1. 给出的是联合分布,不仅能够计算我们需要的条件分布\(P(Y|X)\),还能得到数据分布的信息\(P(X,Y)\)并由此实现一些功能例如 outlier detection
  2. 因为存在先验知识,生成模型往往比较简单,需要估计的参数较少,收敛速度快,并且对噪声更加鲁棒。
  3. 生成模型能够用于存在隐变量的情况,例如 HMM
  4. 生成模型需要两部分,这两个部分可以来自于不同的训练数据和训练方法。例如在语音辨识任务中,从语音到文字的转换是 discriminative model,而文字到有意义的文本可能采用了 HMM 等 generative model。整个模型是基于 generative 思想的。

缺点

  1. \(P(X,Y)\)的估计对样本数量要求很高。在样本量较小时,\((X,Y)\)分布非常稀疏,几乎无法估计。但是!如果引入一些假设降低复杂度,例如朴素贝叶斯等模型(参见周志华.机器学习),那么样本量和计算资源的需求会大大降低。这条就不再是缺点而是优点了。
  2. 生成模型给出的先验分布往往非常简单且不符合实际情形,所以对复杂数据集效果很差。实践中判别模型的效果往往更好。
Discriminative Model Generative Model
特征 Only care about estimating the conditional probabilities Model observations (X,Y) first then infer P(Y
适用场景 Very good when underlying distribution of data is really complicated (e.g. texts, images, videos) Good for missing variables, better diagnostics
先验知识 Easy to add prior knowledge about data
常用模型 Linear Regression, Logistic Regression, LDA, SVM, Decision Tree, KNN, NN, boosting, CRF HMM, Naïve Bayes, GMM

Reference:

  1. 周志华.机器学习
  2. 知乎.机器学习“判定模型”和“生成模型”有什么区别?
posted @ 2020-09-20 17:06  许瑞晗  阅读(531)  评论(0)    收藏  举报