防止过拟合,采用的手段有哪些?

过拟合

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

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

数据增强的方法
参考

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

L1正则与L2正则的区别
参考
L1正则L2正则


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


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

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

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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值