バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia4-backnumber/
はじめに
ニューラルネットワークの最適化アルゴリズムについて。
前回まででモーメンタムの話が終わったところ。
モーメンタム以外にもいろいろな最適化アルゴリズムがあるのでそれの確認。
登場人物
博識フクロウのフクさん
イラスト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
もう一個試す予定の最適化アルゴリズムへ至る系譜
モーメンタムがとりあえず、終わったところだけど、
もう一個くらい別の最適化アルゴリズムを試すんだっけ?
そうだね。
その前に、有名どころの最適化アルゴリズムの確認とか、因果関係とかを見てみようと思う。
もう一個やっておしまいにしないの?
そのもう一個がモーメンタムから少し遠い位置にあるんだよね。
そこに至る系譜を確認する感じだ。
最適化アルゴリズムいろいろ
まずは説明予定の最適化アルゴリズムを列挙する。
実際に試したい最適化アルゴリズムはAdamになる。
- AdaGrad
- RMSprop(Root Mean Square Propagation)
- AdaDelta
- Adam(Adaptive Moment Estimation)
まぁ、4つくらいだったらいいか・・・。
Adam以降もいろいろあって、
- AdaBound
- AMSBound
というのもあるが、今回は省略だ。
基本的にはAdamをベースにクリッピングで更新の上下限を決めて更新範囲を制御できるようにしたものだな。
クリッピングってmin,maxとか使って上下限の振れ幅に制約を入れるやつだね。
そうそう。
とりあえず、さっきの4つの最適化アルゴリズムを一つずつ説明していくって感じ?
その予定だ。
数式なども出すが、プログラムとして採用するのは最後Adamのみだな。
モーメンタムと別に試す最後の1個の最適化アルゴリズムってことだね。
まとめ
まとめだよ。
- もう一個試す予定の最適化アルゴリズムへ至る系譜を説明予定。
- プログラム化して試すのはAdamだが、それに至るアルゴリズムを数式レベルで確認。
- Adam以降の最適化アルゴリズムもあるが、基本はAdamベースでクリッピングが入ってる感じ。
バックナンバーはこちら。
Pythonで動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント