MATLAB,Python,Scilab,Julia比較 第4章 その107【最適化アルゴリズム⑥】

MATLAB,Python,Scilab,Julia比較 第4章 その107【最適化アルゴリズム⑥】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その107【最適化アルゴリズム⑥】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia4-backnumber/

はじめに

Adamに至るまでの最適化アルゴリズムの系譜の説明をした。
今回は全体としての依存関係について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

最適化アルゴリズムいろいろ【再掲】

太郎くん
太郎くん

まずは説明予定の最適化アルゴリズムを再掲。

  • AdaGrad(済)
  • RMSprop(Root Mean Square Propagation)(済)
  • AdaDelta(済)
  • Adam(Adaptive Moment Estimation)(済)
フクさん
フクさん

というわけで当初の予定は説明終了。

各最適化アルゴリズムの依存関係

太郎くん
太郎くん

各種最適化アルゴリズムの説明は終わったから
恒例のプログラム化になるのかな?

フクさん
フクさん

その前に、これまでの最適化アルゴリズムの依存関係を見てみよう。

太郎くん
太郎くん

あー、確かに何かの拡張がどれとか、あれとそれがくっついてこれになったとかあったからねー。

フクさん
フクさん

図で示すとこんな感じだな。
括弧内の数値は登場した年とか活躍していいた期間を表している。

各最適化アルゴリズムの依存関係、勾配降下法(1980→2010)、モーメンタム(2010)、AdaGrad(2011)、RMSprop(2012)、AdaDelta(2012)、Adam(2014)、1次の勾配の指数移動平均で勢いをつける、2次の勾配の累積で勢いを抑制する。2次の勾配の累積による勢いを抑制し過ぎを指数移動平均で対策(過去の値の大きさの影響を減らし勢いを復活させる。)、2次の勾配で勢いを抑制しつつパラメータ変化で勢いをつけバランスをとる。1次の勢いと2次の抑制の合わせ技
太郎くん
太郎くん

全体を見渡せると分かり易い気がしてくる。

太郎くん
太郎くん

基本的には1次の勾配で勢いをつけて、2次の勾配で抑制って感じなのかな?

フクさん
フクさん

そうだね。
その両方を取り込んだのがAdamってことになるな。

太郎くん
太郎くん

Adamのあとも、うっすらとAdaBoundってのが見えるけど・・・。

フクさん
フクさん

今回は取り扱わなかったが、Adamの拡張系の最適化アルゴリズムだ。
差分としてはクリッピングで学習率の範囲を指定できる点だな。
Adamでも学習率が下がりすぎて更新が効かなくなるのをクリッピングで更新し続けられるような仕掛けが追加されてる。

太郎くん
太郎くん

まぁ、Adamがベースにはなってると思えばそういうのもあるのかって程度にはなるのか。

まとめ

フクさん
フクさん

まとめだよ。

  • 各最適化アルゴリズムの依存関係を記載。
  • 1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。
  • Adamが1次の勾配と2次の勾配を合わせたアルゴリズムとなる。

バックナンバーはこちら。

Pythonで動かして学ぶ!あたらしい線形代数の教科書

Amazon.co.jp

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

Amazon.co.jp

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

OpenCVによる画像処理入門

https://amzn.to/498ZUgK

恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]

Amazon.co.jp

Pythonによる制御工学入門

Amazon.co.jp

理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析

https://amzn.to/3UAunQK

コメント

タイトルとURLをコピーしました