8-9(1.1 例:多项式曲线拟合)

497 阅读3分钟

  对于M=9M=9,训练集误差趋于0,正如我们所期望的那样,因为这多项式包含10个自由度,对应10个系数w1,...,w9w_1,...,w_9,因此可以精确地调优到训练集中的10个数据点。然而,测试集误差变得非常大,如图1.4所示,对应的函数y(w,w)y(w,w^*)表现出剧烈的震荡。

  这似乎是矛盾的,因为一个给定顺序的多项式包含所有的低阶多项式作为特例。因此,M=9M=9​多项式至少能够产生与M=3M=3​多项式一样的结果。此外,我们可能会假设新数据的最佳预测器是生成数据的函数sin(2πx)\sin(2\pi x)​(我们将在后面看到这确实是这样的)。我们知道函数sin(2πx)\sin(2\pi x)​的幂级数展开式包含所有阶的项,因此我们可以期望随着MM​的增加结果会单调地改进。

  我们可以通过检验系数ww^*​​​由各阶多项式得到,如表1.1所示。我们看到,随着MM​​的增加,系数的大小通常会变大。特别是对于M=9M=9​​多项式,通过开发较大的正值和负值,系数已根据数据进行微调,以便相应的多项式函数精确匹配每个数据点,但在数据点之间(特别是在范围内的端点附近),该函数表现出如图1.4所示的大震荡。直观地说,正在发生的是,具有较大MM​值的更灵活的多项式将越来越多地调整到对目标值的随机噪声。

Table 1.1

表 1.1 系数ww^*​对于不同阶次的多项式。观察系数的典型幅度如何随着多项式阶数的增加而急剧增加。

Figure 1.6

图 1.6 对于N=15N=15个数据点(左图)和N=100N=100个数据点(右图),使用M=9M=9多项式最小化平方和误差函数获得的解的图。我们看到,增加数据集的大小可以减少过拟合问题。

  当数据集的大小 发生变化时,检查给定模型的行为也很有趣,如图1.6所示。我们可以看大,对于给定的模型复杂性,随着数据集规模的增加,过拟合问题变得不那么严重。另一种说法是,数据集越大,我们能够适应数据的模型就越复杂(换句话说,就越灵活)。有时提倡的一个 粗略的启发式方法是,数据点的数量应该不少于模型中自适应参数数量的某个倍数(比如5或10)。然而,正如我们将在第三章中看到的,参数的数量不一定是衡量模型复杂性的最合适的方法。

  此外,必须根据可用练习集的大小限制模型中的参数数量,这是相当令人不满意的。根据所要解决问题的复杂性来选择模型的复杂性似乎更为合理。我们将看到,寻找模型参数的最小二乘方法代表了最大似然的特定情况(在1.2.5节中讨论),而 过拟合问题可以理解为最大似然的一般性质。采用贝叶斯方法可以避免过拟合问题。我们将看到,从贝叶斯的角度来看,采用参数数量大大超过数据点数量的模型没有困难。事实上,在贝叶斯模型中,参数的有效数量会自动适应数据集的大小。