発展的な最適化(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が収束しないケース(暴走)」を防ぎ、安定して収束させることにあります。
