机器学习中的数学的学习

学习机器学习,有几个数学知识是必须要掌握的,不然会看地稀里糊涂的(安拉之前就是这个状态)。其中,数据的分布、最大似然(以及求极值的几个方法),偏差、方差的权衡,还有特征选择,模型选择,混合模型等,都尤为重要。在此我带着大家一起复习一下相关的知识(好多概率知识考研之后就扔掉了)。

一、概率论知识大概回顾

  1.条件概率

      

条件概率比较简单,所以就提一下。

  2.贝叶斯概率

  贝叶斯理论在大学概率论中已经有所接触,但是一般大学的老师只是解释下公式,然后让我们套套公式做做题,这就是大学教育的功利性,从来就只是为了应用,而不去追究问题的本质。贝叶斯在机器学习中应用相当的广,这就要求我们对贝叶斯理论有个透彻的理解。

  贝叶斯(Thomas Bayes)大大还是蛮给力的,同时也是so lucky。以下为摘自 wiki的一段简介:

所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆概问题。

在此我先给出贝叶斯的一般公式:

  实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了——设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个猜测(hypothesis,更为严格的说法是“假设”,这里用“猜测”更通俗易懂一点),所谓猜测,当然就是不确定的(很可能有好多种乃至无数种猜测都能满足目前的观测),但也绝不是也不是乱蒙瞎猜。

  ......待续

  beta分布

在伯努利分布中,参数mu的最大似然估计是通过计算x=1的次数占所有试验次数的百分比得到的,这个我们在之前的概率课上已经学习过了。不过这种方法在试验次数很少的情况下容易造成over-fitting,你总不能说抛了两次硬币都国徽朝上就认为以后所有抛掷都能得到国徽朝上吧…

那我们就采取贝叶斯的做法,先引入一个mu分布的先验概率p(mu)。这个先验分布需要有比较直观的解释和有用的分析特征。注意到二项分布的似然函数是形如mu^x(1-mu)^{1-x}的因子的乘积:本书前面的基础部分提到了这个似然函数,如果做N次试验,似然函数可写成:

 

p(Dlvert mu)=prod_{n=1}^N p(x_n lvert mu)=prod_{n=1}^N mu^x_n(1-mu)^{1-x_n}quadquadquad(2.9)

 

所以如果我们选择的先验概率和mu以及(1-mu)的次方成比例,那么后验概率分布,按照贝叶斯法则就是先验概率和似然函数的乘积,也和mu以及(1-mu)的次方成比例。这种性质叫做共轭(conjugacy)。因此我们选择一个先验概率,叫做Beta分布,如下:

 

Beta(mu lvert a,b)=frac {Gamma (a+b)}{Gamma(a)Gamma(b)}mu^{a-1}(1-mu)^{b-1}quadquadquad(2.13)

 

其中的Gamma(x)是gamma函数,系数保证了Beta分布是标准概率分布,即:

 

int_0^1 Beta(mu lvert a,b)dmu=1

 

这个证明暂时不清楚如何得到。均值和方差分别是:

 

mathbb{E}([mu])=frac{a}{a+b}quadquad(2.15)

var[mu]=frac{ab}{(a+b)^2(a+b+1)}quadquad(2.16)

 

参数ab常被称为超参数,因为它们决定了参数mu的分布。下面的图图显示了对于不同的超参数beta分布的图像。

mu的后验分布现在可以通过把beta先验分布(2.13)和似然函数(2.9)乘起来,并归一化后得到。仅保留和mu有关的因式,我们可以得到后验分布如下:

p(mu lvert m,l,a,b)varproptomu^{m+a-1}(1-mu)^{l+b-1}quadquadquad(2.17)

其中的l=N-m,也就是在硬币试验中得到反面的次数。我们注意到(2.17)对mu的依赖和先验概率有类似的形式,表现出与先验概率和似然函数一样的共轭特征。事实上,这确实是另一个beta分布,对比(2.13),我们可以加上它的系数(使对其积分求和为1),得到:

 

 

p(mu lvert m,l,a,b)=frac{gamma(m+a+l+b)}{gamma(m+a)(m+b)}mu^{m+a-1}(1-mu)^{l+b-1}quadquadquad(2.18)

 

我们看到,在从先验概率(公式2.13)到后验概率(公式2.18)转变的过程中(后者是前者乘以似然函数),观察到x=1的次数mx=0的次数l被分别用于增加ab的值。于是我们可以给出一个先验概率分布中超参数a和b的直观解释,那就是它们分别作为x=1x=0有效观察次数。注意到ab并不一定是整数。并且,这个后验概率分布可以作为接下来观察到的数据的先验概率。可以这样来看,如果我们每次观察到一组数据,就通过乘以新观察数据的似然函数,来更新当前的后验概率分布。在每一更新过程中,后验概率都是beta分布,其中参数a和b分别给出(先验与实际观测)中x=1x=0的试验次数。新观察值中x=1的次数被递加到参数a中,x=0的次数被加到b中。下面的图Figure2.3演示了一个更新步骤。

这个序列递增的学习方法,从贝叶斯的观点来看是很自然的。它仅依赖数据之间的独立性假设,和先验概率与似然函数的选择无关。序列递增的学习每次只获取一个或者极少数的观察值,然后在下一次观察值到来之前忽略它们。在实际应用中,该方法可以用于那种对稳定数据流的学习。这种方法并不需要所有的数据一次性地导入到内存中,因此比较适合大规模的数据学习任务。最大似然估计方法也能被应用到序列学习框架中。

如果我们的任务是预测,尽我们的可能猜测下一次实验的结果,那么我们必须估计在给出已观察数据mathcal{D}的条件下x的分布。根据概率的和与乘积规则,可得到:

p(x=1 lvert mathcal{D})=int_0^1 p(x=1 lvert mu)p(mu lvertmathcal{D})dmu=int_0^1mu p(mu lvert mathcal{D})dmu=mathbb{E}(mu lvert mathcal{D})

 

从公式(2.18)以及beta分布的均值,可以得到后验概率p(mu lvert mathcal{D})均值为:

p(x=1 lvert mathcal{D})=frac{m+a}{m+a+l+b}quadquadquad(2.20)

这个看上去非常自然,和似然估计类似,这个估计值就是观察值中所有x=1(包括先验概率中和实际观察中)的百分比。如果我们把数据集的规模设置很大,比如无穷,m,l to infty(2.20)变成了最大似然估计的结果了。我们能够看到,在数据集大小趋于无穷下,贝叶斯和最大似然的结果是等价的。而对于有限大小的的数据集,mu的后验概率均值始终在先验概率均值和最大似然估计之间。

 

从图2.2我们看出,随着观察数据的增多,后验概率的峰值和倾向变得更加明显。这也可以通过(2.16)看出,beta分布的方差在atoinftybtoinfty下趋于0。事实上,我们想知道贝叶斯学习是否存在这样的属性,即随着我们观察到的数据越多,得到的后验概率的不确定性会越小。

为了回答这个问题,我们把贝叶斯学习看成一个频数统计的过程,并证明这样的属性确实存在。对于一个贝叶斯推理问题,我们从数据集mathcal{D}中得到的参数theta,通过联合概率分布p(theta,mathcal{D})来表示,有下面结果:

mathbb{E}_theta[theta]=mathbb{E}_{mathcal{D}}[mathbb{E}_theta[theta lvert mathcal{D}]]quadquad(2.21)

其中:
mathbb{E}_theta[theta]=int p(theta)theta dthetaquadquad(2.22)

mathbb{E}_{mathcal{D}}[mathbb{E}_theta[theta lvert mathcal{D}]]=int {inttheta p(theta lvert mathcal{D} )dtheta}p(mathcal{D})dmathcal{D}quadquad(2.23)

公式(2.12)说明参数theta在数据集上的后验概率分布的均值等于先验概率均值。类似的,我们得到:
var_theta [theta] = mathbb{E}_{mathcal{D}}[var_theta[theta lvert mathcal{D}]]+var_mathcal{D}[mathbb{E}_theta[theta lvert mathcal{D}]]quadquad(2.24)

 

上式左边是theta的先验分布的方差。右边第一项是theta的后验方差的均值,第二项是theta后验分布均值的方差。因为方差均是正数,所以该结果表面theta的后验概率通常是小于先验概率的。这个减小的程度随着后验概率的均值增大而增大。注意这个结果仅仅是平均意义上的,对于某个特定的数据集来说,有可能后验概率方差比先验概率方差还大。

 
posted @ 2012-11-15 10:55  MechineLearner  阅读(720)  评论(0编辑  收藏  举报