Adam と AdamW

モデルが実際にどう学習するか — 普通の勾配降下法からAdamまで

AdamとAdamWは、重み減衰の扱い方が異なる。AdamはL2ペナルティを、適応的な勾配更新の中に混ぜ込む。AdamWは重み減衰を、独立した縮小ステップとして適用する。

この分離が重要なのは、Adamがパラメータごとに勾配を再スケールするからだ。重み減衰がその勾配に混ざっていると、正則化までもがパラメータ依存の形で再スケールされてしまう。

本を期限どおりに返してほしい図書館を思い浮かべてほしい。延滞1日ごとに一律の罰金を科すなら、話は分かりやすい。どの利用者にも同じように適用されるからだ。ところが、その罰金を利用者ごとの個人化された会員式の中に組み込んでしまうと、ペナルティは不揃いになり予測しづらくなる。AdamWは一律で独立した罰金であり、結合されたL2を使うAdamは、ペナルティをまずパラメータごとの仕組みの中に折り込んでしまう。そもそも、なぜペナルティを科す必要があるのか?その答えは図の中にある。柔軟性を増やすほど訓練誤差は下がり続けるが、検証誤差はやがて上向きに転じる。重み減衰は、そのスイートスポットの近くにとどまるための主要な道具のひとつだ。

機械学習における位置づけ現代のtransformer訓練において「AdamW」とは、たいていAdamのモーメント、バイアス補正、ウォームアップ付きのスケジュール、多くの設定における勾配クリッピング、そして分離された重み減衰をひとまとめにしたものを指す。あの「W」は、単なる見た目の飾りではない。
▶ Adam と AdamW
← 勾配クリッピング学習率ファインダー →