训练误差与测试误差
机器学习的目的是使学习到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时, 基于损失函数的模型的训练误差
(training error) 和模型的测试误差
(test error) 就自然成为学习方法评估的标准。机器学习方法具体采用的损失函数未必是评估时使用的损失函数。 当然, 让两者一致是比较理想的。
训练误差的大小, 对判断给定的问题是不是一个容易学习的问题是有意义的, 但本质上不重要。
测试误差反映了学习方法对未知的测试数据集的预测能力, 是学习中的重要概念。
显然, 给定两种学习方法, 测试误差小的方法具有更好的预测能力, 是更有效的方法。
通常将学习方法对未知数据的预测能力称为泛化能力(generalizationability)
过拟合与模型选择
当假设空间含有不同复杂度(例如, 不同的参数个数) 的模型时, 就要面临模型选择(model selection) 的问题。
我们希望选择或学习一个合适的模型。
如果在假设空间中存在“真”模型, 那么所选择的模型应该逼近真模型。 具体地, 所选择的模型要与真模型的参数个数相同, 所选择的模型的参数向量与真模型的参数向量相近。
如果一味追求提高对训练数据的预测能力, 所选模型的复杂度则往往会比真模型更高。 这种现象称为过拟合(over-fitting) 。
过拟合是指学习时选择的模型所包含的参数过多, 以致于出现这一模型对已知数据预测得很好, 但对未知数据预测得很差的现象。 可以说模型选择旨在避免过拟合并提高模型的预测能力。
下面, 以多项式函数拟合问题为例, 说明过拟合与模型选择。 这是一个回归问题。
解决这一问题的方法可以是这样的. 首先确定模型的复杂度, 即确定多项式的次数; 然后在给定的模型复杂度下, 按照经验风险最小化的策略, 求解参数, 即多项式的系数, 具体地, 求以下经验风险最小化: