(Page:4-7) 1.1 多项曲线拟合

430 阅读6分钟

1.1.Example:Polynomial Curve Fitting(多项曲线拟合)

  我们首先介绍一个简单的回归问题,我们将在本章中使用它作为一个连续的例子来激发一些关键的概念。假设我们观测到一个实值输入变量xx,我们希望利用这个观测值来预测一个实值目标变量tt的值。考虑一个使用综合生成数据的人工例子是有指导意义的,因为这样我们就知道生成数据的精确过程,以便于任何学到的模型进行比较。这个例子的数据是由函数sin(2x)sin(2x)和包含在目标值中的随机噪声生成的,详见附录A。

N=10N = 10个点的训练数据集的绘图,显示为蓝色圆圈,每个包括输入变量xx和相应目标变量tt的观测值。绿色曲线显示用于生成数据的函数sin(2πx)sin(2\pi x)。我们的目标是在不知道绿色曲线的情况下,预测一些新的xx值的tt值。figure_1.2.png

  现在假设我们有一个训练集,由NNxx的观测值组成,记为x(x1,...,xN)Tx \equiv (x_1,...,x_N)^T。图1.2显示了包含N=10N=10个数据点的训练集的图。图1.2中输入数据集xx是通过选择XnX_n的值生成的,当n=1,...,Nn = 1,...,N,在[0,1][0,1]范围内均匀间隔,通过首先计算函数sin(2πx)sin(2\pi x)的相应值,然后向每个这样的点添加具有高斯分布(高斯分布在1.2.4节中讨论)的小水平随机噪声,以获得相应的值tnt_n,从而获得目标数据集tt,我们在捕获许多真实数据集的一个特性,即它们具有我们希望了解的潜在规律,但单个观测值被随机噪声破坏。这种噪声可能来自本质随机(即随机)过程,如放射性衰变,但更典型的是由于存在本身未被观测到的可变性源。

  我们的目标是利用这个训练集来预测目标变量的tt值。xx的输入变量。正如我们稍后将看到的,这涉及到隐式试图发现潜在的函数sin(2πx)sin(2\pi x)。这本质上是一个困难的问题,因为我们必须从有限的数据集进行推广。此外,观测数据被噪声破坏,所以对给定的xx对于tt的合适值存在不确定性。在第1.2节中讨论的决策理论允许我们利用这种概率表示,以便根据适当的标准做出最优预测。

  然而,目前,我们将相当非正式地进行讨论,并考虑基于曲线拟合的简单方法。特别是,我们将使用以下形式为

y(x,w)=w0+w1x+w2x2+...+wMxM=j=0Mwjxj(1.1)y(x,w)=w_0+w_1x+w_2x^2+...+w_Mx^M=\sum^M_{j=0}w_jx^j\tag{1.1}

的多项式函数拟合数据,其中MM是多项式的阶数,xjx^j表示xx提升到jj的幂。多项式系数w0,...,wMw_0,...,w_M由向量ww共同表示。主义,尽管多项式函数y(x,w)y(x,w)xx的非线性函数,但是系数ww它是线性函数。函数,如多项式,在未知参数中是线性的,具有重要的性质,称为线性模型,将在第3章和第4章中广泛讨论。

  系数的值将通过将多项式拟合到训练数据来确定。这可以通过最小误差函数来实现,该误差函数测量任意给定值ww得函数y(x,w)y(x,w)与训练集数据点之间的失配。广泛使用的误差函数的一个简单选择是,每个数据点xnx_n的预测y(xn,W)y(x_n,W)与相应目标值tnt_n之间的误差平方和,这样我们就最小化了

E(w)=12n=1N{y(xn,w)tn}2(1.2)E(w)=\frac{1}{2}\sum^N_{n=1}\{y(x_n,w)-t_n\}^2\tag{1.2}

其中包含1/2的系数,以方便以后使用。我们将在本章后面讨论选择差函数的动机。目前我们只注意到,当且仅当函数y(x,W)y(x,W)正好通过每个训练数据点时,他是一个非负量,它将为零。平方和误差函数的几何解释如图1.3所示。

y(x,w)y(x,w)中每个数据点的位移平方和(由垂直绿色条显示)的一半。 figure_1.3.png

Exercise 1.1

  我们可以通过选择E(w)E(w)尽可能小的ww值来解决曲线拟合问题。由于误差函数是系数ww的二次函数,其对系数的导数在ww的元素中是线性的,因此误差函数的最小化有一个唯一的解,用ww^*表示,可以在闭合形式中找到。得到的多项式是由函数y(x,w)y(x,w^*)给出的练习1.1。

  任然存在选择多项式阶数MM的问题,正如我们将看到的,这将成为一个称为模型比较或模型选择的重要概念的示例。在图1.4中,我们展示了四个将阶数M=1,2,3,...,9M = 1,2,3,...,9的多项式拟合到图1.2所示数据集的结果示例。

  我们注意到常数(M=0)(M = 0)和一阶(M=1)(M = 1)多项式对数据的拟合较差,因此函数sin(2πx)sin(2\pi x)的表示较差。三阶(M=3)(M = 3)多项式似乎最适合图1.4所示示例中的函数sin(2πx)sin(2\pi x)。当我们使用更高阶的多项式(M=9)(M = 9)时,我们获得了对训练数据的极好拟合。事实上,多项式正好通过每个数据点,E(w)=0E(w^*) = 0。然而,拟合曲线振荡剧烈,函数sin(2πx)sin(2\pi x)的表示非常差。后一种行为称为过度拟合。

  正如我们前面提到的,我们的目标是通过对新数据进行准确预测来实现良好的泛化。通过考虑由100个数据点组成的单独测试集,我们可以获得对泛化性能对MM的依赖性的一些定量洞察,这些数据点是使用与生成训练集点完全相同的程序生成的,但目标值中包含随机噪声值的新选择。对于每个MM的选择,我们可以评估(1.2)中给出的训练集数据的E(w)E(w^*)训练数据,也可以评估测试数据集的E(w)E(w^*)。有时,使用

ERMS=2E(w)/N(1.3)E_{RMS}=\sqrt{2E(w^*)/N}\tag{1.3}

定义的均方根(RMS)误差更为方便,其中NN的除法允许我们在平等的基础上比较不同大小的数据集,平方根确保ERMSE_{RMS}在与目标变量tt相同的标度(和相同的单位)上测量。图1.5中显示了各种MM值得训练集和测试集RMSRMS误差图。测试集误差是衡量我们在预测xx的新数据观测值的tt值方面做的如何。我们从图1.5中注意到,MM的小值给出了相对较大的测试集误差集值,这可归因于相应的多项式相当不灵活,无法捕捉函数sin(2πx)sin(2\pi x)中的振荡。MM的值在范围3M83\leq M\leq 8给出测试集误差的较小值,这些值也给出了生成函数sin(2πx)sin(2\pi x)的合理表示,如图1.4中M=3M = 3的情况所示。

具有不同阶数MM的多项式曲线图,如红色曲线所示,与图1.2所示的数据集拟合。 figure_1.4.png