深度学习—过拟合问题

Posted eilearn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习—过拟合问题相关的知识,希望对你有一定的参考价值。

1、过拟合问题

  欠拟合:根本原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大; 
      解决方法:增加特征维度; 
  过拟合:根本原因是特征维度过大,导致拟合的函数完美的预测训练集,但对新数据的预测结果差。 
      解决方法:(1)减少特征维度;(2)正则化,降低参数值。

  减少过拟合总结过拟合主要是有两个原因造成的:数据太少+模型太复杂 
  (1)获取更多数据 :从数据源头获取更多数据;数据增强(Data Augmentation) 
  (2)使用合适的模型:减少网络的层数、神经元个数等均可以限制网络的拟合能力; 
  (3)dropout 
  (3)正则化,在训练的时候限制权值变大; 
  (4)限制训练时间;通过评估测试; 
  (4)增加噪声 Noise: 输入时+权重上(高斯初始化) 
  (5)结合多种模型: Bagging用不同的模型拟合不同部分的训练集;Boosting只使用简单的神经网络;

2、正则方法主要有哪些?

(1)L1和L2正则:都是针对模型中参数过大的问题引入惩罚项,依据是奥克姆剃刀原理。在深度学习中,L1会趋向于产生少量的特征,而其他的特征都是0增加网络稀疏性;而L2会选择更多的特征,这些特征都会接近于0,防止过拟合。神经网络需要每一层的神经元尽可能的提取出有意义的特征,而这些特征不能是无源之水,因此L2正则用的多一些。

(2)dropout:深度学习中最常用的正则化技术是dropout,随机的丢掉一些神经元。

(3)数据增强,比如将原始图像翻转平移拉伸,从而是模型的训练数据集增大。数据增强已经是深度学习的必需步骤了,其对于模型的泛化能力增加普遍有效,但是不必做的太过,将原始数据量通过数据增加增加到2倍可以,但增加十倍百倍就只是增加了训练所需的时间,不会继续增加模型的泛化能力了。

(4)提前停止(early stopping):就是让模型在训练的差不多的时候就停下来,比如继续训练带来提升不大或者连续几轮训练都不带来提升的时候,这样可以避免只是改进了训练集的指标但降低了测试集的指标。

(5)批量正则化(BN):就是将卷积神经网络的每层之间加上将神经元的权重调成标准正态分布的正则化层,这样可以让每一层的训练都从相似的起点出发,而对权重进行拉伸,等价于对特征进行拉伸,在输入层等价于数据增强。注意正则化层是不需要训练。

 











以上是关于深度学习—过拟合问题的主要内容,如果未能解决你的问题,请参考以下文章

过拟合&欠拟合 || 深度学习 || Pytorch || 动手学深度学习11 || 跟李沐学AI

深度学习防止过拟合的方法

Python深度学习之路-2.2 过拟合与集成学习

Python深度学习之路-2.2 过拟合与集成学习

Python深度学习之路-2.2 过拟合与集成学习

深度学习基础过拟合及其抑制