过拟合

过拟合是模型的偏差小而方差大,即模型在训练集上拟合得很好,在测试集上的效果却很差。所以防止过拟合,就是要减小方差。(偏差、方差、贝叶斯误差

防止过拟合的方法

  1. 从源头上,扩充数据集,收集更多的数据或者采用数据增强的方法。
  2. 对于模型参数的处理方法,采用L1, L2正则化和dropout 的方法
  3. 对于训练方法,采用Early stopping。
  4. 采用bagging的方法

数据增强的方法
参考

  1. 常用的图像增强技术
  • 翻转(水平、垂直)
  • 旋转
  • 缩放(放大后裁剪,缩小后填充,填充方法包括常数,边缘,反射,对称和包裹模式)
  • 裁剪
  • 平移
  • 增加高斯噪声
  1. 条件型生成对抗网络
    利用生成对抗网络生成图像

L1正则与L2正则的区别
参考
防止过拟合,采用的手段有哪些?防止过拟合,采用的手段有哪些?


droupout正则
dropout–随机使一些神经元失活,用在模型的训练阶段。直观上理解:不要依赖于任何一个特征,不给任何一个输入加上太多权重,因为该单元的输入可能随时被清除。(参考Andwew Ng deeplearning.ai)


Early stopping
随着训练次数的增加,在训练集上的误差如蓝色,在验证集上的误差如紫线。可以看出,验证集上的误差经历了先减小后增大的变化过程,表明模型已经过拟合了,所以在验证集上的误差最小的时候,就要停止训练了。

使用Early stopping可能带来一个问题。模型在训练集上没有完全训练好,但是在验证集上已经开始出现过拟合了。此时Early stopping不能在减小偏差的同时减小方差。

如果不用 early stopping,另一种方法就是L2L2正则化,训练神经网络的时间就可能很长。这导致超级参数搜索空间更容易分解,也更容易搜索,但是缺点在于,必须尝试很多正则化参数λ\lambda的值,这也导致搜索大量λ\lambda值的计算代价太高(参考Andwew Ng deeplearning.ai)
防止过拟合,采用的手段有哪些?[]


Bagging
其实bagging的方法是可以起到正则化的作用,因为正则化就是要减少泛化误差,而bagging的方法可以组合多个模型起到减少泛化误差的作用. 在深度学习中同样可以使用此方法,但是其会增加计算和存储的成本(参考).

相关文章:

  • 2021-10-28
  • 2021-06-19
  • 2021-12-08
  • 2021-05-01
猜你喜欢
  • 2021-05-23
  • 2021-07-15
  • 2021-08-23
  • 2021-12-02
  • 2021-07-15
相关资源
相似解决方案