机器学习系列-生成模型和判别模型

前言

监督学习模型可以分为生成模型(generative model)和判别模型(discriminative model)

1.生成模型和判别模型

判别模型由数据直接学习决策函数 f ( x ) f(x) f(x)或者条件概率分布 P ( y ∣ x ) P(y|x) P(yx)作为预测的模型,即判别模型。判别方法关心的是对给定输入 x,应该预测什么样的输出 y。
比如说要确定一只羊是山羊还是绵羊,用判别模型的方法是先从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,还是绵羊的概率。

生成模型由数据学习输入和输出联合概率分布 P ( x , y ) P(x,y) P(x,y),然后求出后验概率分布 P ( y ∣ x ) P(y|x) P(yx)作为预测的模型,即生成模型。这里以朴素贝叶斯为例,我们要求的目标可以通过:
P ( x , y ) = P ( x ∣ y ) P ( y ) P(x,y) = P(x|y)P(y) P(x,y)=P(xy)P(y)
求出输入输出的联合概率分布,然后通过贝叶斯公式:
P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) P(y|x) = \frac {P(x|y)P(y)}{P(x)} P(yx)=P(x)P(xy)P(y)
求出后验概率分布。

对于上面的例子我们换种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。
然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。
由于我们关注的是 y 的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此上式改写为:
a r g m a x y P ( y ∣ x ) = a r g m a x y P ( x ∣ y ) P ( y ) P ( x ) = a r g m a x y P ( x ∣ y ) P ( y ) arg max_y P(y|x) = arg max_y \frac {P(x|y)P(y)}{P(x)} = arg max_y P(x|y)P(y) argmaxyP(yx)=argmaxyP(x)P(xy)P(y)=argmaxyP(xy)P(y)
其中 P ( x ∣ y ) P(x|y) P(xy)称为条件概率(class-conditional probability),或称为“似然”(likelihood), P ( y ) P(y) P(y)称为先验(prior)概率。
P ( x ) P(x) P(x)是用于归一化的"证据"因子。对于给定样本 x,证据因子 P ( x ) P(x) P(x) 与类标记无关,因此估计 P ( y ∣ x ) P(y|x) P(yx)的问题就转化为如何基于训练数据来估计先验 P ( y ) P(y) P(y)和似然 P ( x ∣ y ) P(x|y) P(xy)

不管是生成式模型还是判别式模型,它们最终的判断依据都是条件概率,但是生成式模型先计算了联合概率,再由贝叶斯公式计算得到条件概率。因此,生成式模型可以体现更多数据本身的分布信息,其普适性更广。

举个例子:

假设现在有一个分类问题,X是特征,Y是类标记。用判别式模型学习一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX),用生成式模型学习一个联合概率分布 P ( x , y ) P(x,y) P(x,y)。用一个简单的例子来说明这个问题。假设X有两个取值(1或2),Y有两类(0或1),有如下训练样本(1,0)、(1,0)、(1,1)、(2,1)。

则学习到的条件概率分布(判别式模型)如下:
P ( y = 0 ∣ x = 1 ) = 2 3 P(y=0|x=1) = \frac{2}{3} P(y=0∣x=1)=32

而学习到的联合概率分布(生成式模型)如下:

  1. 计算特征 X X X的频率分布:
    P ( x = 1 ) = 3 4 P(x=1)=\frac {3}{4} P(x=1)=43
    P ( x = 2 ) = 1 4 P(x=2)=\frac {1}{4} P(x=2)=41
  2. 计算标签 Y Y Y的频率分布:
    P ( y = 0 ) = 2 4 P(y=0)=\frac {2}{4} P(y=0)=42
    P ( y = 1 ) = 2 4 P(y=1)=\frac {2}{4} P(y=1)=42

P ( x = 1 , y = 0 ) = P ( x = 1 ∣ y = 0 ) P ( y = 0 ) = 1 ∗ 1 2 = 1 2 P(x=1,y=0) = {P(x=1|y=0)P(y=0)} = 1 * \frac {1}{2} = \frac {1}{2} P(x=1,y=0)=P(x=1∣y=0)P(y=0)=121=21
P ( x = 2 , y = 0 ) = P ( x = 2 ∣ y = 0 ) P ( y = 0 ) = 0 ∗ 1 2 = 0 P(x=2,y=0) = {P(x=2|y=0)P(y=0)} = 0 * \frac {1}{2} = 0 P(x=2,y=0)=P(x=2∣y=0)P(y=0)=021=0
P ( x = 1 , y = 1 ) = P ( x = 1 ∣ y = 1 ) P ( y = 1 ) = 1 2 ∗ 1 2 = 1 4 P(x=1,y=1) = {P(x=1|y=1)P(y=1)} = \frac {1}{2} * \frac {1}{2} = \frac {1}{4} P(x=1,y=1)=P(x=1∣y=1)P(y=1)=2121=41
P ( x = 2 , y = 1 ) = P ( x = 2 ∣ y = 1 ) P ( y = 1 ) = 1 2 ∗ 1 2 = 1 4 P(x=2,y=1) = {P(x=2|y=1)P(y=1)} = \frac {1}{2} * \frac {1}{2} = \frac {1}{4} P(x=2,y=1)=P(x=2∣y=1)P(y=1)=2121=41

在实际分类问题中,判别式模型可以直接用来判断特征的类别情况;而生成式模型需要加上贝叶斯公式
P ( y = 0 ∣ x = 1 ) = P ( x = 1 , y = 0 ) / P ( x = 1 ) = 1 2 / 3 4 = 2 3 P(y=0|x=1)=P(x=1,y=0)/P(x=1)=\frac {1}{2} / \frac {3}{4}= \frac {2}{3} P(y=0∣x=1)=P(x=1,y=0)/P(x=1)=21/43=32
然后应用到分类中。但是,生成式模型的概率分布可以有其他应用,就是说生成式模型更一般更普适。不过判别式模型更直接,更简单。两种方法目前交叉较多。由生成式模型可以得到判别式模型,但由判别式模型得不到生成式模型。

2.常见的生成模型和判别模型

常见的判别模型有

  • 线性回归
  • 逻辑回归
  • 线性判别分析(Linear Discriminant Analysis,LDA)
  • 支持向量机(SVM)
  • K最近邻(KNN)
  • 条件随机场(CRF)
  • 神经网络
  • 区分度训练

常见的生成模型有

  • 隐马尔科夫模型(HMM)
  • 马尔科夫随机场(Markov Random Fields)
  • 朴素贝叶斯模型(Naive Bayes)
  • 高斯混合模型(Gaussian Mixture Model,GMM)
  • 狄利克雷分布模型(Latent Dirichlet Allocation,LDA)
  • 受限玻尔兹曼机(Restricted Boltzmann Machine)
  • 深度信念网络(DBN)

3.判别式模型和生成式模型的优缺点

  • 判别式模型是在寻找一个决策边界,通过该边界来将样本划分到对应类别。
  • 生成式模型则不同,它学习了每个类别的边界,包含了更多信息,可以用来生成样本。
优点缺点
判别式模型1、对条件概率建模,学习不同类别之间的最优边界,预测时拥有较好性能。
2、学习成本较低,需要的计算资源较少。
3、需要的样本数可以较少,少样本也能很好学习。
1、捕捉不同类别特征的差异信息,不学习本身分布信息,无法反应数据本身特性。
2、无法转换成生成式。
生成式模型1、对联合概率建模,学习所有分类数据的分布,因此学习到的数据本身信息更多,能反应数据本身特性。
2、一定条件下能转换成判别式。
1、推断时性能较差。
2、学习成本较高,需要更多的计算资源。
3、需要的样本数更多,样本较少时学习效果较差。

ps:生成式模型的学习收敛速度更快,当样本容量增加时,学习到的模型可以更快的收敛到真实模型,当存在隐变量时,依旧可以用生成式模型,此时判别式方法就不行了。

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
判别模型生成模型机器学习中两种常见的模型类型。生成模型是通过学习数据的分布来建立模型P(y|x),然后利用该模型生成新的数据。典型的生成模型有朴素贝叶斯模型,它通过学习数据的分布来建立概率模型,然后利用该模型生成新的数据。判别模型是通过学习输入和输出之间的映射关系来建立模型y=f(x),然后利用该模型来预测新的输出。典型的判别模型有支持向量机模型,它通过学习输入和输出之间的映射关系来建立分类模型,然后利用该模型来预测新的分类结果。生成模型判别模型都有各自的优缺点,选择哪种模型取决于具体的应用场景和数据特征。常见的生成模型包括决策树、朴素贝叶斯、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在狄利克雷分配、高斯混合模型。常见的判别模型包括感知机、支持向量机、K临近、Adaboost、K均值、潜在语义分析、神经网络。逻辑回归既可以看做是生成模型,也可以看做是判别模型。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [生成模型判别模型](https://blog.csdn.net/weixin_46359306/article/details/130422585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [判别模型生成模型](https://blog.csdn.net/Ai_ViVi/article/details/41204309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海一叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值