8.3 过拟合处理
我们在第5章中讲到了一个过拟合的例子。在如图8-31所示的分类问题中,我们的目标是找到一个分类器,分割两种标签的数据。用肉眼不难看出,蓝色标签的点(圆圈)集中在图的右上区域,中间的图是最为合适的分类器。左图用一条直线分割平面,模型过于简单,对直线右侧的红色标签数据(叉叉)刻画较差,属于欠拟合;而右图则用了比较复杂的模型,把样本集的数据全部照顾到,属于过拟合。
虽然所有训练样本在图8-31右图上都已完全正确分类,但是这时候会有过拟合的问题。问题就是,如果加入新的样本,会怎么样?最终可能会遇到一些新样本,对于这些样本,模型无法很好地进行预测。从某种意义上讲,这个模型最初可能过拟合了训练数据,而无法很好地对之前未出现的新数据进行分类。所以,如果模型过于复杂,那么过拟合真的会成为问题。我们再来看一个例子,如图8-32所示。
左图上有蓝色(集中在右上)和黄色(集中在左下)两种点。这可能代表两个类别,比如健康和不健康。中图是某一种模型,看上去误差很小,虽然这个模型有点复杂,但是在中图上有效地区分了这两类点。右图上加入了更多的测试数据,我们发现,这个模型对不少新数据的分类是错误的。对于这个模型,我们认为它过拟合了。这个过拟合模型在训练时的误差小,但是在预测新数据时误差大。
第8章 TensorFlow
237