机器学习(4)——贝叶斯学习(一)

前言

概率论只不过是把常识用数学公式表达了出来。 —— 拉普拉斯

在开始本章之前,请大家思考一个问题——关于机器学习,我们的目标是什么?人们想要我们进行那种类型的学习?人们希望我们执行的学习理论?

一: 基础知识

1.1 逆概

贝叶斯方法源于托马斯·贝叶斯生前解决的一个“逆概”问题写的一篇文章。在写这篇文章的时候,人们已经能够计算“正向概率”,而“逆概”是以方向角度来思考这个问题,即由答案推条件。一个典型的例子如下:一个袋子中有N个白球,M个黑球,这样我们就可以得出摸到黑球或者白球的概率。而逆概则是:在我们不知道袋子中具体情况的前提下,我们从袋子中摸N个球,观察取出的结果,那么我们可以对袋子中做出怎样的推测?

1.2 最佳假设

思考一下其它的机器学习算法:神经网络、决策树、支持向量机等。在这里我们可以将他们做的事简单的概括为一句话:他们都是根据给定的一些数据和领域知识找出我们能够得到的最佳(最可能)假设——假设即使我们给定数据所反映的事物本质的推测,这个在第二节中我有进一步的说明。

1.3 贝叶斯方法

贝叶斯是机器学习的核心方法之一,所有需要概率预测的地方都可以见到贝叶斯方法的影子。这背后的深层次的原因在于:现实世界本身的不确定性,由于人类的观察能力是有局限性的,我们日常所观察的只是事物表面上的结果(借鉴的例子:如果我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),但是这个结果往往并不是我们想要的,我们想要了解的是这个事物的本质,这个时候,就需要我们提供一个关于这个事物本质的假设(hypothesis,通俗来讲就是猜测、猜想),这个猜想本身是不确定的,而且会存在多种假设都能满足条件(即由我们看到的事物表面上的结果直接或间接产生出来的限定因素)。

最后总结为两点我们需要做的事:

  1. 算出各种不同猜测的可能性大小。即:计算特定猜测的后验概率,对于连续的猜测空间则是计算概率密度函数
  2. 算出最靠谱的猜测是什么。即:所谓的模型比较,这里说一点的就是模型比较不关注先验概率的话就是最大似然方法。

1.4 贝叶斯公式

P(Bi|A)=P(Bi)P(A|Bi)ni=1P(Bj)P(A|Bj)

公式的解释是:

1.5 贝叶斯法则

贝叶斯法则(Bayes theorem)是贝叶斯的统计学中的一个基本工具,它是基于假设 h 和数据 D 的一个数学公式(如下所示)。

P(h|D)=P(D|h)P(h)P(D)

假设机器学习的数据集 D={(xi,di)}xi d_i 。我们的假设一般指的就是 di 。接下来我们会说明公式中每一项的含义。

  • P(h|D) 指在数据D的基础上,假设h的发生概率。
  • P(D|h) 指给定假设时观测到数据的概率。
  • P(h) 是假设的先验概率。
  • P(D) 是数据的先验概率。

这里要重点说明下假设的先验概率——事实上这个就是我们的领域知识(Domain Knowledge)。比如一个根据数据集预测一个人是否患癌症的场景,一个医生根据经验说:一个人患癌症的概率为0.03%(最好为零),那么我们可以得到这样的一个假设—— P()=0.03% ,这个就是先验概率。

如果我们将贝叶斯法则运用到机器学习上,那么我们就需要寻找最优假设。那么问题就转换成如下的结果:

argmaxP(h|D)=P(D|h)P(h)P(D)

接下来我们思考另外一个问题,怎样能够提高指定数据下某一个假设的概率。

  • 当先验概率—— P(h) 的值更高的时候。即我们提高了我们了我们假设的精准度,是假设本身的概率更高。
  • 当我们着打一个能够更好标记数据的假设——即 P(D|h) 的概率增高。
  • 当数据下降的时候——即 P(D) 降低的时候。

1.6 贝叶斯学习

这节我们将以上一节中最后得到的公式来进行分析,而这个也正是帮我们做决策的一个算法:
ForeachhH
calculateP(h|D)=P(D|h)P(h)P(D)
output:
h=argmaxhP(h|D)

我们把这个算法规划之后,可以转化为如下的问题:

argmaxhP(D|h)P(h)P(D)

由于我们关心的只是这个表达式的最大值,而对于所有的同等级表达式的话,他们的分母是一致的——即 P(D) 相同,这样我们就可以将其转换为如下的公式:

argmaxhP(D|h)P(h)

这里我们要注意: P(h|D)|P(D|h)P(h) ,这里只是我们为了方便找到最优假设,而做的一种处理。后边的表达式被我们称之为MAP或最大后验假设(Maximum a posteriori probability hypothesis),这是合理地,因为它是给定你所有先验后的最大后验

但是这里就会有另外一个问题——我们求 P(h) 的过程往往是比较困难的,所以人们常常会放弃求这一项,将其转换为如下的表达式:

argmaxP(h|D)

而这种的求发的话,被我们称之为最大似然假设。它是基于最大似然法做的假设。这里要注意的是,我们不是直接不考虑 P(h) 这一项,而是我们认为所有假设的 P(h) 的值都是一样的,即我们有一个 均匀先验分布,让我们所有假设的概率一致。

让我们重新审视一下贝叶斯学习:从数学角度讲解的话,它是有意义的;但是从计算方面来说是有问题的,他不是实际可行的,除非我们假设的数量非常的小,但是实际中我们需要关注的假设空间是无限的。

1.7 实践中的贝叶斯学习

本章的讨论我们将会有三个前提:

  • Given {<xi,di>} as example of c and noise free(无噪声)
  • CH
  • uniform prior(即均匀先验分布)。

那么接下来我们需要根据贝叶斯定理来获取最佳假设

在此种情况下,贝叶斯法则的三个预测概率分别为:我们规定假设所在的假设空间 H ,数据集所在的版本空间 VS

  1. P(h)=1|H| 。因为规定是均匀先验分布,及所有假设的概率都是相同的。
  2. P(D|h) 。由于我们是一个无噪声的数据集,所以我们对于指定的假设下的数据集,要不为真,要不为加。如下公式所示:
    P(D|h)=1di=h(xi)xi,diDP(D|h)=0otherwise
  3. P(D) 。如果直接结算该公式的话,并不是很好的求,所以我们将其转换为如下的形式
    P(D)=iP(D|hc)P(hc)=iP(D|hc)P(hc)1|H|=hVSH,DP(D|hc)1|H|=hVSH,D11H=|VS||H|

这里重点分析一下第三个概率:
- 我们将概率做的第一步转换的时候,实际上加了一个隐藏条件——所有的事件都是互斥的,这样我们才可以做这样的一部转换。
- 然后我们重点分析的是,我们怎么定义给定假设时数据的概率——P(D|h)。如果从数学公式表示的话,它是一个关于 hi 是否在 D 的版本空间中的指示函数。但是这样的表示并不利于我们这里的讨论。我们要尽量用符号来表示这个内容,这里呢我们将 VS 定义为所有与数组相一致的假设的子集。那么我们就可以得到 P(D|hc)=1 ,这里我们默认我们的假设与数据集都是一致对应的,那么我们就可以将P(D|h_c)转换为1,而我们的版本空间为 VS ,那么我们就得到了最终的结果。

那么我们就可以根据如上的三个公式计算出 P(h|D)=1|VS|

1.8 带噪音数据的贝叶斯学习

我们这里将考虑带有噪音的数据(与现实生活中更加的贴近),首先还是分析的前提:

  1. Given{<xidi>}
  2. di=f(xi)+εi
  3. εiN{0,σ}

这里呢我们分析最大似然函数,即:

hML=argmaxP(h|D)=argmaxP(D|h)

由于最大似然函数是将贝叶斯法则中的假设看成所有都是一样的,所有我们可以的到上边的公式。而从上变的公式我们可以得出:如果我们假设它是均匀分布的,那么就会发现 最优拟合数据的假设相当于 最好地描述数据的假设。我们可以将其转换为如下的公式:
iP(di|h)

即我们看到的每个独立数据或所有数据的乘积。这样我们就从 所有数据谈到了单个训练数据

那么在我们假定的世界里,看到特定 Pi 的概率是多少呢?

我们再回头观看我们的假设,我们计算 dif(xi) 的误差项 ε ,它是一个满足了正态分布的值。那么我们就可以将问题转换为,我们获得指定误差项的概率是多少?而高斯噪音分布模型就是做这样的事情。下边是一个对应的高斯噪音分布模型:

12πσ2e12(dif(xi))2σ

这样我们就得到了一个可以求解概率的公式。我们接下来的问题是,怎么化简这个公式,来使我们的计算更加的精简。

我们现在讨论的问题是:

argmaxi12πσ2e12(dif(xi))2σ

由于左边的分数,对于我们求 argmax 的过程并没有什么影响,所有我们可以转变为:

argmaxie12(dif(xi))2σ

考虑到求积的计算量过于复杂了,如果我们可以将其转变其他的计算方式(比如说求和)就好了。而我们通过对这个数据求对数的话,正好可以帮助我们解决这个问题。

argmaxi12(dif(xi))2σ

这里首先说一下,为什么可以使用求对数的方式来计算呢?因为对数可能将乘积变换成总和;同时它也是单调的;同时进行这个转变,并不会影响 argmax 这个求解。
然后我们继续分析公式, σ 对于我们的求解是没有作用的,所以我们可以直接去掉。同时我们可以去掉负号,将求最大值转换为求最小值。即如下的公式:

argmini(dif(xi))2

到这里已经化简完毕,这样看起来是不是很舒爽。而这个是一个典型的求均方差,然后取最小值的问题。我们再来审视一下最后的这个关于假设的讨论,如果你看过决策树、神经网络或者支持向量机的话,你会发现,某种程度上,他们都是再求均方差,然后进行分析,而这个一可以说是贝叶斯推理对于其他几种数据分析的解释。举个例子:如果f(x_i)是一个线性函数,那么我们的问题就变成了一个典型的求线性回归的问题了,因为线性回归求的就是均方差。

1.9最短描述长度

这节呢我们讨论最大后验概率:

hMAP=argmaxP(D|h)P(h)

这里我们同样利用上一节中讲到的,通过对数求解的问题。不过这里我们取的是以2为底的对数。那么转变后的结果如下:

argmax[lgP(D|h)+lgP(D)]

我们对其做相应的转换:

argmin[lgP(D|h)lgP(D)]

如果你看过信息熵的话,一定会对这个公式很敏感。如果没有的话,建议大家先看一下我写的关于信息熵的一篇文章——信息熵。
概率为P的事件的最优码的长度为P的负对数,底数为2。代表对应假设的比特数。那么这个公式也可以从信息熵的角度来分析,我们要找到假设所包含的比特数最小,即确定性最高(也就是发生的频率最高的时间)的假设。

参考文献:

  1. 平凡而又神奇的贝叶斯方法
  2. You’re Entitled to Arguments, But Not (That Particular) Proof
  3. 贝叶斯公式——Wikipedia

你可能感兴趣的:(Machine,Lanauage,Algorithm)