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

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

バックナンバーはこちら。
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}
v_{t+1}&=&\beta_t+\alpha\nabla J(\theta_t)\\
\theta_{t+1}&=&\theta_t-av_{t+1}\\
v_t&:&モーメンタムベクトル\\
\beta&:&指数移動平均の性格を決定する係数。通常は0.9\\
\alpha&:&学習率\\
\end{eqnarray}
\)

太郎くん
太郎くん

指数移動平均ってなんだ?

フクさん
フクさん

過去の値よりも直近の値に比重を置いて計算された平均値だな。

太郎くん
太郎くん

なぜこの計算式でそうなるのかがわからん。

フクさん
フクさん

先ほどの式はいわゆる漸化式。
これを\(t-2\sim t+1\)で展開すると以下になる。

\(
v_{t+1}=\alpha\nabla J(\theta_t)+\beta\{\alpha\nabla J(\theta_{t-1}+\beta(\alpha\nabla J(\theta_{t-2}+\beta v_{t-2})))\}
\)

太郎くん
太郎くん

これを見てもわからん・・・。

フクさん
フクさん

ポイントは\(\beta v_{t-2}\)。
\(t+1\)の段階で見ると、ここには\(\beta\)が3回かかっていることになる。
つまり以下の値まで減衰している。

\(0.9\times0.9\times0.9=0.729\)

太郎くん
太郎くん

つまり、過去の値の影響が減るから、直近の値に比重が寄るってことか。

フクさん
フクさん

そうそう。
まぁ、実際の指数移動平均は以下なので、少し読み替える必要はあるけどね。

\(
{\rm EMA}(t)=\beta\cdot{\rm EMA}(t-1)+(1-\beta)\cdot x(t)
\)

太郎くん
太郎くん

あーなるほど。
基本は係数は\(\beta\)のみで数式が作られるのね。

まとめ

フクさん
フクさん

まとめだよ。

  • モーメンタムの更新式について確認。
    • 指数移動平均を利用して直近の値を重視する。
    • 実際の指数移動平均とは異なっているので、その点は注意。

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

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