AdamWは、Adamの適応的更新に重み減衰(weight decay)を正しく組み合わせた最適化アルゴリズムです。本記事はモーメント推定の数式の暗記ではなく、「正則化の罰を勾配に混ぜるのか、重みの縮小として分離するのか」——更新設計の分岐——に焦点を当てます。
AdamにL2を足すと何が起きるか
L2正則化は、重みの二乗和にペナルティを課して重みが大きくなりすぎるのを抑える手法です(G-167)。古典的な勾配降下法では、損失にL2項を足して勾配を計算すれば、更新と正則化が一貫します。
しかしAdamのようにパラメータごとに歩幅を変える最適化では、L2ペナルティを勾配に混ぜ込むと、正則化の効き方が意図とずれる——という問題が指摘されました。適応的学習率が、正則化まで「歪めて」しまうイメージです。
AdamWはこのズレを直すため、重み減衰をAdamのモーメント更新から切り離す設計です。名前の W は Weight decay(重み減衰)を表します。
分離(decouple)の意味
試験向けに、AdamとAdamWの違いを次の表で整理します。
| 観点 | Adam | AdamW |
|---|---|---|
| 更新の核 | 一次・二次モーメントによる適応的更新(TF-079) | Adamと同じ適応的更新 |
| 重み減衰 | L2を損失に足して勾配経由で効かせる実装が多かった | 重み減衰を更新から分離して直接適用 |
| 試験での整理 | 適応的最適化の代表 | Adam+正しく分離した重み減衰 |
| 用途 | 深層学習全般 | LLM学習で特に定番 |
直感としては、Adamが「地形に合わせて歩幅を変えながら下る」最適化だとすれば、AdamWはその一歩のあとに重みを少し縮める——正則化を別チャンネルで入れる——イメージです。
L2正則化との関係
重み減衰とL2正則化は、「重みを小さく保つ」という目的で近い概念です。SGDでは実質的に同等の効果として語られることもあります。
ただしAdam系では、実装の仕方によって正則化の効き方が変わります。試験では次の2層で覚えると混乱しにくいです。
- 概念層 — L2正則化=損失にペナルティを足して過学習を抑える(G-167)
- 最適化層 — AdamW=Adamの更新と重み減衰を分離した改良版
ドロップアウトや早期終了のように、損失にペナルティを足さない正則化もあります。AdamWは重みの大きさを直接抑える系の話です。
学習パイプラインでの位置
ベース学習率や重み減衰係数はハイパーパラメータとして人が設定します(TF-052)。AdamWが「すべて自動」とは答えません。
試験で押さえるポイント
- Adamの延長 — 一次・二次モーメントの適応的更新はAdamと同じ系統(TF-079)
- Wの意味 — Weight decay。重み減衰を更新から分離(decouple)した改良版
- 正則化との接続 — L2正則化の目的(重み抑制・過学習防止)と関連(G-167)
- すり替え回避 — AdamW=逆伝播、AdamW=ドロップアウト、などは×
演習で確認する
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| AdamW=誤差逆伝播法 | 逆伝播は勾配計算、AdamWは更新 |
| AdamW=L2正則化と完全同一 | 目的は近いが、Adam系では実装の分離がポイント |
| AdamW=ドロップアウト | ドロップアウトはユニットの無効化。AdamWは最適化 |
| 重み減衰係数も勾配で自動学習 | ハイパーパラメータとして設定する(TF-052) |
| AdamW=推論時のTemperature | 学習時の最適化。推論設定とは無関係 |
よくある質問
AdamWとAdamの違いは?
Adamは一次・二次モーメントで適応的に更新します。AdamWはそのAdam更新に加え、重み減衰(weight decay)を勾配に混ぜ込まず、重みそのものを縮める処理として分離して適用します。L2正則化をAdamにそのまま足す実装との挙動の違いを意識した改良版です。
AdamWとL2正則化は同じですか?
目的は近く、重みが大きくなりすぎるのを抑えて過学習を防ぐ点で正則化の一族です。ただしAdam系ではL2ペナルティを損失に足して勾配に混ぜる方法と、重み減衰を更新から分離する方法で効き方が異なります。試験ではL2正則化の概念(G-167)とAdamの概念(TF-079)を別々に押さえ、AdamWはその組み合わせ改良として整理します。
LLMの学習でも使われますか?
はい。大規模言語モデルの事前学習・ファインチューニングではAdamWが広く使われます。勾配計算は誤差逆伝播、更新はAdamWという骨格は小規模モデルと同じです。