NLP系列学习:生成型模型和判别型模型

在学习机器学习的过程中我们总会遇见一些模型,而其中的一些模型其实可以归类于生成模型或者是判别模型中去,而这一篇文章我将会简单的概述下我最近所遇到的一些模型,并且按照自己的理解去记录下来,其中肯定会有差错,如果那里不对,还请各位多多指教.

1:演变关系

上边的图是

这一篇论文中的一个截图,而第一张图其实讲的是几种模型的演进的一个过程,而这个过程如果加以简单的概括的话,可以归类于上边的一栏为产生型模型,下边的一栏为判别型模型,那这两种模型有什么区别,这两种模型又是什么?接下来我们分别来掰扯掰扯这两种模型.

1:产生型模型

定义: 由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X).

那产生型模型的典型代表其实就是朴素贝叶斯.这一种的模型的主要思想是先估算联合概率密度p(x,y),再通过贝叶斯公式求出p(y|x).那现在我们就以之前文章中所说过的垃圾邮件分类的例子再来讲一下产生型模型的处理方法.

现在我们假设要分类垃圾邮件和正常的邮件(分类处理邮件是文本分类和模式识别的一种典型应用),现在我们假设采用最简单的特征描述的方法,首先我们先去找一个词库,然后把词库中的单词都归类起来,然后把每一封邮件表示成一个向量,向量中的每一维都是词库中一个词的0-1值,1表示出现这个词语,0表示没有出现这个词语.

比如一封邮件出现了”伟哥”,”理财”,”投资”,却没有出现”邀请”,”还款”,”金融”这样的词语,我们就可以把这个向量表示为:(mathtype没法输入中文,所以用拼音代替了)

如果这个词库里的词语过多,我们的x的维度也会很大,这时候我们就应该要采取一些比如多项式分布模型的方法来去简化计算,这个我们就不多做讨论.

回到上边的垃圾邮件问题中来,对于邮件,我们大致上可以将每一封邮件看作是相互独立的,这样每一次我们取一封邮件就可以看作是一次随机事件,那么我们的可能性就会有2的n次方种可能性,这样我们处理起来参数过多,那也就没有什么实用价值.

那这时候我们如果用生成模型去做,就会有新的思路,我们要求的是p(y|x),那么按照条件概率公式可以的到,我们只需要求p(x|y),p(z),那么如果假设邮件x之间是相互独立的,这个就可以说符合贝叶斯假设,举个例子说:

假设我们去判别一封邮件已经是垃圾邮件了(y=1),并且这个邮件出现”伟哥”和出现其他的词是无关的,那么就说”伟哥”和其他的词是相互独立的.

那现在我们假设:

给定条件z,使得X,Y条件独立,那形式化可以表示为:

那如果词库中出现了5000个词语,我们全部把词语放进来,这时候我们再回到问题中,就可以根据上式列出公式来:

而这一步的处理其实和我们之前的文章的n元语法模型是类似的,但是这里边说的是每个词语之间是相互独立的,而”伟哥”和”性”,一般来说是有很大的关系的,这样的词汇会经常出现在垃圾邮件中.

那现在我们建立形式化的模型:

这时候我们想要的是需要模型能够在训练数据上获得的概率值能够足够的精确,这时候我们使用极大似然估计:

从上式中我们看见,我们要求的是联合概率密度,这样从侧面来佐证了朴素贝叶斯是生成模型.这时候我们带入求解:

这样我们求出这个公式的意义是,前两个表示的是在y=1和0的样本中,特征x的比例,最后一个式子表示的是y=1的样本数占全部样本数的比例,这时候我们再去变化一下.

就能够给去判别一封邮件是垃圾邮件还是有用的邮件,需不需要进行处理,当然这当中需要一些数学上面的技巧,这个是我们需要的关注的.

而从上边的一堆公式最后推出这最后的一个模型,是不是有一种感觉是产生了一种模型的感觉,这其实就是产生型模型的由来.

2:判别型模型

定义:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。

还是上边的这个例子:

如果我们要判别一封邮件是不是垃圾邮件,用判别型模型的方法就是从历史数据中学习到模型,然后我们再去从新的邮件中去提取一些新的特征,比如包含不包含”伟哥”,”投资”,这样的词语,然后根据之前的学习到的模型直接进行判别就行了,由于我们关注的是y的离散结果那个正确率高,而不是关心当中每一个部分的概率,这样的话式子就可以直接写成:

而这里判别模型求得是条件概率,而生成模型求得是联合概率.

3:判别模型和生成模型的区别:

常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。

常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。

特点:

一般认为判别式模型更受喜爱,“人们应该更直接去解决问题,永进丌要把求解更复 杂的问题作为中间阶段”(Vapnik),吴恩达的论文作了较全面的分析,产生式模型 (朴素贝叶斯)在少量样本的情况下,可以取得更好的精确率,判别式模型(logistics 回归)在样本增加的情况下,逐渐逼近前者的精确率.

而在吴恩达这一篇论文中详细概述了这件事情,推荐大家有时间好好阅读一番:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小詹同学

人脸识别(一)——从零说起

人脸识别的英文名称是 Face Recognition,前段时间查找资料学的时候发现,不少人将人脸识别和人脸检测(Face Detection)混为一谈,很大...

494100
来自专栏ATYUN订阅号

将深度学习专门化: 吴恩达的21节Deeplearning.ai课程学习经验总结

截止到2017年10月25日,吴恩达在Coursera上目前有3门新的深度学习课程: 1.神经网络和深度学习(Neural Networks and Deep...

41390
来自专栏计算机视觉战队

深度学习入门误区

定位:深层学习在哪 1、深层学习需要什么? 数学 线性代数:是有关任意维度空间下事物状态和状态变化的规则。 概 率:是用来衡量我们对事物在跨时间后不...

37440
来自专栏灯塔大数据

塔说 | 一文读懂深度学习与机器学习的差异

导 读 如果你经常想让自己弄清楚机器学习和深度学习的区别,阅读该文章,我将用通俗易懂的语言为你介绍他们之间的差别。 机器学习和深度学习变得越来越火。突然之间,...

35490
来自专栏携程技术中心

干货 | 机器学习在1号店商品匹配中的实践

作者简介 刘洋,1号店搜索部算法工程师,机器学习的爱好者和实践者。上海大学博士,在语义分析、知识发现有深入研究。 电子商务通过服务和商品给用户带来极致体验。其中...

828120
来自专栏机器之心

学界 | 伯克利强化学习新研究:机器人只用几分钟随机数据就能学会轨迹跟踪

34060
来自专栏AI科技大本营的专栏

学习这么多算法到底在解决哪些问题?深度学习之外,我们要选择谁?

人工智能会影响多个领域,甚至是那些非常传统的商业领域。而机器学习(这里指的是广义的机器学习)是人工智能的一个重要组成部分,它指的是对大数据集上的算法进行训练,以...

10930
来自专栏机器之心

学界 | 中科大潘建伟团队在光量子处理器上成功实现拓扑数据分析

21540
来自专栏数据科学与人工智能

统计建模和机器学习的区别之我见

最近我多次被问到统计(尤其是统计建模)、机器学习和人工智能之间有何区别。其实这三者之间在目标、技术和算法方面有很多重叠的部分。引起困惑的原因不仅仅是因为这些重叠...

28350
来自专栏机器之心

初学者必读:IBM长文解读人工智能、机器学习和认知计算

选自IBM 机器之心编译 参与:吴攀、黄小天、Nurhachu Null 人工智能的发展曾经经历过几次起起伏伏,近来在深度学习技术的推动下又迎来了一波新的前所...

47770

扫码关注云+社区

领取腾讯云代金券