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で動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント