Web教科書

発展的な最適化(AMSGrad / AdaBound / AMSBound)

発展的な最適化(AMSGrad / AdaBound / AMSBound)

解説:Adamの弱点を克服する「進化系」たち

ディープラーニングの最適化において、現在最も人気があるのは「Adam」です。しかし、Adamには「学習の終盤で突然おかしな方向に進んでしまうことがある(収束しない)」「最終的な汎化性能(テストの点数)では、古い手法であるSGDに劣ることがある」という弱点が指摘されていました。

そこで、Adamの良さ(初速の速さ)を活かしつつ、これらの弱点を克服するために生まれたのが以下の派生手法です。

アルゴリズム 特徴と改良ポイント(Adamの何を直したか?)
AMSGrad
(アムスグラッド)
【過去の大きなミスを忘れない】
Adamは「過去の勾配(傾き)」を平均化して使いますが、新しい情報を重視しすぎるため、過去の重要な急斜面の情報を忘れて暴走することがありました。
AMSGradは、勾配の二乗の「過去の最大値」を常に保持し続ける(単調非減少にする)ことで、学習率が極端に大きくなるのを防ぎ、収束の安定性を保証しました。
AdaBound
(アダバウンド)
【序盤はAdam(高速)、終盤はSGD(安定)】
Adamの「学習が速い」という長所と、SGDの「最終的な精度が高い(安定する)」という長所を合体させたハイブリッド手法です。
学習率に「上限」と「下限」(バウンド)のガードレールを設け、学習が進むにつれてその幅を徐々に狭めていくことで、最初はAdamのように自由に動き、最後はSGDのように慎重に動くという理想的な変化を実現しました。
AMSBound
(アムスバウンド)
【全部乗せの最終形態】
AMSGradの「収束の安定性」と、AdaBoundの「ガードレール機能(AdamからSGDへの移行)」の両方を組み合わせた手法です。

G検定対策

出題ポイント

  • AMSGrad:学習率の計算に用いる値を「単調非減少(過去の最大値を保持する)」にすることで、Adamが収束しない問題を解決した。
  • AdaBound:学習率に動的なクリッピング(上下限の境界=バウンド)を適用し、AdamとSGDのいいとこ取りをしたハイブリッド手法。
  • 目的:いずれも学習速度を極限まで高めるためではなく、Adamの「収束の安定性」や「汎化性能」を改善するために提案された。

よくあるひっかけ問題

  • × AdaBoundは、学習初期にSGDとして振る舞い、後半にAdamになる
    (解説)逆です。正しくは「序盤はAdam(高速)、終盤はSGD(安定)」です。最初は大まかに素早く近づき、最後は微調整でピッタリ合わせる、とイメージしてください。
  • × AMSGradは、Adamよりも常に高速に学習を完了させるためのアルゴリズムである
    (解説)誤りです。AMSGradの主な目的は速度の向上ではなく、「Adamが収束しないケース(暴走)」を防ぎ、安定して収束させることにあります。
タイトルとURLをコピーしました