SGD和Adam优化器的差异在哪里?
Google Brain推出的优化器"Lion"在性能上超越了Adam(W)。
Lion在内存使用效率和运行速度上优于AdamW以及其他自适应优化器。它仅需要存储动量,比AdamW减少一半的内存占用,对于训练大型模型和大量数据尤其有益。例如,训练图像尺寸为224、批量大小为4096的ViT-B/16模型,AdamW至少需要16个TPU V4芯片,而Lion只需8个。
Lion的简洁设计使其在运行速度上具有优势,比AdamW和Adafactor快2-15%,具体取决于任务、代码库和硬件。
Lion在各种模型、任务和领域上展现出卓越的性能,包括图像分类、视觉-语言对比训练、扩散模型和语言建模。
实验结果表明,Lion对不同的超参数选择更为稳定,尤其在批量大小影响的消融实验中,Lion更倾向于较大的批量。
了解如何实现Lion的代码。
查阅相关文献资料。
一文看懂Adam优化器参数
Adam优化器深度解析
Adam优化器以一阶动量[公式]和二阶动量[公式]为核心,它们分别考虑了梯度的当前值和历史趋势。一阶动量的默认衰减率β1为0.9,初始值为0,随着迭代步数t的增加,其占比逐渐接近1,最初可能导致学习速度过慢。为此,引入偏置校正:[公式],确保动量的均值在开始时不致过小。
二阶动量[公式]同样考虑了梯度的平方,其处理方式类似。当batch size不同,如模型A的batch是模型B的a倍,优化器参数需要相应调整。如果模型A的[公式]为[公式],模型B为[公式],则保持[公式]相等,以保证学习过程等价。
通过对比模型A和B的权重变化,如图2与图3所示,可以看到模型B在相同的迭代步数下,其梯度权重更大。然而,将模型A迭代10步的权重与模型B迭代20步的权重进行比较(图4),可以发现它们在每步的权重上是等效的。这意味着通过调整参数,Adam优化器能够适应不同的batch size。