文章目录
1.什么是过拟合?
过拟合(overfitting
)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。
具体表现就是最终模型在训练集上效果好,在测试集上效果差,模型泛化能力弱。
抽样误差是指由于随机抽样的偶然因素使样本各单位的结构不足以代表总体各单位的结构,而引起抽样指标和全局指标的绝对离差。必须指出,抽样误差不同于登记误差,登记误差是在调查过程中由于观察、登记、测量、计算上的差错所引起的误差,是所有统计调查都可能发生的。抽样误差不是由调查失误所引起的,而是随机抽样所特有的误差。
2.过拟合产生的原因?
(1)在对模型进行训练时,有可能遇到训练数据不够,即训练数据无法对整个数据的分布进行估计的时候;
(2)权值学习迭代次数足够多(Overtraining
),拟合了训练数据中的噪声和训练样例中没有代表性的特征;
通过上图可以看出,随着模型训练的进行,模型的复杂度会增加,此时模型在训练数据集上的训练误差会逐渐减小,但是在模型的复杂度达到一定程度时,模型在验证集上的误差反而随着模型的复杂度增加而增大。此时便发生了过拟合,即模型的复杂度升高,但是该模型在除训练集之外的数据集上却不work。
3.如何解决过拟合问题?
(1)Early stopping:
对模型进行训练的过程即是对模型的参数进行学习更新的过程,这个参数学习的过程往往会用到一些迭代方法,如梯度下降(Gradient descent
)学习算法。Early stopping
便是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。
Early stopping
方法的具体做法是,在每一个Epoch
结束时(一个Epoch
集为对所有的训练数据的一轮遍历)计算validation data
的accuracy
,当accuracy
不再提高时,就停止训练。这种做法很符合直观感受,因为accurary
都不再提高了,在继续训练也是无益的,只会提高训练的时间。那么该做法的一个重点便是怎样才认为validation accurary
不再提高了呢?并不是说validation accuracy
一降下来便认为不再提高了,因为可能经过这个Epoch
后,accuracy
降低了,但是随后的Epoch
又让accuracy
又上去了,所以不能根据一两次的连续降低就判断不再提高。一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy
,当连续10次Epoch
(或者更多次)没达到最佳accuracy
时,则可以认为accuracy
不再提高了。此时便可以停止迭代了(Early Stopping
)。这种策略也称为“No-improvement-in-n”
,n
即Epoch
的次数,可以根据实际情况取,如10、20、30……
(2)数据集扩增:
这是解决过拟合最有效的方法,只要给足够多的数据,让模型看见尽可能多的例外情况,它就会不断修正自己,从而得到更好的结果:
如何获取更多数据,可以有以下几个方法:
- 从数据源头获取更多数据: 这个是容易想到的,例如物体分类,我就再多拍几张照片好了;但是,在很多情况下,大幅增加数据本身就不容易;另外,我们不清楚获取多少数据才算够;
- 根据当前数据集估计数据分布参数,使用该分布产生更多数据:这个一般不用,因为估计分布参数的过程也会代入抽样误差。
- 数据增强(Data Augmentation):通过一定规则扩充数据。如在物体分类问题里,物体在图像中的位置、姿态、尺度,整体图片明暗度等都不会影响分类结果。我们就可以通过图像平移、翻转、缩放、切割等手段将数据库成倍扩充。
(3)正则化(regularization):
原理同上,但是这类方法直接将权值的大小加入到 Cost
里,在训练的时候限制权值变大。以 L2 regularization
为例:
训练过程需要降低整体的Cost
,这时候,一方面能降低实际输出与样本之间的误差
C
0
C_0
C0 ,也能降低权值大小。
(4)dropout:
在训练时,每次随机(如50%概率)忽略隐层的某些节点;这样,我们相当于随机从2^H
个模型中采样选择模型;同时,由于每个网络只见过一个训练数据(每次都是随机的新网络),所以类似 bagging
的做法,这就是我为什么将它分类到结合多种模型中;
此外,而不同模型之间权值共享(共同使用这H个神经元的连接权值),相当于一种权值正则方法,实际效果比 L2 regularization
更好。
参考资料:
https://www.zhihu.com/search?type=content&q=%E8%BF%87%E6%8B%9F%E5%90%88
http://blog.csdn.net/heyongluoyao8/article/details/49429629
http://blog.sina.com.cn/s/blog_64b046c70101f09r.html