问题
判别式模型和生成式模型是机器学习中很重要的两个概念,也是笔试面试中很可能出现的问题,这里整理一遍是为了让自己更好地理解和区分这两者之间的不同。
概念
假设可观测到的变量集合为X,其他变量集合为Z,需要预测的变量集合为Y,则:
判别式模型: 是指在给定X情况下,直接对**条件概率分布P(Y,Z|X)进行建模来预测 Y。
P
(
Y
∣
X
)
=
∑
Z
P
(
Y
,
Z
∣
X
)
P(Y|X)=\sum_{Z}P(Y,Z|X)
P(Y∣X)=Z∑P(Y,Z∣X)
生成式模型: 是指先对联合概率分布P(X, Y, Z)**进行建模,然后在给定X的情况下,通过计算边缘分布来预测 Y。
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
=
∑
Z
P
(
X
,
Y
,
Z
)
∑
Y
,
Z
P
(
X
,
Y
,
Z
)
P(Y|X)=\frac{P(X,Y)}{P(X)}=\frac{\sum_{Z}P(X,Y,Z)}{\sum_{Y,Z}P(X,Y,Z)}
P(Y∣X)=P(X)P(X,Y)=∑Y,ZP(X,Y,Z)∑ZP(X,Y,Z)
比较
参考了一篇博客,总结自 Andrew Ng 在NIPS 2001年一篇关于判别式模型和生成式模型的比较的文章
On Discrimitive vs. Generative classifiers: A comparision of logistic regression and naive Bayes
类别 | 判别式模型(Discriminative Model) | 生成式模型(Generative Model) |
---|---|---|
特点 | 寻找不同类别之间的最优分类面,反映的是异类数据之间的差异 | 对后验概率建模,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度 |
联系 | 由生成式模型可以得到判别式模型, | 但由判别式模型得不到生成式模型 |
本质区别 | 对**条件概率分布P(Y|X)**建模 | 对**联合概率分布P(X,Y)**建模 |
常见模型 | Linear Regression Logistic Regression SVM KNN 神经网络 线性判别分析(LDA) 最大熵模型 条件随机场(CRF) | 贝叶斯网络 朴素贝叶斯 隐马尔科夫模型(HMM) 高斯混合模型(GMM) 文档主题生成模型(LDA) pLSA |
优点 | ①性能相对于生成式更简单,更容易学习 ②适用较多类别的识别 ③能清晰分辨出多类或一类与其他类之间的差异特征 | ①能用于数据不完整的情况 ②研究单类问题比判别式灵活 ③实际上带的东西要比判别式更丰富 ④模型可以通过增量学习得到 |
缺点 | 不能反映数据本身的特性 | 学习和计算过程比较复杂 |
性能 | 较好(原因是利用了训练数据的类别标识信息) | 较差 |
主要应用 | ①图像和文本分类 Image and document classification ②生物序列分析 Biosequence analysis ③时间序列预测 Time series prediction | ①NLP ②医学诊断(Medical Diagnosis) |
补充1
摘取另一个博主的观点: 判别式模型与生成式模型
类别 | 判别式模型(Discriminative Model) | 生成式模型(Generative Model) |
---|---|---|
模型错误率 | 较低 | 更高 |
检测异常值 | 不能 | 能(因为模型学习了所有的分布) |
利用无标签数据 | 不能 | 能(如DBN网络) |
补充2
摘取自《统计学习方法》
判别式模型的特点:判别方法直接学习的是条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X) 或决策函数 f ( X ) f(X) f(X) ,直接面对预测,往往学习的准确率更高;由于直接学习 P ( Y ∣ X ) P(Y|X) P(Y∣X) 或决策函数 f ( X ) f(X) f(X) ,可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
生成式模型的特点:生成式方法可以还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y) ,而判别式不能;生成式学习方法收敛速度更快,即当样本容量增加的时候,学到的模型可以更快收敛于真实模型(对此我的理解是在增加样本之前,模型已经学得数据的整体分布,因此当新样本进来后,很容易确定新样本所属的类别);当存在隐变量时,仍可以使用生成式模型,但是判别式模型不可使用