本文へ移動

G検定(ジェネラリスト検定)

あむずばうんど

アムズバウンド

AMSBound

AMSGradに、AdaBoundと同じ時刻依存の学習率の下限と上限によるクリッピングを組み合わせ、適応的な振る舞いからSGDへの滑らかな移行を狙う最適化手法。

詳しい説明

前提となるAMSGradの考え方

Adamのような適応的学習率の手法は、勾配の2乗の指数移動平均 v_t = β2*v_(t-1) + (1-β2)*g_t^2 を使い、パラメータごとに学習率を調整します。指数移動平均は、学習が進むと学習率が極端に小さくなってしまうAdagradの弱点を防ぐために導入されたものです。ただし、過去の勾配を短い期間しか覚えていない性質があります。そのため、まれにしか現れない大きく有益な勾配の影響が平均の中で薄れてしまい、Adamが最適でない解に収束する場合があると指摘されました。

AMSGradはこの問題に対し、指数移動平均そのものではなく、これまでの最大値 v̂_t = max(v̂_(t-1), v_t) を更新に使います。v̂_t は減らないので、ステップサイズ η/(sqrt(v̂_t)+ε) は非増加になります。

AMSBoundの更新式

AMSBoundは、このAMSGradに、学習率を動的な下限と上限で挟むクリッピングを組み合わせた手法です。更新は次の流れで進みます。

m_t = β1t*m_(t-1) + (1-β1t)*g_t
v_t = β2*v_(t-1) + (1-β2)*g_t^2

v̂_t = max(v̂_(t-1), v_t)

η = Clip(α/sqrt(v̂_t), η_l(t), η_u(t))

η_t = η/sqrt(t)

x_(t+1) = projection(x_t - η_t*m_t)

η_l(t) は下限関数、η_u(t) は上限関数で、どちらも時刻 t に依存して変わります。AMSGradと同じ v̂_t から求めたパラメータごとの学習率 α/sqrt(v̂_t) のうち、この範囲からはみ出した分が切り取られます。前半の3行はAMSGradと同じで、違いは Clip の行にあります。

適応的手法からSGDへの移行

提案論文では、動的な境界を使う狙いを、適応的手法からSGDへの段階的で滑らかな移行と述べています。時刻に依存する境界によって、学習の初期はAMSGradのように振る舞い、学習が進むにつれてSGDに近い振る舞いへ移っていく、という位置づけです。

AdaBoundとの違い

同じ論文ではAdaBoundも提案されています。AdaBoundはAdamに動的な境界のクリッピングを適用したもの、AMSBoundはAMSGradに同じクリッピングを適用したもので、土台となる手法が異なります。AMSBoundは v_t の過去の最大値 v̂_t を使う点で、AdaBoundと区別されます。論文は、AMSBoundのリグレット(regret)の上界がAdaBoundと同じであると述べています。

試験で問われること

G検定

  • AMSBoundはAMSGradを土台に、学習率を時刻に依存する下限η_l(t)と上限η_u(t)でクリップする動的な境界を組み合わせた最適化手法で、AdaBoundと同じ論文で提案された。
  • AMSGradはAdamの勾配の2乗の指数移動平均の代わりに過去の最大値v̂_t = max(v̂_(t-1), v_t)を使い、まれに出る大きく有益な勾配の影響が薄れて収束が悪くなる問題に対処する。
  • v̂_tが減らないため、AMSGradのステップサイズは非増加になる。Adamで見られた、指数移動平均の短期的な記憶が原因で最適でない解に収束する問題を避けるための工夫である。
  • AMSBoundでは、学習率α/sqrt(v̂_t)をClip(α/sqrt(v̂_t), η_l(t), η_u(t))で範囲内に収め、さらにsqrt(t)で割ってから更新に使う。狙いは適応的手法からSGDへの滑らかな移行である。
  • AdaBoundはAdamに、AMSBoundはAMSGradに同じ動的境界のクリッピングを適用したもので、土台の違いが両者の区別点となる。論文ではAMSBoundのリグレットの上界はAdaBoundと同じとされる。

最終更新日: 2026/09/23