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

一、判别式模型与生成式模型简介

1、判别模型(Discriminative Model)
是直接对条件概率 P ( Y ∣ X ; θ ) \displaystyle P( Y|X;\theta ) P(YX;θ)建模。判别式方法关心的是给定输入 X X X,应该预测什么样的输出 Y Y Y
2、生成模型(Generative Model)
是对X和Y的联合概率分布P(X,Y)建模,然后通过贝叶斯公式求得 P ( y i ∣ x ) \displaystyle P( y_{i} |x) P(yix),取 P ( y i ∣ x ) \displaystyle P( y_{i} |x) P(yix)最大的 y i \displaystyle y_{i} yi。生成方法关心的是给定输入x产生输出y的生成关系。
【机器学习】判别式模型与生成式模型_第1张图片

对比 判别式模型 生成式模型
特点 寻找不同类别之间的最优分类面,反映异类数据之间的差异 以统计的角度表示数据的分布情况,能够反映同类数据本身的相似度
区别 估计的是条件概率分布 估计的是联合概率分布 P(x,y)
联系 由判别式模型不能得到生成式模型 由生成式模型可以得到判别式模型(贝叶斯公式)
优势 (1)能清晰地分辨出多类或某一类与其他类之间的差异特征;(2)适用于较多类别的识别;(3)模型更简单 (1)研究单类问题比判别式模型更灵活;(2)模型可以通过增强学习得到;(3)能用于数据不完整的情况。
缺点 不能反映训练数据本身的特性 学习和计算过程比较复杂
性能 较好(因为利用了训练数据的类别标识信息) 较差
常见模型 KNN,SVM,决策树,线性回归,LR,boosting,线性判别分析(LDA),条件随机场,感知机,传统神经网络 朴素贝叶斯,隐马尔科夫模型,高斯混合模型,限制玻尔兹曼机
主要应用场 图像文本分类,时间序列预测 NLP,医疗诊断

二、原理与区别

对于判别式模型来说求得 P ( Y ∣ X ) P(Y|X) P(YX),对未见示例 X X X,根据 P ( Y ∣ X ) P(Y|X) P(YX)可以求得标记 Y Y Y,即可以直接判别出来,如下图的左边所示,实际是就是直接得到了判别边界,所以传统的、耳熟能详的机器学习算法如线性回归模型、支持向量机SVM等都是判别式模型,这些模型的特点都是输入属性 X X X可以直接得到 Y Y Y(对于二分类任务来说,实际得到一个score,当score大于threshold时则为正类,否则为反类)而生成式模型求得P(X,Y),对于未见示例X,要求出X与不同标记之间的联合概率分布,然后大的获胜。如下图右边所示,并没有判断边界存在,对于未见示例X(红三角),求两个联合概率分布(有两个类),比较一下,取那个大的。
【机器学习】判别式模型与生成式模型_第2张图片

三、举个例子

1、判别式模型举例:
要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。
2、生成式模型举例:
利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。


参考文献:
1、谈谈判别式模型与生成式模型: https://blog.csdn.net/huangfei711/article/details/79834780
2、机器学习之判别式模型和生成式模型:https://www.cnblogs.com/nolonely/p/6435213.html
3、机器学习“判定模型”和“生成模型”有什么区别?:https://www.zhihu.com/question/20446337/answer/256466823

你可能感兴趣的:(机器学习)