オプティマイザーこの実装は、「適応学習率とその後の差異に関する論文」の公式実装に基づいています。amsGrad実装の拡張としてPyTorchに実装したので、実装する必要があるのは変更だけです。アダムオプティマイザーは、トレーニングの初期段階、特にトランスフォーマーをトレーニングしているときに、不適切な局所最適値に収束することがあります。研究者はこれに対抗するためにウォームアップを使います。最初のトレーニングステップ(ウォームアップ段階)では低い学習率を使います。本稿では、トレーニングの初期段階における適応学習率のばらつきが大きいという問題を特定し、分散を減らすための新しい修正項を用いてその問題に対処しています。この論文では、2つの分散削減メカニズムについても評価しています。Adam-2k:パラメータを変更したり、運動量を計算したりせずに、vt​最初の2kステップでは(Adamで)適応学習率のみを計算します()。ε≈10−4正義のアダムψ(g1​,...,gt​)運動量と適応学習率を計算する関数としましょうσ(g1​,...,gt​)。分布は、単純な移動平均として近似できます。p(1−β2​t(1−β2​)∑i=1t​β2​t−igi2​​)≈p(f(t,β2​)∑i=1f(t,β2​)​gt+1−i2​​)​ここでは、f(t,β2​)最後の勾配の単純移動平均を取っています。上から見ると、p(ψ2(g1​,...,gt​))≈p(f(t,β2​)∑i=1f(t,β2​)​gt+1−i2​​)場所がわかりますgi​∼N(0,σ2)。sigmaこれは標準偏差であり、σ(.)運動量とは異なることに注意してください。スケーリングされた逆カイ二乗は、正規分布の平均の二乗逆数の分布です。pp(f(t,β2​)∑i=1f(t,β2​)​gt+1−i2​​)∼Scale-invX2(ρ,σ21​)どこρ=f(t,β2​)。ψ(.)時間とともにばらつきが小さくなることを証明していますρ。ψ2(.)∼Scale-invX2(ρ,σ21​)したがって、分散は最大値ρ、つまりで最小化されます。ψ(.)適応型学習率のばらつきが一貫していることを確認するために、差異を以下のように修正します。一次展開に基づいて見積もっています。私たちは持っていますrVar[ψ(.)]​=Var[ψ(.)]Cvar​​​≈2(ρ−2)(ρ−4)σ2ρ​​Cvar​Var[ψ(.)]どこがρ∞​.ρt一歩を踏み出してρt​、rt​段階的な修正項になりなさい。オプティマイザを拡張したものです。グループ値のデフォルト辞書です。これは、クラスを拡張する場合に便利ですRAdam。beta2_t)#rt​ρt​>=4どんなときでも扱いやすい。