梯度裁剪

Gradient Clipping

限制梯度大小防止爆炸

詳細解釋

梯度裁剪(Gradient Clipping)是防止梯度爆炸的技術,當梯度范數超過閾值時進行縮放,穩定循環神經網絡和深度網絡的訓練。

為何需要:

  • 梯度爆炸:RNN、Transformer中常見
  • 長期依賴:反向傳播時梯度連乘指數增長
  • 損失突增:梯度爆炸導致損失變為NaN
  • 訓練失敗:不裁剪可能導致模型崩潰

裁剪方法:

  • 值裁剪(Value Clipping):
  • 將梯度限制在[-threshold, threshold]
  • 簡單但破壞梯度方向
  • 范數裁剪(Norm Clipping):
  • 計算梯度L2范數
  • 如果超過max_norm則縮放
  • 保持梯度方向
  • 推薦方法

典型設置:

  • 閾值:1.0到5.0
  • RNN/LSTM:通常1.0-5.0
  • Transformer:通常1.0
  • 大批次:可能需要更大閾值

實現:

  • PyTorch:torch.nn.utils.clip_grad_norm_
  • TensorFlow:tf.clip_by_norm
  • 自動裁剪:部分框架內建

與其他穩定技術:

  • 殘差連接:緩解梯度消失
  • 層正規化:穩定每層輸入分布
  • 梯度裁剪:專門解決梯度爆炸

使用時機:

  • 必須:RNN、Transformer訓練
  • 建議:深度網絡(>20層)
  • 可選:淺層網絡通常不需要

梯度裁剪是訓練序列模型和深層網絡的必備技術。

探索更多AI詞彙

查看所有分類,繼續學習AI知識