- 深層学習 #まとめ編
Index
- Index
- 最適化 / Optimization とは
- アルゴリズム
- テクニック
- 研究
- 参考
最適化 / Optimization とは
ニューラルネットワークの学習の目的は、損失関数の値をできるだけ小さくするパラメータを見つけること.
これは、つまり最適なパラメータを見つけることが問題であり、そのような問題を解くことを最適化 / Optimizationという.
この問題は、とても難しい問題である.
というのも、パラメータ空間は複雑であり、広大であるため、最適な解は簡単には見つけられない.
最適なパラメータを見つけるために、パラメータの勾配 (微分) を手がかりにすることは、すばらしい考え.
勾配
あるデータ がニューラルネットワークに入力されて、損失関数 から損失が計算できたとする.
このとき出力は、
とする.
はパラメータ変数 の値で、 であり、 パラメータ空間は の2次元空間である.
最適化したいこの関数を の関数と考えて、偏微分する.
これが、勾配 (ベクトル) で、これは、 での、損失関数 に沿ったベクトル.
勾配法
このパラメータ空間にて、勾配ベクトルの定数倍分、移動する.
このように、パラメータを更新していき、
最小化(最適化)したい関数 を、最小とするパラメータの組み()を決定する.
このように、パラメータを変数として、損失関数を微分し、勾配(ベクトル)を求め、そのベクトル分パラメータ空間を移動していく
ことで、徐々に、損失関数が最小となるパラメータを見つけていく方法を「勾配法」 (最小値を見つけるときは、勾配降下法)という.
アルゴリズム
確率的勾配降下法 / Stochastic Gradient Descent / SGD
一度の更新に利用する学習データをランダムに選んで(ミニバッチ学習 / Minibatch Learning)、
学習することで、ランダム性を取り入れる手法.
SGD は、パラメータ空間の局所解に導いてくれる素晴らしいアルゴリズムではあるが、
無駄な動きが発生してしまうケースもある.
そのような欠点にいくつかの効率化を加えた手法が提案されいる.
SGLD / 2011
Momentum
勾配法の(パラメータ空間内での)振動(=無駄な動き)を抑制し、極小値への収束性を改善する.
- Momentum
ネフテロフの加速勾配法 / Nesterov's Accelerated Gradient Method / NAG / 1983
Momentum の改善手法.
Momentum との違いは、勾配ベクトルの計算するための対象パラメータだけである.
AdaGrad / Adaptive Subgradient Descent / 2011
勾配法の改善.
よく動きそうな (大きく更新されそうな) パラメータを次第に小さくするという減衰を、
パラメータ個別に行う.
- AdaGrad / Adaptive Subgradient Descent
RMSProp / Root Mean Square Prop / 2012
過去の情報よりも、直近の情報に重みを置く「指数移動平均」という加算方法を導入した AdaGrad の手法.
- RMSProp / Root Mean Square Prop
AdaDelta / 2012
RMSProp の改善?
RMSpropGraves / 2014
RMSProp の改善?
Adam / Adaptive Moment Estimation / 2014
Momentum と AdaGrad (RMSProp)を合わせた手法.
- Adam / Adaptive Moment Estimation
AdaMax / 2015
AdamW / 2017
- Decoupled Weight Decay Regularization
- [2017]
- arxiv.org
AdaBound / 2019
- Adaptive Gradient Methods with Dynamic Bound of Learning Rate
- [2019]
- arxiv.org
AdaBelief / 2020
- AdaBelief Optimizer: Adapting Stepsizes by the Belief in Observed Gradients
- [2020]
- arxiv.org
ASAM / 2021
- ASAM:Adaptive Sharpness-Aware Minimization for Scale-Invariant Learning of Deep Neural Networks
- [2021]
- arxiv.org
D-Adaptation / 2023
Learning-Rate-Free Learning by D-Adaptation
- [2023]
- arxiv.org
Lion / EvoLved Sign Momentum / 2023
- Symbolic Discovery of Optimization Algorithms
- [2023]
- arxiv.org
DIFF2 / 2023
- DIFF2: Differential Private Optimization via Gradient Differences for Nonconvex Distributed Learning
- [2023]
- arxiv.org
Sophia / 2023
ヘシアンの対角成分をHutchinson法などで定期的に推定し、それを使って前条件付する際に正成分になり、 かつ更新幅が大きくなりすぎないようクリップする.
SophiaはLLM向け最適化手法であり、ほぼ同じ計算量でAdamWやLIONと比べ2倍近く高速に収束し、パラメータ数も減らせる。ヘシアンの対角成分をHutchinson法などで定期的に推定し、それを使って前条件付する際に正成分になり、かつ更新幅が大きくなりすぎないようクリップする。https://t.co/NofcNKSScZ
— Daisuke Okanohara / 岡野原 大輔 (@hillbig) May 24, 2023
- Sophia: A Scalable Stochastic Second-order Optimizer for Language Model Pre-training
- [2023]
- arxiv.org
テクニック
Warmup
学習率のWarmupで大きいバッチサイズでもいい感じに訓練する
SOURCE CODE FOR MMDET.ENGINE.SCHEDULERS.QUADRATIC_WARMUP
研究
- Over-Parameterization Exponentially Slows Down Gradient Descent for Learning a Single Neuron
- [2023]
- arxiv.org
参考
ゼロから作るDeepLearning
- 4ニューラルネットワークの学習
- 4.4 勾配
- 4.4.1 勾配法
- 4.4 勾配
- 6 学習に関するテクニック
- 6.1 パラメータの更新
- 4ニューラルネットワークの学習
機械学習スタートアップシリーズ これならわかる深層学習入門
- 4 勾配降下法による学習
- 4.2 勾配降下法の課題
- 4.2.3 ネステロフの加速勾配法
- 4.2 勾配降下法の課題
- 4 勾配降下法による学習