【入門】モーメンタム①【数値計算】

【入門】モーメンタム①【数値計算】 数値計算
【入門】モーメンタム①【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、

MATLAB,Python,Scilab,Julia比較 第4章 その91【モーメンタム①】

を書き直したもの。

とりあえず、隠れ層のユニット数を増やすことで安定的に分類ができるようになった。
が、以前言った最適化アルゴリズムについての話が残っている。

分類安定化のもう一つの対策案?

無事、安定して分類ができるようになったので、分類問題はこれで終了。

にしたいのだが、
以前、分類の安定化の対策の一つに最適化アルゴリズムを入れる話をしたと思う。

本来はもっと複雑なネットワークで起きる問題に対しての対策案で、
今回の問題に対しては効能は無いと思うのだが、
とりあえずやってみようって話になる。

最適化アルゴリズム

最適化アルゴリズムってどのようなものだろうか?
端的に言うと、学習率を動的に調整していい感じに学習が進むような仕掛けになる。

本来、学習率はハイパーパラメータであり、動かせない値になる。
が、それは勾配降下法としての場合。
それ以外の最適化アルゴリズムだと、初期値としての学習率はハイパーパラメータだが、
その後の学習率は状況に応じて変動するのが一般的になる。

学習率は大きいと収束は早くなる半面、発散しやすくなり、
小さい場合は、発散はしないが収束が遅くなるのと局所最適解にハマりやすいって問題がある。

これを動的に変えられるとすると、この特性のいいとこどりができるってことになる。

と、理想はそうだが、実際はいろいろうまく行かないパターンも多い。
そのため様々な最適化アルゴリズムが生まれている。
というわけで、最適化アルゴリズムって一個ではなく、むっちゃ大量にある。

これを全部やるのは流石に無理がある。
比較的シンプルなものを一つ、主流なもののベースとなっているものを一つの計二つくらいが妥当だろう。

最もシンプルな最適化アルゴリズムは勾配降下法。
そして、それをベースに少し拡張したものがモーメンタム。
今回はこのモーメンタムを扱う。

解説のフロー

以下の流れで解説していく予定。

  • 勾配降下法の更新式
  • 勾配降下法の動作イメージ
  • モーメンタムの更新式
  • モーメンタムの動作イメージ
  • モーメンタムのプログラムフロー
  • モーメンタムによる分類の学習プログラム

勾配降下法っていままでやってたものになる。
具体的な更新式は確認していないので、、
復習も兼ねて確認しておこう。

まとめ

  • 最適化アルゴリズムを取り扱う。
    • 今回のネットワークだとさほど恩恵はないが知っていて損はない。
  • まずはモーメンタムから解説&実験をしていく。
    • 最初は復習を兼ねて勾配降下法についても確認する。

MATLAB、Python、Scilab、Julia比較ページはこちら

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

https://amzn.to/3OE5bVp

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

https://amzn.to/3OBiaax

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

OpenCVによる画像処理入門

https://amzn.to/498ZUgK

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

https://amzn.to/3STAe2i

Pythonによる制御工学入門

https://amzn.to/3uskuK5

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

https://amzn.to/3UAunQK

コメント

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