图
1
中的蓝色圆圈代表十次观测值,绿色代表真实的结果。我们的目标是在不知道绿色曲线的前提下根据新的输入值\(x\)预测目标值\(t\)。图
1
中的输入值\( \mathbf{x}\)是\([0,1]\)区间内随机选择的十个值。然后根据所选的\(\mathbf{x}\),带入\(\sin(2\pi x)\),生成十个精确的值,然后把这十个生成值加上一定量的噪声,目标数据集合\(\mathbf{t}\)就这样诞生了。(注意这里没有说加上多少噪声,在通信系统中,我们叫做信噪比不确定。Bishop在PRML中也没有指明到底是功率为多少的噪声,只说了
a small level of random noise having a Gaussian distribution
) 我们明白这十个数是有内在约束的,即也就是\(\sin(2\pi x)\)这个函数,这个函数是我们学习的目标,我们拿到这十个数的时候是不知道这个模型的存在的。
现在,我们从最直观简单的数学方法入手:曲线拟合。特别的,我们把这个潜在的数学模型\(\sin(2\pi x)\)放在多项式空间中,也就是说我们认为这个潜在的模型存在于\((1,x,\ldots ,x^{M})\)张成的空间中。\(M+1\)是这个多项式空间的维度。所以多项式拟合的结果可以表示为:
\begin{equation}
\label{eq:1}
y(x, \mathbf{w}) = w_{0} + w_{1}x + \ldots + w_{M}x^{M} = \sum_{j=0}^{M}w_{j}x^{j}
\end{equation}
这个多项式的系数\(w_{j},j\in \{0,\ldots ,M\}\)就是我们要学习的目标。尽管这个多项式关于\(x\)不是线性的,但是关于\(w_{j}\)来说却是线性的,我们叫这样的模型为
线性模型
。
式(\ref{eq:1})的系数一定要选的
准确
才能比较好的拟合给出的十个点。通过最小化
误差函数
,我们可以得到关于这\(M\)个\(w_{j}\)系数的一个估计。我们要用这个误差函数来表示\(y(x, \mathbf{w})\)和给定训练数据之间的不匹配程度。因此,这个误差函数的选取也是比较讲究的,在以后的学习中会碰到各种各样的误差函数。现在,我们选择用\(y(x, \mathbf{w})\)和\( \mathbf{t}\)之间的差值的平方和来表示误差,即:
\begin{equation}
\label{eq:2}
E( \mathbf{w}) = \frac{1}{2} \sum_{n=1}^{N}\{y(x_{n}, \mathbf{w}) - t_{n}\}^{2}
\end{equation}
系数\(\frac{1}{2}\)只是为了求导的时候去掉多余的一个因子\(2\),使得求得的\(w\)更有直观的意义,稍后就会发现了。
我们在
前文
提到,机器学习的泛化能力是一个非常重要的能力。对于新的输入\(\hat{x}\),学习得到的模型需要给出合理的\(\hat{t}\)。我们可以用另外的100组测试数据来检测估计模型(不同的\(M\)代表不同的模型)的泛化能力。这个时候我们用均方根误差函数来衡量不同模型的优劣比较方便。
\begin{equation}
\label{eq:3}
E_{RMS} = \sqrt{2E( \mathbf{w}^{*})/N}
\end{equation}
式(\ref{eq:3})所示的这个均方根误差函数的优点在于:1.对不同数量的测试数据集(不同大小的\(N\)),比较结果是经过归一化的(因为有除以\(N\)的归一化操作)。2.开根号的好处在于\(E_{RMS}\)的量纲和\(t\)是一样的。不同\(M\)对应的\(E_{RMS}\)如图
4
所示.
但是,我们暂且把最大似然准则和贝叶斯方法放一放。接着多项式拟合问题往下走,我们想知道难道对于十个训练数据点我们就不能用\(M=9\)这样的复杂模型了吗?不是的。对于十个数据点\(M=9\)导致的过度拟合问题,一个有效的解决办法是
正则化
。正则化的最直接方案是为式(\ref{eq:2})引入一个惩罚项。把(\ref{eq:2})变为:
\begin{equation}
\label{eq:4}
\tilde{E} = \frac{1}{2}\sum_{n=1}^{N} \{y(x_{n}, \mathbf{w}) - t_{n}\}^{2} + \frac{\lambda}{2} || \mathbf{w} ||^{2}
\end{equation}
在式(\ref{eq:4})中,惩罚项是所有系数的平方和。\[|| \mathbf{w}||^{2} = \sum_{i=0}^{M} w_{i}^{2}\] 系数\(\lambda\)控制着正则项的权重。这样的技术在统计学里叫做
shrinkage
因为它使得系数的值变小了。在神经网络领域,这个技术叫做
weight decay
。以后我们会越来越多的发现,机器学习是多学科交叉的结果。同一个问题,在不同领域有不同的解释,使用不同的术语。
图
6
展示了当\(M=9\)时,不同的\(\lambda\)对应的拟合效果。