1.1 Example: Polynomial Curve Fitting
1: 误差函数(error function):测量了函数y(x,w)预测的值与真实的值t之间的偏差。
误差函数的一个选择: E(w⃗ )=1/2∗ΣNn=1[y(xn,w⃗ )−tn]2
当我们解决曲线拟合的问题时,我们能够通过使得误差函数尽可能的小以选取合适的参数w。因为误差函数是参数w的二次函数,所以它的导数关于参数w是线性的。所以误差函数的极小化能够得到一个唯一的解 w∗ 。
2:RMS error:
ERMS=2E(w⃗ ∗)/N‾‾‾‾‾‾‾‾‾√
。
N是数据集数据点的个数,这样的一个好处是可以在相同的基础上比较拟合函数在包含不同数据点个数的数据集上的表现。
3:过度拟合问题(over-fitting problem):
当数据集的数据点数目比较少,而模型参数比较多时,如果我们通过极小化上述所说的误差函数E(w)来拟合参数,这会导致过度拟合问题。有几种方法可以用来解决过度拟合问题:
(1):一个很自然的方法就是增加数据集中包含数据点的个数。一般来说,对于一个被给的模型,数据集包含数据点的个数越多,过度拟合问题就越不严重。有一个有时候会被提倡的法则就是,数据集中数据点的个数应该要是模型参数个数的几倍,比如5倍或10倍。
但如果这样的话,那么当我们拟合一个数据集的时候,我们要根据数据集的大小来的数目而不是根据要解决问题的复杂度来选择参数的数目,这明显不是很合理。
(2):过度拟合问题的一个结果是拟合得到的参数的magnitude很大。运用正则化,也就是误差函数E(w)后面加上一个惩罚项(penalty term),这样可以减少参数的值,以此来达到避免过度拟合问题的目的。因此我们能够采用如下形式的误差函数(
||w⃗ ||2=w⃗ Tw⃗ =w21+...+w2M,λ>0
):
这种添加惩罚项的方法也叫作收缩方法(shrinkage method),因为这种方法能够减少参数的值。
(3):运用贝叶斯方法(Bayesian approach)
我们前面所说的极小化误差函数E(w)(没有包括惩罚项)事实上是等价于运用极大似然法(maximum likelihood method),并且过度拟合问题是运用极大似然法的必然结果,只是如果参数数目比较少而数据点的数目比较多的话,过度拟合问题不严重,但如果参数数目很多的话,过度拟合问题就很严重了,这时候运用极大似然法是不合理的。
与极大似然法相对的是贝叶斯方法。运用贝叶斯方法能够避免过度拟合问题,哪怕模型参数的数目极大地大于数据点的数目。并且,贝叶斯方法能够使得模型的有效参数数目自动地适应于数据点的数目。事实上,我们在误差函数后添加补偿项的方法是等价于贝叶斯方法中的极大后验概率。
1.2:probability theory
1:概率的求和法则(sum rule)和求积法则(product rule):
(1):离散变量
(2):随机变量
2:贝叶斯定理(Bayes’ theorem)
其中,我们可以认为p(Y)是先验概率(prior probability),而P(Y|X)是后验概率(posterior probability) ,也就是我们在观测了变量X之后变量Y的概率。
18世纪英国业余数学家托马斯贝叶斯提出了一种似乎显而易见的观点:用客观的新信息更新我们最初关于某个事物的信念后,我们就会得到一个新的,改进了的信念。后来拉普拉斯推出了上述的贝叶斯公式。
如果数值能够用来代表信念度(degree of belief),那么操纵信念度的一些列法则等价于概率论中的求和法则和求积法则,因此我们可以用概率去代表信念,这一点已经被证明了。所以我们可以认为,在贝叶斯公式中,p(Y)代表了我们预先对变量Y的信念度,p(Y|X)代表了我们观察到变量X的值后修正的对变量Y的信念度。
3:运用概率论来解决曲线拟合问题:
我们之前是通过极小化误差函数来解决曲线拟合问题的。现在我们运用概率论来解决曲线拟合问题。假定曲线拟合模型中有一系列参数,用向量 w⃗ 表示,现在观察到的数据集 D=t1,t2,...,tN .
(1):似然函数(likelihood function)
p(D|w⃗ ) 被称作似然函数,它表示的是对于不同的模型参数 w⃗ 选择,获得这个特定的数据集D的概率是多少。似然函数在经典概率论和贝叶斯概率论中都扮演着非常重要的角色,但它们对似然函数的理解是不一样的
(2):用经典概率论来解决曲线拟合问题:
在经典概率论中,模型参数 w⃗ 被认为是一个固定的量,为了获得这个固定的参数,我们需要进行大量重复的实验,获得大量的数据集,来得到这些数据集出现的频率,从而得到关于数据的某一分布,从而得到参数 w⃗ 。就比如在高考中考生的成绩,由于由大量的考生,我们可以画出这些考生成绩的频率图,从而通过这个频率图我们发现考生成绩符合高斯分布。
现在我们已经观察到了数据集D,我们认为数据集D是最有可能发生的,因此我们应该选择这个模型的参数以使得我们现在观察到的数据D所对应的概率 p(D|w⃗ ) 最大,这也就是极大似然法的原理。
在经典概率论中,我们运用极大似然法来获取模型的参数,也就是通过极大化上述所说的似然函数 p(D|w⃗ ) 来获得曲线的参数 w⃗ 。但是通过极大似然法来获取模型参数时,会造成bias问题,而bias问题正是我们之前说的极大似然法会造成过度拟合问题的根源。
(3):用贝叶斯方法来解决曲线拟合问题
不同于经典概率论,贝叶斯方法认为模型参数
w⃗
不是一个固定的量,而是一个变量。我们可以先猜想参数
w⃗
有一个概率分布
p(w⃗ )
,也就是我们之前说的先验概率,我们现在观察到的数据集D会修正我们对待模型参数
w⃗
的信念,会得到一个更正后的模型参数的概率分布
p(w⃗ |D)
,这也就是后验概率。我们可以用如下的贝叶斯公式求解:
公式中的分母p(D)只是一个归一化因子,确保后验概率p(w|D)是一个有效的概率密度并且积分是为1,对公式两边积分,会发现 p(D)=∫p(D|w⃗ )p(w⃗ )dw⃗ 。并且通过上述公式,我们会发现 posterior∝likelihood∗prior 。
在经典概率论中,我们是通过极大似然函数 p(D|w⃗ ) 来求得模型参数w的。那么在贝叶斯方法中,我们是通过极大化模型参数的后验概率 p(w⃗ |D) 来求得模型参数w的,这方法称为maximum posterior(MAP)。
虽然我们已经利用了模型参数的先验概率,但这还不是完全的贝叶斯处理方法。对于完全的贝叶斯方法,我们需要运用概率论的求和加上求积规则,也就是对模型参数
w⃗
整个空间进行积分,这种对模型参数空间的边际化是贝叶斯方法的核心。
假设
x⃗ ,t⃗
是训练集,x是新观测的点,现在我们要预测值t,我们需要给出预测分布
p(t|x,x⃗ ,t⃗ )
,其计算方法如下:
(4):在模式识别中,经典概率论和贝叶斯方法分别的缺点:
对于经典概率论来说,用极大似然法求解会造成过度拟合问题(Over-fitting problem can be understood as a general property of maximum likelihood),如果模型参数很多,过度拟合问题会很严重。
贝叶斯方法经常被诟病的一点是先验概率分布的选择往往是基于数学的便利性而不是基于先验的信念,并且先验概率选择不好的话有很大可能会导致比较差的拟合结果。还有一点就是贝叶斯方法的对整个模型参数空间的边际化难度很高,计算量要求大。
在模式识别与机器学习这本书中,作者主要是强调贝叶斯方法。