问题背景
在学习周志华老师的《机器学习》(也就是西瓜书)时,总能看到判别模型以及生成模型这两个词汇。我自己对于它们的理解十分模糊,有点不求甚解的意思。虽然这样并不会对于相关知识的认知有太大影响,但基于严谨的态度,我还是到网上查询了一些资料,并试图得出个人的精简理解。
概念
概念虽然很难帮助理解,但却是一定要知道的,相关概念如下:
判别模型:通过给定的数据直接学习条件概率分布P(x|y)
生成模型:通过给定数据学习x,y的联合概率分布P(x,y),然后根据贝叶斯公式求出条件概率P(y|x),最终预测出条件概率最大的y
举例
我一直认为,理解概念的最好方式就是举例子,例子如下:
假设你的室友刚理完发回来,你看到他头发的形状后,想猜一下他是什么发型,你可能会有两种判断方法
假如你对头型研究的很少,但你经常看电影,发现室友的头型和梳大背头的发哥很像,于是你得出结论——室友剪了大背头
但如果你对发型研究的很深,经常逛各种论坛网站,清楚的了解大背头就是将额前的头发利用发油全部梳上去,将整个五官和脸显露出来,是工整、成熟的一种发型(其实我也不懂,百度现查的)。那么你就能根据这些特点十分肯定地得出结论——室友剪了大背头!
先不讨论室友适不适合大背头这种成熟的发型,前者的判断就是基于判别模型的逻辑,即并不理解数据的特征但仍能通过与其它数据的相似度来进行判断
而后者自然就是生成模型的逻辑了,即你真正的了解不同标签所生成的数据特征(比如大背头的发型就会有头发向后梳、很油、将整个脸露出来等特征,其它的发型也会有自己独特的特征),并能通过已有的数据特征反推测试数据是什么标签
总结
可能还有会有同学问,博主博主,我还是没理解,能不能概括一下啊?
咳咳,我要说了哈——当你只知道发型和谁相同、和谁不同时,这个思路就是判别模型;而如果你真正学会了各个发型的具体特点,在看到发型时能根据你所了解的特点加以判断,那么你的思路就是生成模型
以上的举例和总结都是我的个人的初步想法,欢迎大家在评论区分享你的观点和评价。
文章推荐
我在网上找到了一篇文章,讲得很详细,想要进一步了解的同学可以移步机器学习面试之生成模型VS判别模型