蜗壳机器学习指南:贝叶斯

在《蜗壳机器学习指南》的综述篇,我们已经简要介绍了贝叶斯。今天我们来一起探讨贝叶斯的细节之处。在此之前,大家可以回顾一下上一篇综述的内容:

前生今世

贝叶斯定理是18世纪英国数学家托马斯·贝叶斯提出的。

在贝叶斯之前,大家对概率已经很熟悉啦,比如我们预先知道一个盒子里有10个红球,8个白球,很容易求出抓出一个球是红球的概率是5/9。这称之为“正向概率”。

但是如果我们事先不知道每种球的个数,该如何求出红球与白球的比例呢?我们可以从盒子中随机地取出一些球,利用取出的这些球中的红球与白球的比例来估计整体的比例。这称之为“反向概率”。

贝叶斯定理就是贝叶斯在研究“反向概率”时提出的。

贝叶斯公式中每一项都有着具体的含义,这里Y即表示我们要求的输出标记空间,X表示观测值,即我们输入的样本空间:

P(Y|X):条件概率,事件X发生时,事件Y发生的概率,称之为后验概率;

P(X|Y):条件概率,事件Y发生时,事件X发生的概率,称之为似然;

P(X): 事件X出现的概率,称之为边际似然。因为我们拥有的样本是已知的,因此X通常作为一个标准化常量;

P(Y):事件Y出现的概率,称之为先验。

P(Y|X)很好理解,就是我们要解决的问题,给定一些样本,我们要求出它们对应的标记,换言之就是想求得模型的参数W。表示对于X,它属于某一类别的概率,有了这个后验概率,我们就可以对样本进行分类。后验概率越大,说明某事物属于这个类别的可能性越大,我们越有理由把它归到这个类别下。最大后验概率估计就是想求得W,使得P(X|Y)P(Y)最大。

似然P(X|Y)表征了模型对数据的拟合程度,为什么这么说呢?我们在知道某标记Y时,即某权重W时,我们期望在该W的下,X与真实的样本分布尽可能相似。极大似然估计就是求参数W,使得P(X|Y)最大。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。公式表示即:

这里通常使用exp函数,主要出于两点:其一是满足高斯分布,求解方便,一般我们都认为W满足高斯分布;其二是概率表示到0~1之间。我们看大前面的最大后验P(X|Y)P(Y)比这里多了P(Y),实际上P(Y)也起到了正则化的作用,因为我们假定了分布是高斯,然后求解时会使用log函数,乘法转化为加法,然后就会出现一项logP(Y),将该项写出来就是

的形式。

通常我们都不考虑P(X),实际上P(X)在进行自动的模型选择上还是大有用处的。

先验P(Y)这个东西非常重要,所谓先验就是专家知识,或者说就是我们自己的想法。比如我们有一个模型想要识别小猪佩奇,小猪佩奇有粉色的皮肤,还有大大的鼻子,这些信息是我们提前就知道的,我们完全可以将这些信息编码后引入模型,从而指导模型的训练。再比如这里我们认为W服从某个高斯分布。

亲力而为

前面是不是太过于理论了,没看懂不要紧,我们来一起做个简单的题目。对于一个人,有两种情况,他有癌症,或者无癌症。化验的结果有两种:患了癌症;没有癌症。有先验证知识:在所有人口中,患癌症的概率是0.008。此外,化验结果并不是一定准确的,对确实患癌症的患者化验准确率为0.98,对确实没有患癌症的人化验准确率为0.97。

问题来了:假定一个人,化验结果为正,那么他确实患有癌症的概率是多少呢?

仔细一瞧,这不就是用贝叶斯来求解。我们先把已经知道的信息用数学符号表示出来:

根据贝叶斯定理,我们可以得到:

其中P(A|B)=0.98,P(B)=0.008,我们下面只需要求出来P(A)就可以了。P(A)可以根据全概率公式来求解:P(A)=P(A|B)P(B)+P(A|¬B)P(¬B)。可得P(A)=0.0376。把这些结果带入贝叶斯公式,我们就可以得到最终P(B|A)=0.2085。

寻寻觅觅

只是做一道题目似乎还是少了些什么,我们会在下一篇一起来实战,利用贝叶斯做一个垃圾邮件检测的demo。大家敬请期待!

编辑:蜗壳小肥、马宁馨

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180815G0MTXC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券