贝叶斯与多项式拟合

本文主要介绍从贝叶斯理论角度看多项式曲线拟合,不涉及多项式曲线拟合的具体细节。

多项式曲线拟合

假设给定了一个包含$N$个$x$的训练集,记为 $\mathbf{x}\equiv (x_1,\cdots,x_N)^T$,同时有对应的目标值 $\mathbf{t}\equiv (t_1,\cdots,t_N)^T$。我们想找到一个函数能最好地拟合现有这组数据,以便给定一个新的$\hat{x}$,我们可以通过这个函数来给出一个预测值$\hat{t}$。
现在,我们仅考虑用多项式函数去拟合这组数据,即:
$$y(x,\mathbf{w})=w_0+w_1x+w_2x^2+\cdots+w_Mx^M=\sum\limits_{j=0}^Mw_jx^j\tag{1}$$
其中$M$代表多项式的阶数,多项式的系数$w_0,\cdots,w_M$可以简记为$\mathbf{w}$。注意到函数$y(x,\mathbf{w})$尽管是关于$x$的非线性函数,却是关于$\mathbf{w}$的线性函数。
多项式系数$\mathbf{w}$的值可以通过拟合训练集来确定。我们用一个误差函数来度量预测值与训练集之间的误差,然后通过最小化这个误差函数来进行拟合。一个简单而常用的误差函数是计算训练集中每个数据点与预测值之间差值平方的和,即:
$$E(\mathbf{w})=\frac{1}{2}\sum\limits_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2\tag{2}$$这里添加了一个乘子$\frac{1}{2}$是为了方便之后求导。

正则化

进行拟合时,如果多项式阶数较高,就可能会发生过拟合。我们可以将多项式的阶数这一因素加入到误差函数中,用来防止过拟合。改进后的误差函数为:
$$E(\mathbf{w})=\frac{1}{2}\sum\limits_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\lambda}{2}||\mathbf{w}||^2\tag{3}$$

贝叶斯理论

在经典概率论中,概率指的是随机重复事件发生的频率。而从贝叶斯理论的角度去看,概率提供了对不确定性的一种度量。
利用贝叶斯理论,我们可以从不断获得的数据(事实)中得到经验,来修改我们对不确定性的度量。
举一个简单的例子:有2个箱子A和B,其中A箱子有2个红球,1个白球;B箱子有2个白球,1个红球。现在我们等概率地从任一个箱子中取出一个球。在观察这个球的颜色之前,我们认为这个球来自A箱子和来自B箱子的概率相同,即$p(A)=p(B)=0.5$;然而,如果我们观察到这个球是红色,那么概率就会变化,此时小球来自A箱的概率为$\frac{2}{3}$,而来自B箱的概率仅为$\frac{1}{3}$。
回到曲线拟合的例子,我们在观察训练数据集之前,对$\mathbf{w}$取值的概率分布有一个预测,记作$p(\mathbf{w})$,称之为先验概率(在观察数据前)。有一组观察到的数据$\mathcal{D}=\{t_1,\cdots,t_N\}$,在观察数据后对$\mathbf{w}$的预测变为$p(\mathbf{w}|\mathcal{D})$,称之为后验概率(在观察数据后)。
贝叶斯理论的核心是给出了先验概率与后验概率间的关系,即$$p(\mathbf{w}|\mathcal{D})=\cfrac{p(\cal{D}|\mathbf{w})p(\mathbf{w})}{p(\mathcal{D})} \tag{4}$$
其中,等式右边的$p(\cal{D}|\mathbf{w})$称为似然函数,它可以看作是一个关于$\mathbf{w}$的函数,它描述了在不同的$\mathbf{w}$下产生这样的数据集$\mathcal{D}$的可能性。注意这不是关于$\mathbf{w}$的概率分布,所以它关于$\mathbf{w}$的积分不一定等于1。
我们可以用文字来描述贝叶斯理论,即$$\mathrm{posterior}\propto\mathrm{likelihood}\times\mathrm{prior}\tag{5}$$
将所有的量看成关于$\mathbf{w}$的函数,$p(\mathcal{D})$就是一个常数系数,它用来保证等式左侧的后验概率积分后等于1。如果给(4)式左右两边积分,我们就可以用先验概率和似然函数来表示这个系数$$p(\mathcal{D})=\int p(\cal{D}|\mathbf{w})p(\mathbf{w})\,d\mathbf{w}\tag{6}$$

回到多项式曲线拟合

下面我们从贝叶斯的视角再来看多项式曲线拟合。回顾一下多项式曲线拟合的问题描述:假设给定了一个包含$N$个$x$的训练集,记为 $\mathbf{x}\equiv (x_1,\cdots,x_N)^T$,同时有对应的目标值 $\mathbf{t}\equiv (t_1,\cdots,t_N)^T$。我们的目标是对给定的一个新$\hat{x}$,能得到一个预测值$\hat{t}$。与之前不同,我们用目标变量$t$的概率分布来描述不确定性。
假设对给定的$x$,对应的$t$服从均值为$y(x,\mathbf{w})$的正态分布,其中$y(x,\mathbf{w})$即式(1)中得到的结果$$p(t|x,\mathbf{w},\beta)=\mathcal{N}(t|y(x,\mathbf{w}),\beta^{-1})\tag{7}$$这里的$\beta$表示正态分布的精度,等于方差的倒数。
下图更好地说明了这一假设:

下面我们利用训练集数据$\{\mathbf{x},\mathbf{t}\}$,通过极大似然估计来确定未知参数$\mathbf{w}$和${\beta}$的值。假设数据之间相互独立,那么似然函数就是$$p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)=\prod\limits_{n=1}^N\mathcal{N}(t_n|y(x_n,\mathbf{w}),\beta^{-1})\tag{8}$$
似然函数的意义是,在参数$\mathbf{w}$和$\beta$取某个值时,产生这个数据的可能性。那么最可能产生这个数据集的$\mathbf{w}$和$\beta$即能最好拟合曲线的参数,故我们要找到能使似然函数最大化的$\mathbf{w}$和$\beta$。然而通常情况下,直接对似然函数求导会使式子变得更加复杂,所以我们最大化的目标变为似然函数的自然对数。由于对数函数是单调增的,所以对数似然函数与原函数具有相同的最大值点,即我们找到的$\mathbf{w}$和$\beta$仍是正确的。再将正态分布的表达式代入,得到$$\ln p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)=-\cfrac{\beta}{2}\sum\limits_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\cfrac{N}{2}\ln\beta-\cfrac{N}{2}\ln(2\pi)\tag{9}$$
我们要求得一个$\mathbf{w}_{\mathrm{ML}}$来最大化(9)式,这时可以忽略掉(9)式中的后两项,因为它们不依赖与$\mathbf{w}$。另外,我们注意到乘以一个正常数不会影响$\mathbf{w}_{\mathrm{ML}}$的值,所以我们用$\frac{1}{2}$替换掉$\frac{\beta}{2}$。最后,最大化对数似然函数即最小化它的相反数。故我们将优化目标可以写为:$$\min\cfrac{1}{2}\sum\limits_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2$$这和之前的误差函数表达式完全相同!可见,最小化误差平方和和最大化似然函数是等价的。
接下来可以求得参数$\beta$的值。最大化(9)式可以得到$$\cfrac{1}{\beta_{\mathrm{ML}}} = \cfrac{1}{N}\sum\limits_{n=1}^N\{y(x_n,\mathbf{w}_{\mathrm{ML}})-t_n\}^2\tag{10}$$求得$\mathbf{w}_{\mathrm{ML}}$和$\beta_{\mathrm{ML}}$之后,我们对于新给定的一个$x$,得到的不再仅仅是一个预测值,而是一个预测出的概率分布$$p(t|x,\mathbf{w}_{\mathrm{ML}},\beta_{\mathrm{ML}})=\mathcal{N}(t|y(x,\mathbf{w}_{\mathrm{ML}}),\beta_{\mathrm{ML}}^{-1})\tag{11}$$

考虑先验概率

我们假设$\mathbf{w}$服从一个先验分布,简单地,采用正态分布$$p(\mathbf{w}|\alpha)=\mathcal{N}(\mathbf{w}|\mathbf{0},\alpha^{-1}\mathbf{I})=\left(\cfrac{\alpha}{2\pi}\right)^{(M+1)/2}\exp\left\{-\cfrac{\alpha}{2}\mathbf{w}^T\mathbf{w}\right\}\tag{12}$$其中$\alpha$是正态分布的精度,$M+1$是$\mathbf{w}$向量的长度,$M$是多项式的阶数。类似于$\alpha$这样控制模型参数分布的参数,称为超参数。利用式(5),我们可以得到$$p(\mathbf{w}|\mathbf{x},\mathbf{t},\alpha,\beta)\propto p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)p(\mathbf{w}|\alpha)\tag{13}$$
现在我们可以通过最大化后验概率(MAP)的方法来确定$\mathbf{w}$的值。取(13)式的自然对数的相反数,并结合(9)式和(12)式,最大化后验概率即转化成最小化下面的式子$$\frac{\beta}{2}\sum\limits_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\alpha}{2}\mathbf{w}^T\mathbf{w}\tag{14}$$这个式子和(2)是相同的的,其中$\lambda=\alpha/\beta$。可见,最大化后验概率和最小化正则化的误差平方和函数是等价的。

为什么 $\mathbf{w}$ 的先验分布均值为0?
我们知道,当发生过拟合时,$\mathbf{w}$ 会变得很大,来使模型误差尽量小。比如:$\mathbf{w}=(7689,-123,3564)^T$。使用均值为0的先验分布,相当于我们有一个预先知道的知识:$\mathbf{w}$ 不会离0偏离得太远。这样得到的模型就是一个正则化的模型,不易发生过拟合。
$\alpha$ 越大,表示 $\mathbf{w}$ 分布的方差越小(即离0越近)。在最后一个式子中,也可以看出,$\alpha$ 越大,正则化的效果越大。

参考资料:

  1. Pattern Recognition and Machine Learning (PRML)