过拟合怎么产生的?防治措施?

1、什么是过拟合?

过拟合是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。

2、过拟合带来什么问题?

最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。

3、过拟合产生的原因?

在对模型进行训练时,有可能遇到训练数据不够,即训练数据无法对整个数据的分布进行估计;

权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。

随着模型训练的进行,模型的复杂度会增加,此时模型在训练集上的训练误差会逐渐减小,但在模型的复杂度达到一定程度时,模型在验证集上的误差反而随着模型的复杂度增加而增大,此时便发生了过拟合现象。

4、如何解决过拟合问题?

  • Early stopping

  对模型进行训练的过程即是对模型的参数进行学习更新的过程,往往会用到一些迭代方法,如梯度下降学习算法,Early stopping便是一种迭代次数截断的方法来防止过拟合的方法,在模型对训练集迭代收敛之前停止迭代来防止过拟合。

  具体做法:

  在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算validation data 的accuracy,当accuracy不再提高时,就停止训练,在训练的过程中,记录目前为止最好的validation accuracy,当连续10次Epoch(或者更多次)没达到最佳accuracy时,则停止迭代。

  • 数据集扩增

  这是解决过拟合最有效的方法,只要给足够多的数据,让模型尽可能多的适应【例外情况】,就会不断修正参数,得到更好的结果。

从数据源获取更多数据;根据当前数据集估计数据分布参数,使用该分布产生更多数据(一般不用,或引入抽样误差);数据增强,通过一定规则扩充数据,如在物体分类问题里,物体在图像中的位置、姿态、尺度、图片明暗度等都不会影响分类结果,可以通过图像平移、翻转、缩放等扩充数据。

  • 正则化:在神经网络计算损失值的过程中,在损失后面再加一项。

  当欠拟合时,希望它对模型误差的影响越小越好,以便模型快速拟合实际。

  当过拟合时,希望它对模型误差的影响越大越好,以便让模型不要产生过拟合的情况。

引出两个范数L1和L2

  L1:所有学习参数w的绝对值的和

  L2:所有学习参数w的平方和然后求平方根

在计算损失函数时加上正则项,减少特征量的权值,减少方差,避免某些参数值过大即过于“依赖”某些神经元,

  • dropout

  dropout在深度学习网络的训练过程中,多余神经网络单元,按照一定的概率将其暂时兄网络中丢弃。

  训练网络的每个单元要添加一道概率流程:

 在每次模型中忽略一些节点的数据学习,将小概率的异常数据获得学习的机会降低,这样这些异常数据对模型的影响就会更小了。keep_prob:保持率,如果为1,则代表全部进行学习。

dropout改变了神经网络的网络结构,它仅仅是属于训练时的方法,所以一般再进行测试时要将dropout的keep_prob变为1,代表不需要进行丢弃,否则会影响模型的正常输出。

 

posted @ 2019-03-15 11:35  hengxin  阅读(915)  评论(0编辑  收藏  举报