【机器学习】判别模型和生成模型
判别模型与生成模型
判别模型 (Discriminative Model)
定义
直接对条件概率 \(P(Y|X;\theta)\)建模。常见的模型有线性回归模型,线性判别分析,支持向量机,神经网络,boosting,条件随机场。
分析
优点
- 直观(另一个同义词是简单粗暴)
- 准确率高
缺点
- 收敛慢
- 无法用于 outlier detection 等任务
- 无法处理隐变量
生成模型 (Generative Model)
定义
先对\(X\)和\(Y\)的联合分布\(P(X,Y)\)建模,然后通过贝叶斯公式求得\(P(Y_i|X)\),然后选取使得\(P(Y_i|X)\)最大的\(Y_i\)。常见模型有隐马尔可夫模型、朴素贝叶斯模型、高斯混合模型、LDA 主题模型(注意不是 LDA 线性判别分析啊,那个是判别模型)。
分析
优点
- 给出的是联合分布,不仅能够计算我们需要的条件分布\(P(Y|X)\),还能得到数据分布的信息\(P(X,Y)\)并由此实现一些功能例如 outlier detection
- 因为存在先验知识,生成模型往往比较简单,需要估计的参数较少,收敛速度快,并且对噪声更加鲁棒。
- 生成模型能够用于存在隐变量的情况,例如 HMM
- 生成模型需要两部分,这两个部分可以来自于不同的训练数据和训练方法。例如在语音辨识任务中,从语音到文字的转换是 discriminative model,而文字到有意义的文本可能采用了 HMM 等 generative model。整个模型是基于 generative 思想的。
缺点
- \(P(X,Y)\)的估计对样本数量要求很高。在样本量较小时,\((X,Y)\)分布非常稀疏,几乎无法估计。但是!如果引入一些假设降低复杂度,例如朴素贝叶斯等模型(参见周志华.机器学习),那么样本量和计算资源的需求会大大降低。这条就不再是缺点而是优点了。
- 生成模型给出的先验分布往往非常简单且不符合实际情形,所以对复杂数据集效果很差。实践中判别模型的效果往往更好。
| 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:
- 周志华.机器学习
- 知乎.机器学习“判定模型”和“生成模型”有什么区别?

浙公网安备 33010602011771号