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

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

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

はじめに

の、

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

を書き直したもの。

ニューラルネットワークの最適化アルゴリズムについて。
前回までで、モーメンタムの更新式と動作イメージを確認した。
よって、これをプログラム化するわけだが、まずはプログラムフローを確認する。

モーメンタムへ至る道【再掲】

まずはモーメンタムへ至るフローを再掲

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

今回は、この中の「モーメンタムのプログラムフロー」

プログラム化の方針

モーメンタムの更新式も把握できたわけだから、
あとはプログラムで動作を見ることになる。

その前にプログラム化の方針を説明しておこう。

勾配降下法による多層パーセプトロンは実現できている。
このプログラムの勾配降下法の部分を差し替えるだけとなる。
あとは隠れ層のユニット数は直近で試した4ユニットにしよう。

というわけで、あるものは使いまわす。

プログラムフロー

プログラムのフローだが、以下になる。
勾配降下法の時と基本的には一緒。

  • シグモイド関数の定義
  • シグモイド関数の導関数の定義
  • データの準備
  • ネットワークの構築
  • 重みとバイアスの初期化
  • モーメンタム項の初期化
  • 学習(4000エポック)
    • 順伝播
    • 誤差計算(平均二乗誤差)
    • 逆伝播
    • パラメータの更新(モーメンタム)
  • 決定境界線の表示

「モーメンタム項の初期化」と「パラメータの更新(モーメンタム)」ってところが差分。
よって、そこを中心に修正を入れればOKはなず。

まとめ

  • モーメンタムを確認するプログラムの方針を確認。
    • 以前の勾配降下法のプログラムをベースにする。
    • 隠れ層のユニット数は4。
  • プログラムのフローを確認。
    • モーメンタム項とパラメータ更新が基本的な差分となる。

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をコピーしました