AI・機械学習
上級

Weight Decay(ウェイトディケイ)

モデルの重みパラメータに減衰係数を乗じて徐々に小さくすることで、過度に大きな重みの発生を抑制し汎化性能を高める正則化手法。AdamW最適化手法と組み合わせてLLM訓練の事実上の標準となっている。

0 回閲覧
0 いいね

Weight Decayとは

Weight Decay(重み減衰)は、ニューラルネットワークの訓練において各更新ステップでモデルの重みパラメータに減衰係数 λ を乗じて縮小する正則化手法である。L2 正則化と密接に関連するが、適応的学習率を使用する最適化アルゴリズム(Adam 等)では両者の振る舞いが異なる。

基本的な更新式は以下の通りである:

  • 標準 SGD + Weight Decay: w_{t+1} = (1 - λ) * w_t - η * ∇L(w_t)
  • AdamW: w_{t+1} = (1 - λ) * w_t - η * m_t / (√v_t + ε)

ここで λ は Weight Decay 係数、η は学習率、∇L は損失の勾配、m_t と v_t は Adam の 1 次・2 次モーメント推定値である。

L2正則化とWeight Decayの違い

一見すると同一に見える L2 正則化と Weight Decay だが、適応的学習率アルゴリズムでは重要な違いがある。

観点L2 正則化Weight Decay
定義損失関数に λ/2 *
SGD での等価性等価等価
Adam での等価性非等価非等価
勾配への影響勾配に λw が加算される勾配とは独立に重みを減衰
パラメータごとの効果適応的学習率で変調される全パラメータに均一に作用
実装optimizer に weight_decay=λ(L2)AdamW で decouple 実装

Adam + L2 正則化では、適応的学習率がパラメータごとに異なるため、正則化の効果もパラメータごとに不均一になる。AdamW はこの問題を解決するために Loshchilov & Hutter(2019)が提案した手法であり、Weight Decay を最適化ステップから分離(decouple)している。

LLMにおけるWeight Decayの設定

主要な LLM における Weight Decay の設定値を以下に示す。

モデルWeight Decay最適化手法備考
GPT-20.01Adam初期設定
GPT-30.1Adam大規模モデルで増加
LLaMA0.1AdamWβ1=0.9, β2=0.95
LLaMA 20.1AdamW同上
PaLM0.1AdafactorGoogle 独自最適化
Chinchilla0.1AdamW計算最適スケーリング
Mistral 7B0.1AdamWβ1=0.9, β2=0.95
Phi-20.1AdamWMicrosoft Research

0.1 が事実上の標準値であることがわかる。これは経験的に多くのモデル規模・データセットで良好な性能を示す値である。

Weight Decayの適用範囲

すべてのパラメータに Weight Decay を適用するわけではない。一般的に以下のようなルールが採用される。

パラメータ種別Weight Decay 適用理由
線形層の重み行列適用する過学習防止の主対象
バイアス項適用しないパラメータ数が少なく正則化不要
LayerNorm のスケール/シフト適用しない正規化の効果を阻害する
Embedding 層モデルによる適用する場合と除外する場合がある
Position Encoding通常適用しない位置情報の学習を阻害する

PyTorch での実装では、パラメータグループを分割して適用の有無を制御する。

Weight Decayと学習率の関係

Weight Decay の実効的な強さは学習率に依存する。

学習率スケジュールWeight Decay の挙動注意点
定数学習率一定の正則化効果基本的なケース
Cosine Annealing学習率低下に伴い Weight Decay の相対的影響が増大訓練後半で正則化が強まる
Linear WarmupWarmup 中は Weight Decay の相対的影響が大きい初期重みの大幅な縮小に注意
Step Decay段階的に正則化バランスが変化各段階でのチューニングが必要

AdamW では Weight Decay と学習率が分離されているため、学習率スケジュールの変更が Weight Decay の効果に直接影響しない。これは AdamW の大きな利点の一つである。

Fine-tuningにおけるWeight Decay

Fine-tuning では事前訓練とは異なる Weight Decay 設定が必要になる場合がある。

Fine-tuning 手法推奨 Weight Decay理由
Full Fine-tuning0.01〜0.1事前訓練知識の保持
LoRA0.0〜0.01低ランク行列のみ更新
QLoRA0.0〜0.01量子化 + LoRA
Prefix Tuning0.0プレフィックスパラメータのみ
Adapter0.01〜0.1Adapter 層のみに適用

Fine-tuning では一般的に事前訓練よりも小さい Weight Decay 値が使用される。これは、事前訓練で学習された重みの大きさが意味のある情報を含んでおり、過度な減衰がこの情報を破壊するためである。

最新の研究動向

Weight Decay に関する最新の研究トピックを以下に示す。

研究テーマ概要期待される効果
Adaptive Weight Decay訓練進行に応じて λ を動的に調整チューニング不要化
Layer-wise Weight Decay層ごとに異なる λ を設定深層ネットワークの最適化改善
Decoupled Weight Decay v2AdamW の改良版さらなる汎化性能向上
Weight Decay + SAMSAM 最適化との組み合わせ平坦な最小値への収束
Gradient-Informed Decay勾配情報に基づく適応的減衰パラメータ重要度の反映

よくある質問(FAQ)

Q1: Weight Decay 0.1 は大きすぎないか?

LLM の文脈では 0.1 は標準的な値であり、多くの大規模モデルで良好な性能を示している。これは、LLM のパラメータ数が膨大であり、0.1 の Weight Decay でも個々のパラメータへの影響は微小であるため。小規模モデル(数百M パラメータ)では 0.01〜0.05 が適切な場合もある。

Q2: AdamW の代わりに Adam + L2 正則化を使ってもよいか?

推奨しない。Adam + L2 正則化では、適応的学習率による不均一な正則化が発生する。具体的には、勾配の分散が大きいパラメータ(Adam の v_t が大きい)ほど L2 ペナルティが弱まり、意図した正則化効果が得られない。AdamW ではこの問題が解決されており、LLM 訓練では AdamW が事実上の標準である。

Q3: バイアス項にWeight Decayを適用しない理由は?

バイアス項は各層に 1 つずつしかなく(全結合層の重み行列と比べてパラメータ数が極めて少ない)、過学習の主要因にならない。また、バイアスに Weight Decay を適用すると、モデルの出力の平均値がゼロに引き寄せられ、表現力が不必要に制限される。LayerNorm のパラメータも同様の理由で除外される。