pytorch学习笔记(十四)————正则化惩罚(减轻overfitting)

pytorch学习笔记(十四)————正则化惩罚(减轻overfitting)

目录

回顾

在这里插入图片描述
在上一篇博客中我们讲到,当训练模型比真实模型复杂度低的情况叫做underfitting(欠拟合),当训练集模型比真实模型复杂度高的情况叫做overfitting(过拟合)。现如今由于网络层数不断地增加,欠拟合的情况已经较为少见,绝大数多情况都是出现过拟合。与过拟合有一个异曲同工的概念叫做奥卡姆剃刀原理。
奥卡姆剃刀原理是指:在科学研究任务中,应该优先使用较为简单的公式或者原理,而不是复杂的。
应用到深度学习任务中,可以通过减小模型的复杂度来降低过拟合的风险,即模型在能够较好拟合训练集(经验风险)的前提下,尽量减小模型的复杂度(结构风险)。

降低过拟合方法

在这里插入图片描述1.提供更多数据
2.迫使模型复杂度降低
(1)使用更简单结构的神经网络
(2)正则化惩罚项
3.Dropout
4.数据增强
5.早停法

正则化惩罚项

在这里插入图片描述
我们在原有的二分类loss上面加入权重θ的一范数之和。如图所示,这样在进行训练过程中,不断优化loss,会使得去权重尽可能降低,从而减小模型复杂度,降低过拟合的风险。为什么权重降低会减小模型复杂度呢?
考虑到模型可以用x的n次幂之和表示,高次幂x的系数越小,则曲线越平滑,复杂度越低,训练模型过程中为了同时保持accracy高和权重范数低。最后优化的结果应该是x低次幂的系数大而高次幂的系数小,从而在尽量提高模型accuracy的情况下降低了模型复杂度,降低过拟合的风险。
在pytorch中这一概念有时候也叫做weight decay
在这里插入图片描述
如上图所示,在没有进行正则化的时候,训练出的模型为了将一些噪声数据包含进去变得异常复杂,反而降低了模型的泛化能力。在经过正则化之后,模型变得更加平滑,增加了模型的泛化能力。

常用的正则化公式

在这里插入图片描述
一般情况而言使用二范数,也就是公式二用的更多。需要注意的是λ属于超参数
在这里插入图片描述
优化器默认使用L2正则,在weight_decay中传入λ在这里插入图片描述
L1正则pytorch中没有实现,需要人为实现

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值