SAM优化器
锐度感知最小化可有效提高泛化能力
〜在Pytorch中〜
SAM同时将损耗值和损耗锐度最小化。特别地,它寻找位于具有均匀低损耗的邻域中的参数。 SAM改进了模型的通用性,并。此外,它提供了强大的鲁棒性,可与专门针对带有噪声标签的学习的SoTA程序所提供的噪声相提并论。
这是的非官方存储库,。在实现方面,SAM类是一个轻量级包装器,用于计算正则化的“清晰度感知”渐变,该渐变由基础优化器(例如带有动量的SGD)使用。该存储库还包括一个的简单 ;作为概念验证,它在此数据集上以强劲的势头击败了SGD的表现。
在使用和不使用SAM的情况下,培训结束时的ResNet损失情况。锐度感知更新导致最小值明显变宽,从而导致更好的泛化属性。
用法
在您的培训管道中使用SAM应该很简单。只需记住,训练的速度将慢一倍,因为SAM需要两次向前-向后的传递才能使“清晰感”梯度变准。如果您使用渐变剪切,请
1