数学 · 朴素贝叶斯(一)· 参数估计

数学 · 朴素贝叶斯(一)· 参数估计

========== 2017.3.24 更新 ==========

加入了对朴素贝叶斯中平滑项的说明

========== 分割线的说 ==========

本章用到了一些数理统计和概率论相关的基础知识,主要会说一说朴素贝叶斯算法的理论依据;然后下一章(带星号的!)会讲讲这些依据的推导过程,内容将会相对而言不太友善。由于本人的数理统计学得也不咋地,如果有这方面专长的观众老爷发现我哪里写错了、还请不吝赐教!( σ'ω')σ

回忆朴素贝叶斯算法,我们会发现无处不在使用极大似然估计这个东西;然后最终的分类器看上去人畜无害、其实背后还是蕴含了极大后验概率估计这个玩意儿的。黑体加粗的俩货是参数估计领域使用非常广泛的两个方法,如果弄懂它们了、朴素贝叶斯算法的理论也就掌握了

极大似然估计(ML 估计)

如果把模型描述成一个概率模型的话,一个自然的想法是希望得到的模型参数\theta能够使得在训练集\tilde X作为输入时、模型输出的概率达到极大。这里就有一个似然函数的概念,它能够根据输入数据S=\{x_1,...,x_N\}输出在模型参数\theta下的概率(假设样本之间在各种意义下独立):

我们希望找到的\hat\theta就是使得似然函数在\tilde X作为输入时达到极大的参数:

举个例子:假设一个暗箱中有白球、黑球共两个,虽然不知道具体的颜色分布情况、但是知道这两个球是完全一样的。现在有放回地从箱子里抽了 2 个球,发现两次抽出来的结果是 1 黑 1 白,那么该如何估计箱子里面球的颜色?从直观上来说似乎箱子中也是 1 黑 1 白会比较合理(频率估计概率),下面我们就来说明“1 黑 1 白”这个估计就是极大似然估计

在这个问题中,模型的参数\theta可以设为从暗箱中抽出黑球的概率,样本X_i可以描述为第 i 次取出的球是否是黑球;如果是就取 1、否则取 0。这样的话,似然函数就可以描述为:

直接对它求极大值(虽然可行但是)不太方便,通常的做法是先将似然函数取对数之后再进行极大值的求解:

从而可知:

由于X_1+X_2=1,所以得\hat\theta = 0.5、亦即应该估计从暗箱中抽出黑球的概率是 50%;进一步地、既然暗箱中的两个球完全一样,我们应该估计暗箱中的颜色分布为 1 黑 1 白

从以上的讨论可以看出,极大似然估计视待估参数为一个未知但固定的量、不考虑“观察者”的影响(亦即不考虑先验知识的影响),是传统的频率学派的做法

极大后验概率估计(MAP 估计)

相比起极大似然估计,极大后验概率估计是更贴合贝叶斯学派思想的做法;事实上、甚至也有不少人直接称其为“贝叶斯估计”(注:贝叶斯估计的定义有许多,我接触到的就有3、4种;囿于实力,我并不能辨析哪种才是真正的贝叶斯估计、所以不会进行相关的讨论)(喂)

在讨论 MAP 估计之前,我们有必要先知道何为后验概率p(\theta|\tilde X):它可以理解为参数\theta在训练集\tilde X下所谓的“真实的出现概率”,能够利用先验概率p(\theta)和条件概率p(\tilde X|\theta)=\prod_{i=1}^Np(X_i|\theta)通过贝叶斯公式导出(相关定义和公式详见下一章)

而 MAP 估计的核心思想,就是将待估参数\theta看成是一个随机变量并引入极大似然估计里面没有引入的、参数\theta的先验分布。MAP 估计\hat\theta_{MAP}的定义为:

同样的,为了使计算简洁,我们通常对上式取对数:

可以看到,从形式上、极大后验概率估计只比极大似然估计多了\ln p(\theta)这一项,不过它们背后的思想却相当不同。不过有意思的是,在下一节具体讨论朴素贝叶斯算法时我们会看到、朴素贝叶斯在估计参数时选用了极大似然估计、但是在做决策时则选用了 MAP 估计

和极大似然估计相比,MAP 估计的一个显著优势在于它可以引入所谓的“先验知识”,这正是贝叶斯学派的精髓。当然这个优势同时也伴随着劣势:它我们对模型参数有相对较好的认知、否则会相当大地影响到结果的合理性

既然先验分布如此重要,那么是否有比较合理的、先验分布的选取方法呢?事实上,如何确定先验分布这个问题,正是贝叶斯统计中最困难、最具有争议性却又必须解决的问题。虽然这个问题确实有许多现代的研究成果,但遗憾的是,尚未能有一个圆满的理论和普适的方法。这里拟介绍“协调性假说”这个相对而言拥有比较好的直观的理论:

  • 我们选择的参数 的先验分布、应该与由它和训练集确定的后验分布属同一类型

此时先验分布又叫共轭先验分布。这里面所谓的“同一类型”其实又是难有恰当定义的概念,但是我们可以直观地理解为:概率性质相似的所有分布归为“同一类型”。比如,所有的正态分布都是“同一类型”的

朴素贝叶斯

如果弄懂了上述两种参数估计法、再回过头去看朴素贝叶斯算法的话,可能就会有比较本质的认知。我们在说明极大似然估计时举的栗子用到了频率估计概率的思想,回忆朴素贝叶斯算法、会发现背后思想亦是如此(详细的推导和证明见下一章):

先验概率的极大似然估计:

就是各类样本在数据集中出现的频率;条件概率的极大似然估计:

就是数据集中各类样本里满足各条件的样本在该类样本中出现的频率

需要指出的是、该算法存在一个问题:如果训练集中某个类别的数据没有涵盖第 j 维特征的第 l 个取值的话、相应估计的条件概率就是 0、从而导致模型可能会在测试集上的分类产生误差。解决这个问题的办法是在各个估计中加入平滑项:

\lambda=0时就是极大似然估计、\lambda=1时则叫做拉普拉斯平滑(Laplace Smoothing)。拉普拉斯平滑是常见的做法、我们的实现中也会默认使用它。而最后做决策的公式:

更是与 MAP 估计的公式完全一致(观众老爷们可以想想、此时的参数是什么? ( σ'ω')σ)

========== 作为总结的分割线 ==========

这章讲了两种常用的参数估计方法(的思想)和朴素贝叶斯算法与它们的关系。具体而言:

  • 极大似然估计的目的是极大化似然函数
  • 极大后验概率估计的目的是极大化参数的后验概率,从公式上来说只比极大似然估计的公式多了一项参数的先验概率
  • 朴素贝叶斯使用极大似然估计进行参数估计、使用极大后验概率估计进行决策

下一个(带星号的)章节将会先说一些定义性的东西、然后会证明朴素贝叶斯算法中的公式确实是极大似然估计

希望观众老爷们能够喜欢~

猛戳我进入下一章! ( σ'ω')σ

编辑于 2017-03-24

文章被以下专栏收录