过拟合,正则化,Dropout

本文探讨了过拟合现象及其产生的原因,包括数据不足、模型复杂度过高和训练集噪声。解决过拟合的方法包括数据增强、模型简化、集成学习和正则化等。重点介绍了正则化,特别是L1和L2正则化,以及它们如何影响权重更新以降低模型复杂度。此外,还详细阐述了Dropout技术,解释了它如何通过随机删除神经元来减少共适应关系,提高模型泛化能力,并讨论了训练与测试期间的rescale操作。
摘要由CSDN通过智能技术生成

过拟合

在训练集上表现很好,但在测试集上的泛化能力很差。这是因为模型记住了训练数据的所有特征,所以其在训练集上误差很小,但放在测试集上并不能得到好的结果

产生过拟合的原因:

  1. 数据量太少
  2. 模型太复杂,拟合能力太强
  3. 训练集和测试集的分布不一致
  4. 训练集噪声太多,模型拟合了噪声,导致其对正常样本的预测能力下降

解决过拟合的方法:

  • 数据方面:找更多数据,基于已有数据增广,加噪声,平衡分布(类别平衡,训练集测试集分布平衡)
  • 模型:使用更小的网络,集成学习(bagging,boosting),dropout,batch Normalization
  • 损失函数:正则化,标签平滑(0, 1, 0, 0, 0, 0 ->0.1, 0.5, 0.1, 0.1, 0.1, 0.1),平衡分类(在损失函数中,对数量不同的各类数据,采用不同的权重。多的权重大,少的权重小),early stop

正则化:减小权重w的值

L2正则化就是在代价函数后面再加上一个正则化项:

C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。

L2正则化项是怎么避免overfitting的呢?我们推导一下看看,先求导:

可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:

在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的,所以 1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小。

在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n(这里不像L2正则化项那样,需要再乘以1/2,具体原因上面已经说过。)

同样先计算导数:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值