Re Reference AI

技術

勾配クリッピングとは

Gradient Clipping

勾配の大きさに上限を設け、勾配爆発による学習の発散を防ぐ手法

学習深層学習

最終更新:

概要

勾配クリッピングは、誤差逆伝播で求めた勾配の大きさが閾値を超えた場合に、勾配を縮小してからパラメータを更新する手法。勾配が極端に大きくなる「勾配爆発」によって、1回の更新でパラメータが大きく動き、損失が発散するのを防ぐ。 主な方式は2つある。1つはパラメータ全体の勾配ベクトルのノルムが閾値を超えたとき、ノルムが閾値に収まるよう全体を同じ比率で縮小するノルムクリッピング。もう1つは勾配の各要素を指定範囲に切り詰める値クリッピングで、こちらは勾配の向きが変わる。 もともとは長い系列を扱うRNNの学習で問題になった勾配爆発への対策として広まった。現在もTransformerベースのLLMの事前学習やファインチューニングで、ノルムの上限を1.0程度に設定して使われることが多い。

歴史

2013年にPascanu、Mikolov、BengioがRNNの学習の難しさを分析した論文「On the difficulty of training recurrent neural networks」で、勾配ノルムのクリッピングを勾配爆発への対策として示し、広く知られるようになった。

利点

  • 勾配爆発による損失の発散を抑え、学習を安定させられる
  • 実装が単純で、PyTorchなど主要なフレームワークに標準で用意されている

欠点

  • 勾配消失には効果がない
  • 閾値が小さすぎると更新量が過度に抑えられ、学習が遅くなる

関連する用語

誤差逆伝播法勾配消失問題RNNBPTT勾配降下法学習率ファインチューニング事前学習LLMTransformerパラメータデータポイズニング

参考文献