生成模型与判别模型

本文详细解析了机器学习中生成模型与判别模型的概念,对比了它们在分类问题中的应用,包括贝叶斯分类器、logistic回归、决策树、支持向量机等模型的原理与特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎关注个人微信公众号,大大大碗面,不定期分享AI论文解读和开发技术,互联网小白,轻喷~
在这里插入图片描述
我们都知道,对于有监督的机器学习中的分类问题,求解问题的算法可以分为生成模型与判别模型两种类型。但是,究竟什么是生成模型,什么是判别模型?今天我们将准确、清晰的解释这一组概念。

第一种定义

对于判别模型与生成模型有两种定义,第一种定义针对的是有监督学习的分类问题。该问题的目标是给定一个样本的向量xxx(可以是原始数据如图像,声音,也可以是提取出来的特征向量),在这里我们将它称为输入向量,目标是预测出这个样本的类别yyy即标签值,一般是一个离散的标量,即类别编号。因此算法要解决的核心问题是更具训练样本建立下面这样的映射函数:

y=f(x)y = f(x)y=f(x)

对与这个问题,有三种求解思路:

第一种做法称为生成模型。一直输入变量xxx和目标变量yyy,先对他们的联合概率分布p(x,y)p(x,y)p(x,y)建模,然后计算样本属于每一个类别的条件概率p(y∣x)p(y|x)p(yx)即后验概率,按照这个值来完成分类,例如将样本分到概率p(y∣x)p(y|x)p(yx)最大的那个类。根据概率论的知识,有:

p(y∣x)=p(x,y)p(x)p(y|x) = \frac{p(x,y)}{p(x)}p(yx)=p(x)p(x,y)

这里,p(x,y)p(x,y)p(x,y)为连个概率密度函数,p(x)p(x)p(x)为样本输入向量xxx的边缘密度函数。对上面这种做法的直观解释为:我们已知某一个样本具有某种特征xxx,现在要确定它输入哪个类,而自然的因果关系是,样本之所以具有这种特征xxx,是因为它属于某一类。例如,我们要根据体重,脚的尺寸这两个特征xxx来判断一个人是男性还是女性,我们都知道,男性的体重总体来说比女性大,脚的尺寸也更大,因此从逻辑上来说,是因为一个人是男性,因此才有这种大的体重和脚尺寸。而在分类任务中要做的却相反,是给了你这样个特征的样本,让你反推这人是男性还是女性。

联合概率密度函数等于类概率p(y)p(y)p(y)与类条件概率p(x∣y)p(x|y)p(xy)即先验概率的乘积,即:

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)

这就是贝叶斯公式。它完成了因果转换,我们要完成的是由果推断因,而在训练时我们建立的是因到果的模型及p(x∣y)p(x|y)p(xy),即男性和女性的体重、脚尺寸分别服从的概率分布。

总结起来,生成模型对联合概率p(x,y)p(x,y)p(x,y)建模,根据它,我们可以得到类后验概率p(y∣x)p(y|x)p(yx)。事实上,这种做法不仅仅局限于分类问题,如果将xxx看做可以观测的变量,yyy看做不可观测到的变量,只要具有这种特征的问题,我们都可以建立生成模型。

  • 生成模型典型代表之一:贝叶斯分类器,它对类条件概率p(x∣y)p(x|y)p(xy)进行建模,而p(x∣y)p(y)p(x|y)p(y)p(xy)p(y)就是联合概率p(x,y)p(x,y)p(x,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) 。如果只用于分类而不需要给出具体的概率值,则分母p(x)p(x)p(x)对所有类型yyy都是一样的,只需要计算分子p(x∣y)p(y)p(x|y)p(y)p(xy)p(y)。如果我们假设每个类yyy的样本的特征向量xxx的每个分量相互独立,则可以得到朴素贝叶斯分类器,如果假设每个类的样本服从正态分布,则p(x∣y)p(x|y)p(xy)为正态分布,此时为正态贝叶斯分类器。

  • 生成模型另外一个典型代表:玻尔兹曼机(RBM),这是一种随机性的神经网络,由两类神经元组成(每一类为一个层),两个层之间有连接关系,第一种神经元为可见变量,即可以直接观测到的值v,如图像的每个像素。第二类为隐含变量h,是不能直接观测到的变量,如图像的特征。vh的联合概率服从玻尔兹曼分布:

p(v,h)=1Zθexp(−Eθ(v,h))=1Zθexp(vTWh+bTv+dTh)p(v,h)=\frac{1}{Z_{\theta}} exp(-E_{\theta}(v,h)) = \frac{1}{Z_{\theta}}exp(v^{T}Wh + b^{T}v + d^{T}h)p(v,h)=Zθ1exp(Eθ(v,h))=Zθ1exp(vTWh+bTv+dTh)

根据这个联合概率,我们可以很容易得到条件概率p(x∣y)p(x|y)p(xy)p(y∣x)p(y|x)p(yx)。例如为了得到p(y∣x)p(y|x)p(yx),可以先求边缘概率p(x)p(x)p(x),对于离散型随机变量,对yyy的概率求和,对于连续型随机变量,则为求积分,然后有: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)
生成模型最显著的一个特征就是假设样本向量xxx服从何种分布,如正态分布,均匀分布。

第二种做法称为判别模型。已知输入变量xxx,它直接对目标变量yyy的条件概率p(y∣x)p(y|x)p(yx)建模。即计算样本xxx属于 每一类的概率。注意,这里和生成模型有一个本质的区别,那就是不用假设xxx服从何种概率分布,而是直接估计出条件概率p(y∣x)p(y|x)p(yx)

这种模型的典型代表是logistic回归softmax回归,他们直接对目标变量yyy的条件概率p(y∣x)p(y|x)p(yx)进行建模,而不是对p(x,y)p(x,y)p(x,y)进行建模。logistic回归用于二分类问题,它直接根据样本x估计出它是正样本的概率:

p(y=1∣x)=11+exp(−wTx+b)p(y=1 | x)= \frac{1}{1+exp(-w^{T}x + b)}p(y=1x)=1+exp(wTx+b)1

注意,这里只是猜测出这个概率; 而没有假设每个类的样本服从何种概率分布,即没有对p(x∣y)p(x|y)p(xy)或者p(x,y)p(x, y)p(x,y)建模。

第三种做法最直接,分类器本部就不建立概率模型,而是直接得到分类结果,这种非概率模型,也称为判别模型。它直接根据样本向量xxx预测出类别编号yyyy=f(x)y=f(x)y=f(x)

这类模型的典型代表是决策树支持向量机随机森林kNN算法AdaBoost算法xgboost,标准的人工神经网络(包括全连接神经网络,卷积神经网络,循环神经网络等)。如果神经网络的最后一层是softmax变换,即softmax回归,则可以归到第二种情况里,如果没有使用,则是这第三种情况。

这列模型没有使用概率的观点进行建模,而是使用几何或者分析(函数)的手段建模,如找出分类超平面或者曲面,直接得到映射函数。

一般来说,我们把使用第一种模型的分类器称为生成式分类器,把使用第二种和第三种模型的分类器称为判别式分类器。

第二种定义

除此之外,对生成模型和判别模型还有另外一种定义。生成模型是已知样本的标签值yyy,对样本的特征向量xxx的条件概率进行建模,即对条件概率p(x∣y)p(x|y)p(xy)建模,它研究的是每种样本服从何种概率分布。判别模型则刚好相反,已知样本的特征向量xxx,对样本的标签值yyy的概率进行建模,即对条件概率p(y∣x)p(y|x)p(yx)建模,这种一般用于分量,即给定样本xxx,计算它属于每个类的概率。

根据这种定义,生成模型可以用来根据标签值yyy生成随机的样本数据xxx。生成对抗网络(GAN)就是典型的例子,它可以生成服从某种概率分布的随机变量,即拟合类条件概率密度函数p(x∣y)p(x|y)p(xy),而此时它的目的不是分类,而是生成样本。事实上,如果我们知道了p(x∣y)p(x|y)p(xy)或者p(x,y)p(x, y)p(x,y),无论是用来做分类,还是用来做数据生成,都是可以的。

而判别模型以及不使用概率模型的判别型分类器则根据样本特征向量xxx的值判断它的标签值yyy,即用于判断样本的标签值yyy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值