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

MATLAB,Python,Scilab,Julia比較 第4章 その92【モーメンタム②】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その92【モーメンタム②】

バックナンバーはこちら。
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

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

太郎くん
太郎くん

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

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

今回は、この中の「勾配降下法の更新式」

勾配降下法

太郎くん
太郎くん

まずは勾配降下法の復習も兼ねるって感じですすめるんだよね。

フクさん
フクさん

そうそう、
それに勾配降下法も重みやバイアス等のパラメータに対しての更新式の話を端折っている。
この更新式というものが、この後に続く様々な最適化アルゴリズムの性格を決定づけることになる。

太郎くん
太郎くん

なるほど。
まずは更新式ってのを認識するってところか。
その更新式も勾配降下法が一番シンプルだからとっつきやすいって感じか。

フクさん
フクさん

その通り。
全ての最適化アルゴリズムの基礎になるな。

勾配降下法の更新式

フクさん
フクさん

勾配降下法の更新式だが、以下で表現される。

\(
\begin{eqnarray}
\theta_{t+1}&=&\theta_t-\alpha\nabla J(\theta)\\
\theta_t&:&パラメータベクトル(重み、バイアス等)の現在値\\
\alpha&:&学習率\\
\nabla J(\theta)&:&誤差(損失)関数Jにおけるパラメータ\theta_tの勾配\\
\end{eqnarray}
\)

太郎くん
太郎くん

\(\theta_{t+1}\)が新しいパラメータってことだね。

太郎くん
太郎くん

\(\nabla J\)ってのがイマイチぴんとこないな・・・。

フクさん
フクさん

以前、どこかで説明したかもしれないが、
\(\nabla\)はベクトルとしての勾配を示す。
\(J(\theta)\)が誤差関数なので、
結果として\(\nabla J(\theta)\)は連鎖律で求めた
誤差関数に対しての特定のパラメータによる微分ってことになるな。

太郎くん
太郎くん

あー、この部分がいわゆる誤差伝播法で求められるやつか。

フクさん
フクさん

そうそう。

太郎くん
太郎くん

そして、勾配と逆の方向が極小値が居るはずだから、勾配を引く。
ただし、変位する値を調整したから学習率を掛けておく。
って感じか。

フクさん
フクさん

正解。

太郎くん
太郎くん

言葉だけで説明されてた部分だけど、
ちゃんと数式も交えて考えると割と挙動がハッキリするね。

フクさん
フクさん

まぁ、勾配降下法は事前にプログラムで実現しているから
イメージしやすいってのもあるだろうね。

太郎くん
太郎くん

そうすると、これ以外の最適化アルゴリズムはちょっと苦労しそうだな。

フクさん
フクさん

勾配降下法の更新式を理解できていれば、そこらへんの障壁はだいぶ低くなっていると思って良いだろう。

まとめ

フクさん
フクさん

まとめだよ。

  • 勾配降下法について復習。
    • 今回改めてまじめに更新式を確認。
    • 勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。

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

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

Amazon.co.jp: Pythonで動かして学ぶ!あたらしい線形代数の教科書 eBook : かくあき: Kindleストア
Amazon.co.jp: Pythonで動かして学ぶ!あたらしい線形代数の教科書 eBook : かくあき: Kindleストア

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

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 | 斎藤 康毅 |本 | 通販 | Amazon
Amazonで斎藤 康毅のゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装。アマゾンならポイント還元本が多数。斎藤 康毅作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロから作るDeep Lea...

ゼロからはじめるPID制御

ゼロからはじめるPID制御 | 熊谷 英樹 |本 | 通販 | Amazon
Amazonで熊谷 英樹のゼロからはじめるPID制御。アマゾンならポイント還元本が多数。熊谷 英樹作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロからはじめるPID制御もアマゾン配送商品なら通常配送無料。

OpenCVによる画像処理入門

OpenCVによる画像処理入門 改訂第3版 (KS情報科学専門書) | 小枝 正直, 上田 悦子, 中村 恭之 |本 | 通販 | Amazon
Amazonで小枝 正直, 上田 悦子, 中村 恭之のOpenCVによる画像処理入門 改訂第3版 (KS情報科学専門書)。アマゾンならポイント還元本が多数。小枝 正直, 上田 悦子, 中村 恭之作品ほか、お急ぎ便対象商品は当日お届けも可能。...

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

恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門] | 金城俊哉 | 数学 | Kindleストア | Amazon
Amazonで金城俊哉の恋する統計学 恋する統計学。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみいただけます。

Pythonによる制御工学入門

Amazon.co.jp

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

Amazon.co.jp

コメント

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