MATLAB,Python,Scilab,Julia比較 第4章 その104【最適化アルゴリズム③】

MATLAB,Python,Scilab,Julia比較 第4章 その104【最適化アルゴリズム③】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その104【最適化アルゴリズム③】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia4-backnumber/

はじめに

Adamに至るまでの最適化アルゴリズムの系譜の説明をすることとなった。
今回はRMSprop。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

最適化アルゴリズムいろいろ【再掲】

太郎くん
太郎くん

まずは説明予定の最適化アルゴリズムを再掲。

  • AdaGrad(済)
  • RMSprop(Root Mean Square Propagation)
  • AdaDelta
  • Adam(Adaptive Moment Estimation)
フクさん
フクさん

今回はRMSprop。

RMSprop

フクさん
フクさん

RMSpropは前回のAdaGradの改良版という位置づけになる。
AdaGradとRMSpropの両方の更新式を出そう。

AdaGrad

\(
\begin{eqnarray}
g_{t+1}&=&g_t+(\nabla J(\theta_t))^2\\
\displaystyle\theta_{t+1}&=&\theta_t-\frac{\alpha}{\sqrt{g_{t+1}}+\epsilon}
\end{eqnarray}
\)

RMSprop

\(
\begin{eqnarray}
E[g^2]_t&=&\beta E[g^2]_{t-1}+(1-\beta)(\nabla J(\theta_t))^2\\
\displaystyle\theta_{t+1}&=&\theta_t-\frac{\alpha}{\sqrt{E[g^2]_t+\epsilon}}\\
E[g^2]&:&過去の勾配の2乗の指数移動平均\\
\end{eqnarray}
\)

太郎くん
太郎くん

なんかEの配列みたいなのがいる・・・。

フクさん
フクさん

\(E[g^2]\)は、それで一つの変数と思えばOKだ。
指数移動平均の処理を入れるためか、期待値という意味合いで\(E[g^2]\)と表記しているようだな。

太郎くん
太郎くん

とすると、かなりAdaGradと似てるね。
違いは、今言ってた指数移動平均を取ってる部分か。

フクさん
フクさん

そうそう。
AdaGradは学習が進むと学習率がほぼ0になってしまうのだけど、
これは過去の勾配の二乗が累積し続けているせい。
ここを指数移動平均にすることで、過去の勾配の影響を減らして、現在の勾配の影響度を増やす意味になる。

太郎くん
太郎くん

とすると、かなりAdaGradと似てるね。
違いは、今言ってた指数移動平均を取ってる部分か。

フクさん
フクさん

そうそう。
この点がAdaGradからの改良点と言えるのだろう。

まとめ

フクさん
フクさん

まとめだよ。

  • RMSpropについて説明。
  • AdaGradの完了版であるため、AdaGradと更新式を比較。
  • AdaGradでは2次の勾配の累積だったものが、2次の勾配の指数移動平均に。
    • これにより、極小値近辺やプラトーになっても更新を続けられる。

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

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