深度学习基础知识--2.4 过拟合与欠拟合
在机器学习中,过拟合(Overfitting)与欠拟合(Underfitting)都是指模型选择不能够很好地拟合数据本身,即模型过于复杂或过于简单。一个过拟合的模型往往有着比数据本身特性更多的参数,为了拟合尽可能多的数据,甚至包括一些错误的样本,这些参数会因过度拟合数据而产生一些噪声。而欠拟合与之相反,其原因是选择的参数或模型不够复杂,例如用线性模型去拟合非线性结构,显然是欠拟合的。图2.7表示了在分类问题中出现的过拟合与欠拟合问题。对于这样的非线性模型,如果采用图2.7(a)的线性模型,显然无法去拟合非线性的分界线,这种情况为欠拟合,模型将无法得到很好的预测效果。而为了拟合尽可能多的数据,可能选择了图2.7(c)中曲线所示的复杂模型,尽管这样的模型将数据100%地区分开了,但并没有很好地拟合数据特征,对于一个新来的测试点,这个过拟合的模型很可能出现区分错误,这样的模型叫作过拟合。而图2.7(b)中的曲线则为一个更好的模型,具有更好的泛化能力。
如图2.8所示的回归问题,如果用浅色的多项式曲线去拟合,尽管可以完美拟合所有数据点,但失去了数据本身的特性,并且无法很好地得到泛化。例如左侧第一和第二个点之间任意一个未知数据点,预测值将会非常大,导致很大的偏差。相反,深色的线性模型反映了数据本身的变化趋势,在预测新的数据点时,可以达到更高的准确度。
在上述问题中,从图形的角度理解了过拟合和欠拟合的概念,下面将从数据的角度解释这两个概念。在一个机器学习问题中,数据包含训练数据(Training Data)和测试数据(Testing Data),模型需要在训练数据上选择与训练,而测试数据对于模型是不可见的,对于一个欠拟合的模型,在训练数据上效果就会很差,这个很容易鉴别,那怎么知道模型是否过拟合呢?采用的做法是,在训练数据中抽出一部分样本,构成一个验证数据(Validation Data),假设验证数据的分布和训练数据、测试数据相似,可以通过验证数据上的表现来判定模型是否过拟合。图2.9的横坐标为模型复杂度,纵坐标为误差值,下方曲线表示训练数据上的误差,而上方曲线表示验证数据上的误差。可以清楚地观察到,当模型复杂度增加时,训练数据上的误差逐渐变小,因为复杂的模型更容易拟合数据。然而验证数据上的误差是先降后升的,这是因为模型从欠拟合逐渐过渡到过拟合阶段。验证数据的作用就是帮助选择虚线处的模型,它可以最好地拟合数据本身,从而期望达到更好的泛化效果——算法对新鲜样本(测试数据)有更好的适应能力。
第4章将介绍增强模型泛化能力来防止过拟合的一些方法,控制模型复杂度,可以缓解过拟合,学习到隐藏在数据背后的规律。
- 点赞
- 收藏
- 关注作者
评论(0)