判别式模型与生成式模型

本文探讨机器学习中判别式模型与生成式模型的区别,前者关注数据分类,后者侧重数据生成,揭示两者在知识含量及应用上的差异。

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

判别式模型与生成式模型

机器学习模型有两个重要类别:判别式模型与生成式模型。这两种模型的区别,是很多初学者会遇到的一个坎儿。

判别式模型的意思是,给出一条数据,模型要为数据给出一个类别。一般来说,数据是比较复杂的,比如一句话、一张图这样的;类别则比较简单,一般就是「是」或「否」,或者有限的几个类别。用 X 表示数据,Y 表示类别,则判别式模型建模的就是 P(Y|X)。至于 X 本身的分布是怎样的,判别式模型并不关心。

而生成式模型的意思是,模型要具有凭空生成数据和类别的能力,即它要建模 P(X,Y)。这通常是通过建模 P(Y) 和 P(X|Y) 这两步来实现的。P(Y) 就是一个简单的二项或多项分布,没什么意思,所以生成式模型的重点在于 P(X|Y),即建模每个类别下数据的分布。

对比判别式模型和生成式模型,可以发现 P(Y|X) 是「从复杂到简单」,而 P(X|Y) 是「从简单到复杂」。这说明生成式模型里含有的「知识」比判别式模型要多。如果有了一个生成式模型,可以根据贝叶斯公式 p(y|x)=\frac{p(x|y)p(y)}{p(x)} 得到一个判别式模型;反过来,仅有一个判别式模型,是推不出一个生成式模型的。

这在日常生活中有什么体现呢?比如,你有 100 个朋友,当你看到一张脸时,你能够认出这是谁;但让你凭记忆描述出一个朋友的长相,你可能就有很多细节记不清楚。这是因为,辨认出一个朋友并不一定需要记住他/她长相的所有方面 —— 比如,左脸上有颗痣可能就已经能锁定一个朋友了,你并不需要记住他/她是什么发型、是单眼皮还是双眼皮、戴不戴眼镜等等。一般来讲,我们对朋友们长相的记忆足以构成一个判别式模型,但不足以构成一个生成式模型。在心理学上,上面的判别叫做「再认」,而生成叫做「回忆」,回忆是比再认更困难的任务。

在知乎上,我们经常看到一句话,叫做「评价冰箱好不好,不用自己会制冷」。这里,「评价冰箱好不好」就是判别式模型的任务,而「自己会制冷」则是生成式模型的任务。这句话在机器学习中就很有道理,因为如果目的只是做判别的话,并不需要生成式模型那么多的知识。

判别式模型有一个「缺陷」,就是当输入数据偏离真实分布时,模型不会察觉到异常,而是会像对待正常数据一样输出一个类别。在这种情况下,输出的类别很可能是无意义的。曾经有一则「绿茶验尿」的新闻闹得沸沸扬扬。实际上,这就属于输入数据(茶)偏离真实分布(尿)的情况,而检测尿的仪器只是一个判别式模型,它无从知道输入数据有问题,在这种情况下,它无论给出怎样的输出,都是无意义的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值