Gradient Clipping
分类: 深度学习基础
Gradient Clipping
定义
梯度裁剪是一种防止梯度爆炸的训练技巧,在参数更新前对梯度的范数或值进行截断。最常用的方式是全局范数裁剪(global norm clipping):当所有参数梯度的总范数超过阈值 时,按比例缩放所有梯度使其总范数恰好等于 。
数学形式
全局范数裁剪(clip-by-norm):
逐值裁剪(clip-by-value):
: 原始梯度向量
: 裁剪阈值(超参数,常见值 1.0 或 5.0)
核心要点
防止梯度爆炸:RNN/LSTM 等循环网络中梯度可能随时间步指数增长,裁剪是标准解决方案;Transformer 训练中也普遍使用(如 GPT 系列默认 max_norm=1.0)
范数裁剪优于逐值裁剪:范数裁剪保持梯度方向不变只缩放大小,逐值裁剪会改变梯度方向,实践中范数裁剪更稳定
不能解决梯度消失:裁剪只处理过大的梯度,对过小的梯度无能为力,梯度消失需要靠残差连接、LayerNorm 等结构化方法解决
阈值选择:太小会限制学习速度,太大等于没裁剪。通常通过监控训练中的梯度范数分布来确定合理的阈值
与优化器的交互:Adam 等自适应优化器本身有一定的梯度归一化效果,但大规模训练中仍需搭配梯度裁剪使用
代表工作
Pascanu et al. (2013): On the Difficulty of Training Recurrent Neural Networks(分析梯度爆炸/消失,提出裁剪方案)
Merity et al. (2018): Regularizing and Optimizing LSTM Language Models(ASGD + 裁剪)