ニューラルネットワーク最適化問題におけるアルゴリズム設計の物理学的な意味論 | Accel Brain

ニューラルネットワーク最適化問題におけるアルゴリズム設計の物理学的な意味論

Accel Brain; Console×

問題設定:ニューラルネットワーク最適化問題

深層学習ニューラルネットワーク最適化問題は、コスト関数J(θ)を大幅に減少させるニューラルネットワークのパラメタθを発見する最適化問題の一種である。この最適化問題設定を理解するには、機械学習における最適化問題と一般的な最適化問題の差異を理解しなければならない。

機械学習最適化アルゴリズムは、「学習(learning)」の概念との関連から、他の最適化アルゴリズムから区別される。機械学習では通常、学習は間接的に実行される。何故なら大抵の場合、学習主題となる能指標Pは、テスト集合においては定義され難い質を持つためである。言い換えれば機械学習では、別のPに関わるコスト関数J(θ)を設計することで、このコストの最小化が目指される。それにより、Pの改善という問題が、J(θ)の最小化問題として再設定されるのである。つまり、一般的な最適化問題は初めからコスト関数J(θ)の最小化それ自体を主題として設定している。これに対して、ニューラルネットワーク最適化問題は、あくまでも「問題再設定」として、コスト関数J(θ)の最小化問題が導入される。

一般的にコスト関数は訓練集合における平均として表現される。

$$J(\theta) = \mathbb{E}_{(x, y) \sim \hat{p}_{data}}L(f(x;\theta), y)$$

ここで、Lはサンプルあたりの損失関数、f(x; θ)は入力がxである場合に予測される出力、$$\hat{p}_{data}$$は経験分布である。教師あり学習の場合、yは目標(target)となる出力である。上式はあくまで訓練集合に関する目的関数である。だが機械学習コスト関数有限の訓練集合だけではなく、以下のようなデータの生成分布$$p_{data}$$に関する期待値を取った目的関数から計算される期待汎化誤差を最小化する。

$$J^{\ast}(\theta) = \mathbb{E}_{(x, y) \sim p_{data}}L(f(x; \theta), y)$$

機械学習最適化問題におけるいわゆる「誤差(loss)」とは、この期待汎化誤差を指す。したがって上記のコスト関数(cost function)は誤差関数(loss function)としても記述される。ただしあくまで、期待値は真の分布$$p_{data}$$について取ることは忘れてはならない。真の分布$$p_{data}(x, y)$$が既知であるなら、誤差の最小化は一般的な意味での最適化となる。一方、真の分布$$p_{data}(x, y)$$が未知で、利用可能データが訓練集合だけである場合には、機械学習における最適化問題となる。

一般的な最適化問題では、目的関数と制約条件の設計によって、最適化問題を凸最適化の問題として設定してきた。一方、ニューラルネットワーク学習では、一般的な非凸の場合に対処しなければならない。この凸最適化問題は極小値を探索する問題に還元することができる。どの極小値も最小値であることが保証されている。凸関数の中には、底に平坦領域を有することで、最小値が複数存在する関数もある。この場合、これらの平坦領域の任意の点が許容解となる。凸関数最適化で臨界点に到達したなら、その点が何であれ、良い解に到達したことになる。一方、ニューラルネットワークは非凸関数である。それは複数の極小値の存在を許容する。多くの深層学習モデルは、極めて多くの極小値を有している。しかしながら、この問題はさして重大な問題ではない。

これが重大な問題ではないということを理解するには、「モデル同定可能性(model identifiability)」という概念を導入する必要がある。ニューラルネットワークや複数の潜在変数を有するモデルは、いずれもモデル同定可能性によって複数の極小値を持つ。あるモデルが同定可能であるというのは、十分に大きな訓練集合によって、ある一つのモデルパラメタ以外の全てのモデルパラメタを除外できる場合を意味する。潜在変数を有するモデルでは、潜在変数を相互に代替することで等価なモデルが得られる。そのため同定可能にならない場合が多い。このモデル同定可能性という概念は、ニューラルネットワークコスト関数には無数の極小値が存在し得ることを意味している。しかし、非同定可能性ゆえに生じるこうした極小値の全てにおいて、コスト関数の値は相互に等価である。結果的に、これらの極小値は、問題となるような非凸ではないのである。

尤も、極小値が最小値に比して高いコストを保つ場合には、問題となり得る。高いコストを有した極小値が無数に存在する場合には、勾配に基づいた最適化アルゴリズムは重大な問題を抱えることになる。だが、十分に大きなニューラルネットワークでは、ほとんどの極小値が小さなコスト関数の値を持つと経験的に知られている。実用的な観点では、真の最小値を探索することよりも、相対的により低い極小値を探索するアルゴリズムを提案することもまた、重要な問題となる。ニューラルネットワーク学習は、関数の正確な真の最小値を探索することを目指している訳ではない。そのコスト関数の値を十分小さくすることによって、より良き汎化能を獲得するためにこそ、学習が実行されるのである。

以上を前提とすれば、ニューラルネットワーク最適化問題における問題解決策となるのは、一般的な真の最小値を探索するアルゴリズムではない。この差異を前提とするなら、ニューラルネットワーク最適化アルゴリズムは、最適化と汎化を両立させるべく設計されていなければならない。

問題解決策:確率的勾配降下法

機械学習最適化問題にせよ、ニューラルネットワーク最適化問題にせよ、「確率的勾配降下法(Stochastic Gradient Descent: SGD)」は最も頻繁に用いられる最適化アルゴリズムの一つである。機械学習最適化アルゴリズム一般的な最適化アルゴリズムと異なるのは、目的関数が訓練サンプルの和に分解できるということである。機械学習最適化アルゴリズムは、一般的に全コスト関数の項の部分集合のみを利用することで、推定されるコスト関数期待値に基づき、それぞれのパラメタを更新していく。

しかし、こうした期待値を厳密に計算しようとすれば、データ集合中の全てのサンプルに関してモデルを評価する必要がある。計算コストが非常に高まる。それ故実用上は、データ集合からアトランダムに少数のサンプルを抽出することで、抽出されたサンプルに関する平均から期待値を計算する。

少数のサンプルから勾配を統計的に推定していく理由は、計算コスト以外にもある。それは、データ集合冗長性だ。極端な場合、全てのサンプルが同一あるいは近似できるほどに類似している場合には、少数のサンプルのみから勾配を計算すれば、最適化は原理的に可能になる。

形式としてのミニバッチ

訓練サンプルの全てを用いる最適化アルゴリズムは、決定論的(deterministic)な勾配である。慣習的に、これは「バッチ(batch)」の勾配とも呼ばれる。と言うのも、決定論的な勾配の場合には、訓練集合全体を一個の「バッチ」として扱うためである。尤も、この「バッチ」という概念は、今日では専ら確率論的(stochastic)な勾配やオンライン(online)の勾配における「ミニバッチ(mini-batch)」として記述される傾向にある。この勾配では、一度の訓練で一つのサンプルしか利用しない。この方法は、抽出した一つのサンプルが、全訓練集合を代表しているという前提の上に成り立っている。

ニューラルネットワーク深層学習における確率的勾配降下法は、この決定論的な勾配確率論的な勾配の中間に位置する。利用する訓練サンプルは複数である。だが全てを利用する訳ではない。最適化アルゴリズムにおいては、「ミニバッチ」を複数回反復的に抽出した上で、反復的に学習していく。その際、一回の学習抽出されるミニバッチの「バッチサイズ(batch size)」がハイパーパラメタとして指定される。

ハイパーパラメタとしてのバッチサイズは、幾つかのトレードオフの関係を形成する。バッチサイズが大きいほど、勾配推定は正確になる。だが無論、大きければ大きいほどその計算コストは高まる。バッチ内のサンプルが全て並列に処理される場合、使用メモリ量はバッチサイズに応じて大きくなる。一方、バッチサイズが小さい場合、探索の無作為が高まる。これは誤差を高めるリスクを招くことになる一方で、「正則化(Regularization)」として機能することを意味する。

ミニバッチの抽出は、アトランダムに、あるいは一様分布を仮定してサンプリングされることは、確率的勾配降下法において重要な意味を持つ。サンプルの集合から期待勾配の不偏推定を計算するには、サンプルが独立であることが要求される。学習するモデル観点かられば、二つの連続する勾配推定は互いに独立であることが望ましい。そのため、連続する二つのミニバッチもまた互いに独立であるべきとなる。動画や系列信号のデータ学習する場合には特に、連続するデータ集合が互いに相関を持つことになる。データセットを配備する設計者がこの相関に無頓着では、学習するモデルがこの相関からバイアス形成してしまう恐れがある。尤も、全てのデータを網羅的に確認するほどの時間的な余裕が無い場合には、真に一様分布を仮定した無作為抽出が実現できるという想定が現実味を持たなくなる。それ故に実用上は、科学計算ライブラリで提供されている乱数器に基づいた「シャッフル(shuffles)」機能によってデータセットをシャッフルしておくことで、形式上一様かつ無作為に抽出できるという前提に立つことが慣習的な方針となっている。

確率的勾配降下法のアルゴリズム

確率的勾配降下法は、ミニバッチに基づいたアルゴリズムの一つである。このアルゴリズムも、データ生成分布から抽出されたバッチサイズmの勾配の平均を取ることで、勾配の不偏推定が得られるという想定に立っている。k回目の訓練の反復における確率的勾配降下法のパラメタ更新は、学習率αと初期パラメタθが初期条件として設定される。パラメタの更新は反復的に実行される。更新手続きは訓練集合$$\{x^{(1)}, …, x^{(m)}\}$$と対応する目標$$y^{(i)}$$からm個のサンプルのミニバッチをサンプリングするところから始まる。そして、ニューラルネットワークの順伝播結果から勾配の推定値を次のように計算する。

$$\hat{g} \leftarrow + \frac{1}{m}\nabla_{\theta}\sum_{i}^{}L(f(x^{(i)};\theta), y^{(i)})$$

そして、学習率αを用いてパラメタθを更新する。

$$\theta \leftarrow \theta – \alpha_k \hat{g}$$

ここで、$$\alpha_k$$は、学習率ではあるが、学習回数に応じて減衰させていくパラメタとなる。例えば50回の反復ごとに学習率αに0.5を乗算するなど、如何に学習率を減衰させていくのかは、設計者の方針に委ねられている。設計者はこの減衰にもトレードオフの関係を見出さなければならない。この減衰の操作が頻繁かつ急激である場合には、更新のステップ幅が不十分に留まるため、最適化の進捗が滞ることになる。一方、かといって減衰を怠れば、SGDの勾配推定量が最小値に到達しても尚消失しないノイズを生み出す可能性リスクとなる。と言うのも、SGDのパラメタ更新を継続するということは、それだけ確率論的なミニバッチのサンプリングによって、無作為ゆえのノイズモデルに入力することになってしまうためである。それは、仮にそれまでのパラメタ更新によってたとえ最小値に到達していたとしても、SGDは尚もモデルを攪乱し続けることを意味する。したがってSGDアルゴリズムを収束へと導くためには、学習率を徐々に0に近付けることによって、最終的にはパラメタ更新による影響を極小化させていくことが要求される。すなわち、

$$\sum_{k=1}^{\infty}\alpha_k = \infty, \ and \ \sum_{k=1}^{\infty}\alpha_k^2 < \infty$$ が、SGDの収束を保証する条件となる。

機能的拡張案:モメンタム

SGDアルゴリズム学習が遅くなることが知られている。伝統的にニューラルネットワーク最適化問題では、この学習の高速化の方法として、物理学的な概念に由来する「モメンタム(momentum)」を導入している。モメンタム意味論では、パラメタ空間における負の勾配が、ニュートンの運動法則に従って動作する粒子に喩えられる。モメンタムはこの粒子を動かす「力(power)」として機能する

物理学的に言えば、モメンタムは質量と速度の積に他ならない。一方、機械学習におけるモメンタムアルゴリズムでは、速度概念となる変数vを導入する。これは、パラメタがパラメタ空間を移動する速度を表す。速度は指数関数的に減衰する負の勾配の平均として設定される。その際の物理学的な類推として記述されるのは、単位質量である。これにより速度vは、粒子のモメンタムと仮定される。過去の勾配の貢献が指数関数的に減衰する速度を$$\beta \in [0, 1]$$とするなら、次のように更新される。

$$v \leftarrow \beta v – \alpha_k \hat{g}$$

$$\theta \leftarrow \theta + v$$

モメンタムの技術は、特に曲率が高い場合や勾配が小さくて一定の場合、あるいはノイズが含まれる勾配に直面した場合に利用される。モメンタムアルゴリズムでは、指数関数的に減衰する過去の勾配の移動平均を蓄積する。そして継続的にその勾配の方向へと進むようにする。

モメンタムの意味論

モメンタムアルゴリズム連続時間ニュートン力学系に従う粒子のシミュレーションである。時間軸上の任意の点における粒子の位置はθ(t)で与えられる。この粒子は合力f(t)を受ける。この力により、粒子は加速する。

$$f(t) = \frac{\partial^2}{\partial t^2}\theta(t)$$

このように、モメンタム意味論の二次微分方程式として記述することができる。一方、時間tにおける粒子の測度を表す変数v(t)を導入すれば、ニュートン力学系を次のような一次微分方程式として再記述することができる。

$$v(t) = \frac{\partial}{\partial t}\theta(t)$$

$$f(t) = \frac{\partial}{\partial t}v(t)$$

したがって、モメンタムアルゴリズムは、数値シミュレーションにより微分方程式を解くことで構成される。微分方程式を解く単純な手としてはオイラー(Euler method)を挙げられる。これは、各勾配の方向に小さな有限ステップで進むことによって、方程式によって規定される力学のシミュレーションとして構成される。

モメンタムを採用したSGDアルゴリズムでは、モメンタムにおける「力」の意味論が、コスト関数の負の勾配に照応することを表している。この力は、粒子をコスト関数の表面上に沿って、下り方向に押す。勾配降下は単に各勾配に基づいて1ステップ分進めるだけである。これに対してモメンタムアルゴリズムでは、この力によって粒子の測度を更新する。文字通り「勢い(momentum)」を付けることによって、粒子はその表面の急激な坂を下るたびに速度が増す。そして再び上り坂に達するまで、その方向を下り続けることになる。

形式としての粘性抵抗

注意しなければならないのは、モメンタムの「力」が逆向きの「力」を必要としている点である。もし逆向きの「力」が無ければ、粒子は停止することができなくなる。物理学的に言えば、ここでいう逆向きの「力」とは、「粘抵抗(viscous drag)」に相当する。この逆向きの「力」によって粒子は、時間の経過と共に徐々にエネルギーを喪失する。そして最終的には極小点に収束する。

逆向きの「力」を明示的に粘抵抗として記述するモメンタム意味論は、それ以外の抵抗概念を暗に否定している。これは数学的な利便をもたらすためである。例えば空気中を移動する粒子には、速度の二乗に比例する乱流抵抗の力が作用する。地面に沿って移動する粒子には一定の大きさの力で乾摩擦が作用する。モメンタム意味論はこれらの概念を暗に排除することで、数学的な利便を高めている。乱流抵抗は速度の二乗に比例する。故に速度が小さい場合には、その力が非常に弱くなる。それは粒子を停止させられるほどの力とはならない。乾摩擦を表す0乗を用いた場合、逆に粒子を停止させようとする力が強過ぎてしまう。特にコスト関数の勾配による力が微小量である場合、摩擦による一定の力によって、粒子は極小値に到達する前に停止してしまう。粘抵抗の場合、これらの問題を回避できる。粘抵抗の力は十分に弱い。それは、勾配が極小値に到達するまでは動作し続けるものの、勾配が移動を支持しない場合には動きを止めてしまう程度の強さに留まる。

機能的拡張案:Nesterov’s Accelerated Gradient(NAG)

ネステロフの加速勾配(Nesterov’s Accelerated Gradient: NAG)」では、モメンタムアルゴリズムにおける勾配評価手続きを次のように見直している。

$$v \leftarrow \beta v + \alpha \nabla_{\theta} [ \frac{1}{m}\sum_{i=1}^{m}L(f(x^{(i)}; \theta + \beta v), y^{(i)})]$$

$$\theta \leftarrow \theta + v$$

ネステロフの加速勾配方法では、通常のモメンタムアルゴリズムとは異なり、現在の測度が適用された後で勾配が計算される。ネステロフの加速勾配では、通常のモメンタムに修正要因を追加していることになる。

機能的拡張案:Adaptive subgradient methods(AdaGrad)

長らくSGDモメンタム関係のアルゴリズムでは、学習率を如何に調節するべきなのかが未知に留まっていた。コストは、パラメタ空間のある方向に対しては敏感である一方、他の方向には鈍感である場合が多い。モメンタムアルゴリズムはこの問題をある程度解消できる。しかしそのためには新たなハイパーパラメタを導入する必要がある。これは、あるハイパーパラメタの問題を別のハイパーパラメタの問題として再設定していることを表している。しかしこの問題再設定は別のあり方でもあり得る学習率のハイパーパラメタとしての質を「減らす」ことによって、ハイパーパラメタの調節という当の問題の負担免除することもまた、一つの問題解決策となり得る。つまり学習率を自動的に、適応的に調節するアルゴリズムを設計するのである。

適応部分勾配(Adaptive subgradient methods: AdaGrad)」は、学習率を過去の学習率の二乗和の平方根に反比例するようにスケーリングすることで、適応的な学習率の調節を実現している。例えば誤差関数の偏微分が最大となるパラメタでは、その大きさに応じて、学習率が急速に減少する。全体的に、パラメタ空間内では、斜面が緩やかな方向ほど大きな効果が見受けられる。

AdaGradでは、学習率αと初期パラメタθの他に、微小な定数を$$\delta = 10^{-8}$$を数学的な安定のために導入される。アルゴリズムでは、勾配の類型を蓄積する変数rを0として初期化する。各エポックにおける勾配計算後、rを用いて、勾配の二乗を蓄積していく。

$$r \leftarrow r + g \odot g$$

変数rは、次のように勾配更新に影響を与える。

$$\Delta \theta \leftarrow – \alpha \frac{1}{\delta + \sqrt{r}} \odot g$$

最適化問題が凸最適化問題である場合、AdaGradアルゴリズムは望ましい能を発揮する。しかし、深層ニューラルネットワーク学習で、学習の初期から勾配の二乗の累計を計算してしまうと、学習率が早期の時点で過剰に減少してしまうリスクがある。したがってAdaGradはあらゆる深層学習で適用可能最適化アルゴリズムとしては見做されていない。

機能的拡張案:Adaptive RootMean-Square (RMSProp) gradient decent algorithm

適応二乗平均平方根勾配降下アルゴリズム(Adaptive RootMean-Square gradient decent algorithm: RMSProp gradient decent algorithm)」は、AdaGradにおける勾配の累積を指数関数的な重みを付けた移動平均に変更することで、非凸の条件下でAdaGrad能を改善している。AdaGradは凸関数に適用した場合に急速に収束するように設計されている。ニューラルネットワーク学習として非凸関数を利用した場合、学習の軌跡は数多くの異なる構造を通過することで、最終的には局所的に凸のボウル状になった領域に到達する可能性がある。AdaGradは過去の全ての勾配の二乗に基づいて学習率を縮小させることで、凸構造に到達する前に学習率が小さくなり過ぎてしまうリスクがある。

これに対してRMSPropは指数関数的に減衰する平均を利用して極めて遠い過去の利益取り除くことで、凸のボウル状の領域を発見すると、ボウルの中で初期化されたAdaGradアルゴリズムのインスタンスであるかのように高速に収束する。

RMSPropにおける勾配の二乗の蓄積は、次のように実行される。

$$r \leftarrow \rho r + (1 – \rho)g \odot g$$

$$\Delta \theta = – \alpha \frac{1}{\sqrt{\delta + r}} \odot g$$

ここで、$$\rho$$は減衰率を表すハイパーパラメタである。

機能的等価物の探索:Adaptive Moment Estimation(Adam).

適応モーメント推定(Adaptive Moment Estimation: Adam)」は、適応的な学習率の最適化アルゴリズムとして、AdaGradRMSProp機能的等価物として位置付けできる。単純化してるなら、AdamモデルRMSPropモメンタムの複合体である。より厳密化して言えば、Adamではモメンタムが勾配の指数関数的な重み付けられた一次モーメント(first moment)の推定として直接的に導入される。これに対して、モメンタムRMSPropに導入する単純な方法は、再スケーリングされた勾配にモメンタムを適用することである。尤も、このようなモメンタムとの組み合わせには、理論的な動機がある訳ではない。つまりRMSPropモメンタムを導入することは、可能選択肢に過ぎず、必然的な選択肢とはなり得ない。一方Adamにおけるモメンタム項としての一次モーメントは、二次モーメント(second moment)と共にバイアス補正が施されている。そこで考慮されているのは原点での初期化である。RMSPropにも二次モーメントに相当する項が存在するものの、それは補正されている訳ではない。逆に言えば、RMSPropにおける二次モーメントは、Adamに比して、学習の初期段階でのバイアスが増加するリスクがある。

Adamアルゴリズムでは、「モーメント」が二つに区別される。これに応じて、Adamでは、二つのモーメントの指数減衰率$$\beta_1, \beta_2$$がハイパーパラメタとして設定される。推奨される値は、$$\beta_1 = 0.9, \ \beta_2 = 0.99$$である。一次モーメントと二次モーメントをそれぞれ$$m_1, m_2$$と置くなら、バイアス付きの一次モーメントと二次モーメントの推定は次のように更新される。

$$m_1 \leftarrow \rho_1 m_1 + (1 – m_1)g$$

$$m_2 \leftarrow \rho_2 m_2 + (1 – m_2)g \odot g$$

ここで、$$\rho_1, \rho_2$$はそれぞれ一次モーメントと二次モーメントの減衰率を表す。

一次モーメントと二次モーメントのバイアスを補正する場合、その補正処理は次のようになる。

$$m_1 \leftarrow \frac{m_1}{1 – \rho_1^t}$$

$$m_2 \leftarrow \frac{m_2}{1 – \rho_2^t}$$

ここで、tは反復回数、エポック数を意味する。$$\rho_1^t, \rho_2^t$$はそれぞれの減衰率がそれ自体時間の経過と共に減衰していくことを表している。パラメタの更新は、以上のように更新された二つのモーメント推定量から実行される。

$$\Delta \theta \leftarrow – \alpha \frac{m_1}{\sqrt{m_2} + \delta}$$

機能的拡張案:Nesterov-accelerated Adaptive Moment Estimation(Nadam)

Adamにおける一次モーメントはモメンタムを前提とする。それ故に、モメンタム拡張させたネステロフの加速勾配方法は、Adamにも導入することが可能となる。ネステロフの加速勾配によって拡張されたAdamを特に「ネステロフ加速勾配型適応モーメント推定(Nesterov-accelerated Adaptive Moment Estimation: Nadam)」と呼ぶ。

Nadam特徴は、時間の経過と共に減衰していく各時点のハイパーパラメタ$$\beta_1$$の値をリスト$${\beta_{1}}_{t}$$として保持する点である。これにより、時間tにおける勾配は次のように更新される。

$$\hat{g}_t \leftarrow \frac{g_t}{1 – \prod_{i=1}^{t}{\beta_{1}}_{i}}$$

時間tを表現するなら、勾配と一次モーメントの更新はそれぞれ次のように再記述できる。

$$g_t \leftarrow \beta_1{m_{1}}_{(t-1)} + (1 – \beta_1)g_t$$

$${m_{1}}_{t} \leftarrow \frac{{m_{1}}_{t}}{1 – \prod_{i=1}^{(t+1)}{\beta_1}_{i}}$$

注意しなければならないのは、勾配が一つ前の時間ステップまでを考慮するのに対して、一次モーメントは現在の時間ステップまで考慮するという差異である。また古典的なモメンタム概念とは異なり、ここではモメンタムステップと勾配のステップが共に現在の勾配に依存していることがわかる。

プロトタイプの開発:Optimizerのライブラリ化

以上の機能的等価物機能的拡張案を観察するなら、各最適化アルゴリズム共通性可変性区別することが可能になる。その上で、一種のOptimizerとして、抽象クラスを設計することも可能になる。Pythonのライブラリ:『pydbm』では、この抽象化を実践するために、SGDからNadamまでの各アルゴリズムをそれぞれ導入している。このライブラリでは、一般的な深層ニューラルネットワークのみならず、制限ボルツマンマシンをはじめとしたエネルギーベースモデル最適化にもこれらの最適化アルゴリズム再利用することを可能にしている。

参考文献

  • Bengio, Y., Boulanger-Lewandowski, N., & Pascanu, R. (2013, May). Advances in optimizing recurrent networks. In 2013 IEEE International Conference on Acoustics, Speech and Signal Processing (pp. 8624-8628). IEEE.
  • Dozat, T. (2016). Incorporating nesterov momentum into adam., Workshop track – ICLR 2016.
  • Duchi, J., Hazan, E., & Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12(Jul), 2121-2159.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (adaptive computation and machine learning series). Adaptive Computation and Machine Learning series, 800.
  • Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.