NeurIPS2023 | Weight Decay 的前世今生和隐藏缺陷

关注公众号,发现CV技术之美

本文为粉丝投稿,原文链接:https://zhuanlan.zhihu.com/p/672650395。

本 blog 是我组的 NeurIPS2023 论文On the Overlooked Pitfalls of Weight Decay and How to Mitigate Them: A Gradient-Norm Perspective延伸开来的关于经典算法Weight Decay的讨论。

这不是一篇 NeurIPS 论文的中文翻译,而更多的是科普 Blog 和这个工作背后的完成脉络。

Weight Decay 是一个整个 AI 圈人人都用,却几乎无人多想的算法。

即便在这个大模型时代,它还是那么的有用,却又那么的朴实无华。

即便是在机器学习理论圈,研究过Weight Decay机制的人也是少数派。

在下正是其中之一。

前世今生:三种Weight Decay

先说说 Weight Decay 的起源。

其实现在大家常说的Weight Decay至少有三种不同的形式。只是由于Weight Decay这个名词的滥用,大家都在不同的场合称Weight Decay。

第一种“Weight Decay”,也就是当前PyTorch/TensorFlow/Paddle等深度学习框架里optimizer的默认Weight Decay其实是L2 Regularization。在SGD里可以写成下面这种形式:

L2 Regularization实际上是在loss旁边额外加一项。所以它的特点是,正则作用会先进入每一步迭代的梯度里,再影响神经网络的参数。

第二种“Weight Decay”,也就是当前大模型训练常用优化器AdamW里的Decoupled Weight Decay。在SGD里可以写成下面这种形式:

()

这才是真正意义上的decay weights,每一步直接将权重以 因子衰减。

好吧,很容易看出来,对于SGD来说,上面两种形式是等价的。这也是为什么L2 Regularization会滥用Weight Decay这个名字。

但更复杂的优化器,比如SGD Momentum或Adam,会使用动量(Momentum)和自适应学习率(Adaptive Learning Rate)等方法。这些实际上大家最常用的优化器里,没有一个是能让上面两种形式正好等价的。

Adam (with L2 Regularization)和AdamW (with Decoupled Weight Decay)这两个大模型训练最常用的两个优化器实际上只有weight decay的形式不同。但是他们的性能差异大到以至于分成了两个名字不同的优化器。为什么会这样,我们下文再专门说。

第三种“Weight Decay”,也就是在训练神经网络时专门被提出来的原始Weight Decay,来自一篇1989年的NeurIPS论文。在SGD里可以写成下面这种形式:

()

这是在做学习率解耦的decay weights,每一步直接将权重以 因子衰减。

哪种 Weight Decay 更好

其实第三种Weight Decay是一种已经被淘汰的Weight Decay形式。虽然深度学习框架的开发者们可能没有专门研究过这个问题,但实际上和学习率解耦确实不如第二种形式。这是因为对于第三种Weight Decay来说,在学习衰减得比较小的训练末期,Weight Decay的强度总是太大了。我们很容易在实验里观察到第三种Weight Decay的缺陷。

第一种的L2 Regularization仍然在当前的深度学习框架流行;而第二种的Decoupled Weight Decay几乎只在AdamW等少量优化器里有官方实现。这个现状并不好。

对于一些优化器,比如SGD(Momentum)等,L2 Regularization和Decoupled Weight Decay的性能并不是很大。但每当L2 Regularization和Decoupled Weight Decay差别很大时,几乎总是Decoupled Weight Decay显著地比L2 Regularization好。这几乎发生在所有自适应优化器上。

所以更好的原则是把Decoupled Weight Decay作为Weight Decay的默认实现,把L2 Regularization作为备选。

为什么PyTorch/TensorFlow等框架还没这样做?这个可能是因为深度学习框架滥用名词Weight Decay指代L2 Regularization造成的一个历史遗留问题...

Weight Decay的隐藏缺陷

那么Weight Decay的故事就这么结束了吗?

不然,上面这些其实只是我组NeurIPS2023论文的一个motivation。

Weight Decay还有挺严重的隐藏缺陷未被发现,这才是这个工作的主要贡献。

如果一个这么常用的算法还有严重的缺陷,那这个缺陷确实藏得挺深。

这件事说起来也有点离谱。我第一次得到前文两个部分的motivation已经是3年前的事了。但深度学习理论的论文并不多了,所以一直也没有其他人把Weight Decay的这些特点说不清。对于第三种Weight Decay为什么比第二种Weight Decay差那么多,我一直没有得到一个比较完整的理论解释...

直到去年终于有空搞点基础研究(在大厂做研究员确实难得有机会做基础研究),心血来潮做了一个实验,把Gradient Norm随着训练过程的变化可视化出来。

ResNet18在CIFAR-10训练时的Gradient Norm曲线。Gradient Norm会随着Weight Decay增加而显著增加。

好的。如果你有优化理论和泛化理论的基础,那么应该一下就能看出来Weight Decay它确实有点大毛病了!

实验呈现出一个违背传统认知的现象——Gradient Norm会随着Weight Decay增加而显著增加。

这个现象至少从三个角度来说,都是和传统的理解是不相符的。

  1. 优化角度。Large Gradient Norms说明训练算法的收敛性变成很差,因为gradient norm的大小就是收敛性最常见的指标。

  2. 泛化角度。Large Gradient Norms说明训练得到的权重泛化性很差,因为gradient norm的大小也是泛化界常见的度量之一。

  3. 正则化角度。Large Gradient Norms说明训练得到的权重复杂性变高了。而传统上,大家认为Weight Decay是通过正则化作用降低神经网络复杂性,提高泛化能力。而事实竟然正好相反

从这三个角度来说,Weight Decay都大有问题。这也再次说明,在深度学习里,很多传统理解都是很粗浅的、适用范围狭窄的。关于这三点,我们的论文里提供了分析和参考文献。

其实到这部分分析出来,我们这个工作所发现的东西就很清晰了。

然后花了一天时间把Gradient Norm 的Upper Bound和Lower Bound都和Weight Decay强度正相关的理论证明了一下,算是把Weight Decay过去被忽略的关于gradient norm理论补全了。我们理论也发现这些缺陷在自适应优化器里尤为突出。这部分都是一个理论性论文里的程序性技术工作。

弥补 Weight Decay 的缺陷

我们的工作也设计了一个算法Scheduled Weight Decay来弥补Weight Decay的缺陷,也就是使用Weight Decay的时候,同时可以抑制Gradient Norm。这个方法思想上也很简单——Gradient Norm太大的时候就让Weight Decay强度小一点,Gradient Norm太小的时候就让Weight Decay强度大一点、发挥作用。

如下图所示,我们这个算法AdamS (Adam with Scheduled Weight Decay)的确很好地完成了抑制Gradient Norm的作用。

Scheduled Weight Decay比Constant Weight Decay显著降低训练末期的Gradient Norm。

同时,在下图我们还能看到Weight Decay增加时找到了更sharp的minima(top Hessian eigenvalues增大),这通常意味着泛化性能不好。而Scheduled Weight Decay找到了比Constant Weight Decay更flat的minima(top Hessian eigenvalues明显变小)。

0dccf3ea6d3ad3e526dcc93d4c1c3769.png

好的,那么这个工作的理论、算法、实验都具备了。

这是科普blog,不是关于论文的中文翻译。到这里,我觉得就可以恰到好处的结束了。更多技术细节看论文就好。

关于应用研究和理论研究的一些想法

一些审稿人会把我们这个算法当作最主要的贡献,这说明这部分审稿人始终是在从Engineering的角度来看待我们这个工作的。AI是一个机器,只要能work得更好,那就是研究的全部。

应用研究的主(quan)要(bu)哲学——那确实就是work得更好就行。带实习生做Neural Fields方向的应用研究最近半年也分别在ICCV2023和ICLR2024一投即中。只要性能好了,基本上就没有遇到过负分的审稿人。老实说,这种对性能的朴素追求,确实有一点朴实无华...

但包括我在内的部分理论研究者一般更愿意把AI当作一个客观的研究对象。这种研究视角可以叫做Science of AI。包括Sébastien Bubeck在内的部分理论研究者一般是把AI当作一个客观的研究对象,也就是我们主要是在做科学发现。偶尔,这些科学发现能促进更好的机器的诞生。微软AI理论研究的带头人Sébastien Bubeck在他的主页(Sébastien Bubeck)称在大模型的时代背景下更近一步把自己的研究定位为Physics of AGI。

研究神经网络和研究玻色爱因斯坦凝聚差别真的很大吗?并不,他们肯定要服从某些真理。渐进地逼近真理就是新的科学。

我们另外一篇NeurIPS2023其实也是科学发现型的论文,和一位物理系任教的朋友第一天讨论idea做实验,然后第二天就在神经网络里发现了我们预言的实验结果。这种并不会出现在论文里的故事,可以留待下回写blog时介绍。

我个人觉得这篇文章最大的贡献其实是定位Weight Decay的隐藏缺陷上,算法只是自然而然的副产品罢了。这个工作也是在理论发现完成后立刻被接收了,而不是在算法和实验的时候(很早就在Github上开源这个Weight Decay算法了)。而Scheduled Weight Decay也必然不是解决Weight Decay隐藏缺陷的最终答案。因为它解决的是Gradient Norm的问题,而不是全部的问题。Weight Decay仍然还有我们不理解的问题。


本Blog提到的三个角度的缺陷和技术细节都在我们的论文里有讨论和参考文献。欢迎阅读我们的论文和代码了解更多。

论文:On the overlooked pitfalls of weight decay and how to mitigate them: A gradient-norm perspective

算法:stable-weight-decay-regularization: [NeurIPS 2023]

5e1cdafc9c6dfe286ae907d73e943140.jpeg

END

加入「计算机视觉交流群👇备注:CV

d06b308f3f77cc83eb568f6dfa63b2b5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值