目录

  • 权重衰减/权重衰退——weight_decay
    • 一、什么是权重衰减/权重衰退——weight_decay?
    • 二、weight decay 的作用
    • 三、设置weight decay的值为多少?

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

import torch.optim as optim
from torch.optim.lr_scheduler import CosineAnnealingLRopt = 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​+λj∑​wj2​
可以理解为:

  • 加上这个 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−β)θt−1​−α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 可以使参数尽可能地小,尽可能地紧凑

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

权重衰减/权重衰退——weight_decay相关推荐

  1. Pytorch 正则化方法(权重衰减和Dropout)

    正则化方法(权重衰退和Dropout) 正则化方法和以前学过的正则表达式没有任何关系! 花书 p141 说到: 能显式地减少测试误差(可能会以增大训练误差为代价)的方法都被称为正则化. 0. 环境介绍 ...

  2. 权重衰减weight_decay参数从入门到精通

    文章目录 本文内容 1. 什么是权重衰减(Weight Decay) 2. 什么是正则化? 2.1 什么数据扰动 3. 减小模型权重 4. 为Loss增加惩罚项 4.1 通过公式理解Weight De ...

  3. [pytorch、学习] - 3.12 权重衰减

    参考 3.12 权重衰减 本节介绍应对过拟合的常用方法 3.12.1 方法 正则化通过为模型损失函数添加惩罚项使学出的模型参数更小,是应对过拟合的常用手段. 3.12.2 高维线性回归实验 impor ...

  4. (pytorch-深度学习系列)pytorch避免过拟合-权重衰减的实现-学习笔记

    pytorch避免过拟合-权重衰减的实现 首先学习基本的概念背景 L0范数是指向量中非0的元素的个数:(L0范数难优化求解) L1范数是指向量中各个元素绝对值之和: L2范数是指向量各元素的平方和然后 ...

  5. pytorch学习笔记(十二):权重衰减

    文章目录 1. 方法 2. 高维线性回归实验 3. 从零开始实现 3.1 初始化模型参数 3.2 定义L2L_2L2​范数惩罚项 3.3 定义训练和测试 3.4 观察过拟合 3.5 使用权重衰减 4. ...

  6. 深度学习的权重衰减是什么_【深度学习理论】一文搞透Dropout、L1L2正则化/权重衰减...

    前言 本文主要内容--一文搞透深度学习中的正则化概念,常用正则化方法介绍,重点介绍Dropout的概念和代码实现.L1-norm/L2-norm的概念.L1/L2正则化的概念和代码实现- 要是文章看完 ...

  7. tf.nn.l2_loss() 与 权重衰减(weight decay)

    权重衰减(weight decay)   L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化.   L2正则化就是在代价函数后面再加上一个正则化 ...

  8. 突破模糊定性分析,批归一化和权重衰减的球面优化机制

    本文内容整理自 PaperWeekly 和 biendata 在 B 站组织的直播回顾,点击文末阅读原文即可跳转至 B 站收看本次分享完整视频录像,如需嘉宾课件,请在 PaperWeekly 公众号回 ...

  9. 直播 | 旷视研究院最新理论成果:批归一化和权重衰减的球面优化机制

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

最新文章

  1. JDK 16 GA 发布,你还停留在JDK 8吗?
  2. 什么原因导致芯片短路_常见的芯片故障现象
  3. java ldap 登陆AD域 查找某个帐号 查找某个组织单位
  4. rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理
  5. 手把手教你使用ECharts绘制可视化图表
  6. java面向对象第六章
  7. 数据挖掘导论读书笔记4--其他分类技术
  8. linux ls 命令
  9. golang 导入自定义包_二、Go基本命令及定制自定义第三方包
  10. 95-136-041-源码-Operator-TwoInputStreamOperator
  11. springboot 插入返回id_Spring Boot实现分布式微服务开发实战系列(七)
  12. skala view android,Skala Preview for mac
  13. 《数字金融消费者权益保护实践与探索》正式发布
  14. Axure综合小案例(动态时钟)
  15. 【python】TCP协议编程
  16. Es6模板字符串条件判断
  17. (原)red-green Image.合成三维立体效果, 红绿眼镜 3D图 ,三维图片的核心算法。googler.cc上面有完善的程序和源码下载。 网上以前的那个有错误,我纠正了下~!~
  18. java 获取一年内周六周日日期
  19. 饥荒联机版服务器启动慢_饥荒(Don#x27;t Starve Together)腾讯云服务器搭建(unbuntu篇)
  20. 运用CNN对ImageNet进行图像分类

热门文章

  1. VB和VB.net环境下链接Access、SQL数据库的方法及技巧(Access篇)
  2. c语言函数参数的含义,C语言函数的含义
  3. 埃隆麝香下一件大事是向宽带发射4万颗卫星
  4. IO流、字节流和字符流
  5. DXP 内电层GND和POWER出现的死铜如何去除
  6. 安卓7.1 新特性Shortcut
  7. 美国国家航空航天局NASA的软件项目开源啦~
  8. 【应用多元统计分析】——第三章(1)
  9. 英文里说话时用的PS什么意思
  10. 使用canvas画折线图和曲线图