权重衰减/权重衰退——weight_decay

这篇具有很好参考价值的文章主要介绍了权重衰减/权重衰退——weight_decay。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

权重衰减/权重衰退——weight_decay

import torch.optim as optim
from torch.optim.lr_scheduler import CosineAnnealingLR

 opt = optim.Adam(parameters, lr=args.lr, weight_decay=1e-4)
 
 # CosineAnnealingLR 余弦退火调整学习率
 lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(opt, T_max=args.epochs,
                                                              eta_min=0, last_epoch=-1)
  1. weight_decay = 1e-4
  2. weight_decay = 1e-6

一、什么是权重衰减/权重衰退——weight_decay?

weight_decay(权重衰退):

  • L2正则化
  • 主要作用是:解决过拟合,在损失函数中加入L2正则化项

weight _decay本质上是一个 L2正则化系数
L = E i n + λ ∑ j w j 2 L=E_{i n}+\lambda \sum_j w_j^2 L=Ein+λjwj2
可以理解为:

  • 加上这个 L2正则化,会限制模型的权重都会趋近于0
  • 理解就是当 w 趋近 0 时, w平方和 会小, 模型损失也会变小
  • weight_decay的大小就是公式中的λ,可以理解为λ越大,优化器就越限制权重变得趋近 0

权重衰减( Weight Decay)

  • 一种有效的正则化方法 [Hanson et al.,1989]
  • 在每次参数更新时,引入一个衰减系数
    θ t ← ( 1 − β ) θ t − 1 − α g t \theta_t \leftarrow(1-\beta) \theta_{t-1}-\alpha g_t θt(1β)θt1αgt
    其中:
  • gt 为第t步更新时的梯度
  • α学习率
  • β权重减系数
  • 一般取值比较小,比如0.0005
    在标准的随机梯度下降中,权重衰减正则化和正则化的效果相同
  • 因此,权重衰减在一些深度学习框架中通过 L2 正则化来实现
  • 但是,在较为复杂的优化方法( 比如Adam ) 中,权重衰减正则化和正则化并不等价 [Loshchilov et al, 2017b]

 


二、weight decay 的作用

使用 weight decay 可以:

  • 防止过拟合
  • 保持权重在一个较小在的值,避免梯度爆炸。
    • 因为在原本的 loss 函数上加上了权重值的 L2 范数,在每次迭代时,模不仅会去优化/最小化 loss,还会使模型权重最小化
    • 让权重值保持尽可能小,有利于控制权重值的变化幅度(如果梯度很大,说明模型本身在变化很大,去过拟合样本),从而避免梯度爆炸

 


三、设置weight decay的值为多少?

weight_decay即权重衰退。

  • 为了防止过拟合,在原本损失函数的基础上,加上L2正则化
    • 而weight_decay就是这个正则化的lambda参数
  • 一般设置为1e-8,所以调参的时候调整是否使用权重衰退即可

在深度学习模型中,一般将衰减系数设置为 0.00010.001 之 间的值

  • 这是一个比较常用的范围
  • 经验值也表明,这个范围是最佳的

论文里是验证了1e-4比较好

  • 当你不确定模型复杂度和数据集大小的时候,最保守就是从1e-4周围开始尝试

在看其他量化训练的一些代码、论文等,不经意间注意到有人建议要关注weight decay值的设置

  • 建议设置为1e-4, 不要设置为1e-5这么小
  • 当然,这个值最好还是在当下的训练任务上调一调。

因为weight-decay 可以使参数尽可能地小,尽可能地紧凑文章来源地址https://www.toymoban.com/news/detail-464978.html

  • 那这样权重的数值就不太可能出现若干个极端数值(偏离权重均值过大或过小)导致数值区间过大
  • 这样求得的 scale=(b-a)/255 会偏大,导致的结果就是大量数值较为接近的浮点数被量化到同一个数,严重损失了精度

到了这里,关于权重衰减/权重衰退——weight_decay的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【PyTorch】权重衰减

    通过对模型过拟合的思考,人们希望能通过某种工具 调整模型复杂度 ,使其达到一个合适的平衡位置。 权重衰减(又称 L 2 L_2 L 2 ​ 正则化)通过为损失函数 添加惩罚项 ,用来惩罚权重的 L 2 L_2 L 2 ​ 范数,从而限制模型参数值,促使模型参数更加稀疏或更加集中,进而调

    2024年02月04日
    浏览(33)
  • 深度学习学习笔记——解决过拟合问题的方法:权重衰减和暂退法,与正则化之间的关系

    解决过拟合问题是机器学习和深度学习中关键的任务之一,因为它会导致模型在训练数据上表现良好,但在未见数据上表现不佳。以下是一些解决过拟合问题的常见方法: 增加训练数据 : 增加更多的训练数据可以帮助模型更好地捕捉数据的真实分布,减少过拟合的可能性。

    2024年02月09日
    浏览(41)
  • Verilog权重轮询仲裁器设计——Weighted Round Robin Arbiter

    前两篇讲了固定优先级仲裁器的设计、轮询仲裁器的设计 Verilog固定优先级仲裁器——Fixed Priority Arbiter_weixin_42330305的博客-CSDN博客 Verilog轮询仲裁器设计——Round Robin Arbiter_weixin_42330305的博客-CSDN博客 权重轮询仲裁器就是在轮询仲裁器的基础上,当grant次数等于weight时,再切换

    2024年02月14日
    浏览(30)
  • 【Python】解决CNN中训练权重参数不匹配size mismatch for fc.weight,size mismatch for fc.bias

    目录 1.问题描述 2.问题原因 3.问题解决 3.1思路1——忽视最后一层权重 额外说明:假如载入权重不写strict=False, 直接是model.load_state_dict(pre_weights, strict=False),会报错找不到key? 解决办法是:加上strict=False,这个语句就是指忽略掉模型和参数文件中不匹配的参数 3.2思路2——更

    2023年04月14日
    浏览(25)
  • 电脑城衰退的原因是什么?

       ​电脑城衰退的原因分析 随着科技的飞速发展,电脑城曾经是电子产品交易的热门场所。然而,近年来,电脑城的发展状况不容乐观,正面临着巨大的挑战。究竟是什么原因导致了电脑城的衰退?本文将深入探讨这一问题。 电子商务的崛起 电子商务的崛起对传统电脑城

    2024年01月25日
    浏览(23)
  • 直流电机的快衰减和慢衰减模式分析

        控制H桥输入信号来对有刷电机实现频繁正反转,一般有两种控制模式,模式一:H桥一路输入PWM信号,另一路输入高电平信号;模式二:H桥一路输入PWM信号,另一路输入低电平信号;两种模式下驱动电流存在较大差别。实测驱动电源电流模式一远大于模式二。     经

    2024年02月11日
    浏览(22)
  • Pytorch实现warm up和consine decay

    在深度学习领域,模型训练过程中的不稳定性是一个常见的问题。为了解决这个问题,在Resnet这篇论文也提及了Warm Up的方法,通过逐渐增加学习率,引导模型在训练初期更稳定地收敛。同时在warm up之后结合consine decay的方法让训练变得更有效。 warm up 来自于这篇文章:https:

    2024年02月15日
    浏览(25)
  • Lighting - 光的亮度衰减

    一些零零碎碎的笔记归档; 光的亮度衰减 : 在物理正确的情况下,光的衰减遵循反比例平方衰减;因为光在传播过程中如下图: 随着距离的增加,单位平面上所接受的光照强度与距离的计算关系; 公式可简单表示为:   其中x为距离变量(相当于上图的 r),y为单位面积亮

    2024年02月16日
    浏览(25)
  • PyTorch使用Tricks:学习率衰减 !!

    文章目录 前言 1、指数衰减 2、固定步长衰减 3、多步长衰减 4、余弦退火衰减 5、自适应学习率衰减 6、自定义函数实现学习率调整:不同层不同的学习率 在训练神经网络时,如果学习率过大,优化算法可能会在最优解附近震荡而无法收敛;如果学习率过小,优化算法的收敛

    2024年02月21日
    浏览(32)
  • 【chapter30】【PyTorch】[动量与学习率衰减】

    前言:     SGD的不足 :  ①呈“之”字型,迂回前进,损失函数值在一些维度的改变得快(更新速度快),在一些维度改变得慢(速度慢)- 在高维空间更加普遍 ②容易陷入局部极小值和鞍点  ③对于凸优化而言,SGD不会收敛,只会在最优点附近跳来跳去         这里面主

    2024年02月01日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包