这一章主要讲了一些概率论的基础知识,前面着重介绍了条件概率,边缘概率的相关知识,此处就不在罗列这些细节了,具体参考PRML即可。本文拟解释以下结论:
以上的结论和总结都是从本人的知识系统中得到,难免有所错误,但无妨,自己的神经网络也再不断更新中,整理探讨也是一种减少认知误差的手段。
自然界中很多事件是不能够通过多次实验来确定发生概率的,比如月球是否能够围绕太阳转,本世纪末北极是否会消失。你不能对它们实验多次来确定该事件发生的概率。那么我们该如何做呢?比如对于北极是否消失,我们可以采集冰川每时每刻的融化速度,冰川的体积等等。这样我们就能够预测出在2099年后,冰川可能的体积,从而确定该事件是否发生。
但你怎么确定你计算的冰川体积一定是正确的?这种不确定性该如何度量?此时就可以借用概率论这强大的工具了,有了它我们可以去衡量他在该时刻计算出的体积正确的概率是多少,还可以得到这个时刻冰川体积的误差偏移量,是不是很厉害。
接着我们谈谈贝叶斯公式:
很熟悉的条件概率公式,也是我们的贝叶斯公式,那它有何特殊之处呢?
比如,我们给定100年,每一年冰川的体积,那么
, 表示这100年的数据集合,x表示时间,t表示冰川的真实体积。在上篇博文中,我们知道,这些数据背后可能是一个特定的曲线,我们采用多项式:
根据已知数据集D,求得参数
, 所以从贝叶斯的角度来说,我们需要在给定D时,使得的P(w|D)P(w | D)的概率最大,即:
所以贝叶斯假设的是:对于一组数据,它背后可能有一堆参数集合W ,在这些参数中选择当前给定数据集下最可能出现的参数w*才是王道。
由贝叶斯公式,我们就能够得到:
先省略一波P(D)P(D),在模型求解时,P(D)恒定不变,所以可以省去,于是式子就变成了:
最大化等式左边就等于最大化等式右边。P(D|w)P(D | w)被称为似然函数,在不同参数w下, 观测数据出现的可能性大小。P(w)为先验分布,即天然的参数w符合某种分布,人家生来就有,自带遗传。而P(w|D)称为后验分布,为啥咧,因为数据集D的出现影响了P(w)的分布。这和我们现实生活很像,当我们学习某项技能时,有人自带天赋,需要很少的训练,甚至不需要训练就能得到一个最优模型,而我的先验参数比较糟糕,需要大量的训练数据和时间来得到一个最优模型。。。差距就在此。
所以公式可以表示为:
此处贝叶斯学派认为似然函数和先验分布都重要,在建模时,需要考虑先验分布。而频率学派则认为,参数是一个模型固有的,不需要考虑P(w)。于是在对问题求解上:
好像都挺有道理,哈哈,不过本书重点讨论贝叶斯方法,还举了一个列子,说明频率学派的最大似然函数存在过拟合问题。
比如:投掷3次硬币,结果全是正面朝上,如果按照频率学派的做法,就会得到一个永远预测正面的模型。这就违背了我们的常识,50%的概率朝上啊。该模型出现了过拟合,如何避免?可以通过增大实验次数,收集更多的数据。所以频率学派的方法需要大量数据防止过拟合,这里和多项式曲线拟合好像有点相似之处哦。
贝叶斯不会么?如果仔细对上述问题建模,我们还会有一个参数ww的二项式分布,它带了一定的先验知识,所以结合刚才的数据,预测的结果也不会偏离50%很多。直观上来看,贝叶斯方法避免了数据过拟合问题仅仅引入一个先验分布。
再举个书中比较直观的例子,高斯分布定义如下:
具体分布如下图所示:
现在我们根据某个μ和σ^2生成一组数据,构成集合D,大小为N,如果按照频率学派的观点来说,我们需要最大化:
直接的做法直接求导,但是乘积求导法则复杂,所以先取对数,求最大似然【对数】函数 ,等价于求解最大似然函数。所以上述式子转为:
现在可以分别对μ和σ^2分别求偏导,能够得到解析解如下:
和方差:
从上述式子可以看出,给定数据集,我们能够得到样本均值和样本方差,从而估算出真实的μ和σ^2,那么是否
吗?着实不太可能,当数据较少时,比如样本数为2,可以看到如下的估值:
显然出现了过拟合现象, 相差较大。但频率学派由提出了一种叫bootstrap的方法来减少这种因为数据集较少而产生的偏差(过拟合),核心思想实际上就是交叉验证,降低偏差。方法如下:给定数据X
,从集合X中抽N次,抽完一个样例把它放回集合X中,所以集合X中的样例可以被抽中多次,也可能一次不中。得到新的数据集XBX_B, 估计样本均值和方差,并重复抽样L次,求均值和方差的期望。通过上述bootstrap方法,可以证明:
这就在小样本的情况下,准确估计总体样本的均值和方差了,但样本方差与实际方差产生了一个因此
,所以为了弥补上述误差,所以估计样本方差时先进行校正。即:
总算理解N-1是怎么来的了。不过PRML指出,在针对复杂问题进行建模式,这种偏移问题会非常严重,具体再看下节。
本节化腐朽为神奇,一个无趣的多项式拟合问题居然能够从概率的角度来阐释。。。我深深的被本书作者给折服了。
正如【缘由】中所讲的那样,预测冰川每个时刻的体积,该预测值也有着不确定性,如何度量呢,我们假设这种偏差符合高斯分布,如下图:
对于预测的y(x0,w))符合在x0处,评估预测准确性和偏离程度的某高斯分布。
所以一个样例x而言,在参数w,β下,得到一个概率密度函数:
代表的是在x点处,由模型y(x,w)预测得到,与实际值t存在偏差的概率大小。显然,预测值越接近实际值,概率越大。β表示方差,后续再讨论。
所以对于每个样例,我们能够得到整个模型拟合程度的概率:
所以p(t|X,w,β)概率越大,说明模型的拟合程度越高,于是来一波最大对数似然函数,能够得到:
现在无非就是对参数求偏导,容易得到参数w的偏导,和多项式拟合中求损失函数偏导的式子是一样的。那么自然地,解析解也是一模一样的。总结一波,原先的损失函数,可以在这用高斯分布来表示,可为什么这么做呢?个人觉得这只是给我们提供了一个误差求解的视角。也就是说,我们不仅可以求得较准确的模型,该模型还能估计出每个样例的误差偏斜的概率。
对应的样本方差如下:
神奇的误差公式!但如多项式拟合中得出的结论一样,因为wML的求解只关注损失函数,所以不可避免的带来了过拟合问题。这也是为什么说单纯的求解最大对数似然函数会存在如前所述的各种过拟合现象。这里算是一个比较具体的佐证。
PRML继续深入了一步,也就是求解最大似然函数不够,还需要加入参数w的先验分布,于是假设先验分布:
其中α是分布的精度,M + 1是对于M阶多项式的向量w的元素的总数。并不知道为什么先验分布一定是符合这种高斯分布模型,不过从误差分析建模的角度来看,假设没有先验分布(无知假设),我们一样能够根据似然函数得到一个关于高斯分布的后验分布模型,既然后验分布很可能是高斯分布相关的,那么干脆就大胆的假设先验分布也符合高斯分布。(这里好像有着共轭先验的知识)
这样,根据贝叶斯定理,最大化后验分布,即最大化似然函数和先验分布的乘积,有:
接着对数似然,求参数ww的偏导,能够得到最大化:
嘿,一加这个先验分布,就得到了多项式拟合损失函数的正则化表达,而正则化表达正是用来解决过拟合问题的有力武器。所以在第一节中提到,贝叶斯能够天然的解决过拟合问题。
不过上述方法还是求出具体的w*来预测问题,终极的贝叶斯方法可不管你是哪个w呢,而是一系列的参数集合对指定数据集的解释啊,所以真正的模型实际上跟参数w是无关的,所以有了式:
所以它考虑的是每个参数对当前数据集的贡献,这些贡献的【累加】才是真正对于预测y的概率,而非只考虑一个最大贡献的w*.不过想想这就很复杂,积分求解析解谈何容易啊,好在高斯分布能够求得解析解如下:
其中,均值和方差分别为:
这里,矩阵S由下式给出:
之所以列出如此复杂的式子,为了说明贝叶斯预测模型的终极目标是不求解具体的参数w, 而只是求解用来表征不确定性的参数α,β。方差s^2(x)是随着x不断发生变化的,这种不确定性是由目标变量上的噪声造成的。
综上:我们知道了,频率学派只求最大似然函数,导致了过拟合问题,但可以通过bootstrap来规避这个问题,但在复杂模型上却又无能为力,于是贝叶斯学派提出了先验分布和似然函数的乘积最大化来求解,该技术被称为maximum posterior,简称MAP,解决了过拟合问题。不过却依旧求得了一个固定的参数w*,所以最后一节提出贝叶斯的终极目标,通过积分把参数w给去掉来预测模型,可惜PRML中没有具体阐述其他两个参数α,β是如何得到,以及具体的物理意义是啥,暂且到这吧。