梯度裁剪

模型究竟是如何学习的——从原始梯度下降到Adam

梯度裁剪限制了一次更新能变得多大。如果某个批次产生了一个巨大的梯度,裁剪会在优化器执行更新之前把它缩小。

裁剪既不能修正目标函数,也不能修正数据。把它当作一条安全规则:不能让某一个极端批次,把参数一下子甩到损失曲面的另一头。

电梯的限速调速器就是这个类比。电梯可以正常运行,但一旦开始移动得太快,调速器就会在动作变得危险之前把速度限制住。梯度裁剪也是如此:让正常的梯度通过,只限制那些危险的尖峰。下面的图展示了被裁剪的对象:在碗形曲面上拖动这个点,观察随着曲面变陡,梯度箭头如何被拉长。裁剪会把这支箭头的长度限制在 c,同时保留它的方向。

在机器学习中的应用梯度裁剪是一种简单的稳定性工具。它常常和 AdamW、预热以及混合精度搭配使用,因为这些配方本身可能会遭遇罕见但破坏性很强的梯度尖峰。
▶ 梯度裁剪
← 优化器诊断Adam 与 AdamW →