概述
更平坦的最小值往往具有更好的泛化能力,因此 SAM 通常可以在不改变模型架构的情况下提高测试准确性和鲁棒性。
深入探讨
标准训练最大限度地减少了权重空间中单个点的损失,但是具有相同训练损失的两个解决方案可能表现得非常不同:“尖锐”最小值位于狭窄的山谷中,其中微小的权重扰动会导致损失激增,而“平坦”最小值则可以容忍扰动,并且通常可以更好地推广到看不见的数据。 Google 研究人员于 2020 年推出的 SAM 明确了这一点。在每一步中,它首先找到使损失最大化的附近权重扰动(在小半径 rho 内)——最坏情况的邻居——然后更新原始权重以减少该扰动点的损失。这种最小-最大目标将优化推向一致低的区域,从而在图像分类及其他方面产生明显更好的泛化。
现实世界的实施
通过使用 SAM 而非普通 SGD 进行训练,提高 ImageNet 上的 Vision Transformer 和 ResNet 准确性。
提高对标签噪声的稳健性,因为平坦最小值不太可能记住损坏的标签。
使用 SAM 微调预训练语言模型,以便在小型下游数据集上获得更好的泛化能力。
当普通 SAM 的双倍计算成本过于昂贵时,使用 ESAM 或 LookSAM 变体。
清晰度感知最小化的未来
SAM 催生了一系列后续产品,旨在解决其最大的弱点,即双倍计算:ESAM、LookSAM 等高效变体,以及仅扰动权重子集或每隔几步应用 SAM 的方法。自适应 SAM (ASAM) 将半径重新参数化为尺度不变。研究人员继续争论为什么平坦度有帮助以及如何测量它,并且锐度意识的想法正在传播到微调大型语言模型并提高对分布变化的鲁棒性。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是锐度感知最小化?
锐度感知最小化(SAM)是一种优化方法,它不仅寻求低损失,而且寻求整个权重邻域的低损失——平坦的最小值。更平坦的最小值往往具有更好的泛化能力,因此 SAM 通常可以在不改变模型架构的情况下提高测试准确性和鲁棒性。
SAM 试图找到什么样的最小值?
SAM 的目标是平坦最小值,因为在较小的权重扰动下保持较低的损失往往可以更好地推广到看不见的数据。
标准 SAM 步骤需要多少次前后传球?
SAM 计算一个梯度来找到最坏情况的附近点,然后更新另一个梯度——大约是通常成本的两倍。
SAM 中半径超参数 rho 控制什么?
Rho 设置“上升”步骤移动多远以找到最坏情况的邻居,定义 SAM 寻找的平坦区域有多大。
SAM 每次迭代的两个步骤中的第一个步骤是什么?
SAM 首先在损失最大化的方向上扰动半径 rho 内的权重,然后使用在那里计算的梯度从原始点下降。
为什么 SAM 通常可以提高对标签噪声的鲁棒性?
记住嘈杂的标签通常需要尖锐、狭窄的最小值;通过偏爱平坦区域,SAM 可以防止过度拟合。