【入門】最適化アルゴリズム①【数値計算】

【入門】最適化アルゴリズム①【数値計算】 数値計算
【入門】最適化アルゴリズム①【数値計算】

AdaGrad

まずは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}
\)

比較対象としてモーメンタムの更新式も載せておこう。

\(
\begin{eqnarray}
v_{t+1}&=&\beta v_t+\alpha\nabla J(\theta_t)\\
\theta_{t+1}&=&\theta_t-\alpha v_{t+1}
\end{eqnarray}
\)

AdaGradの方は勾配を2乗を足し続けてる。
そのあとに平方根を取ってるため、元のスケールに戻してるが、符号は正になる。
モーメンタムでは掛けていたのに足して、
割ってる点が大きな違い。
つまり、モーメンタムでは学習率を引き上げるために使用していたのに対して、
AdaGradでは学習率の抑制のために使用していることになる。

結果として、過去の勾配を累積し、徐々に学習率を落としていく。
そして、学習が進むと学習率が極端に小さくなる欠点がある。

勾配の2乗を累積するため、\(g_t\)は常に大きくなり続ける。
その結果、更新の幅がどんどん小さくなって、最後は動かなくなる。

シンプルな学習だとかなり早い収束をする可能性はある反面、
変にステップが掛かると更新しなくなっちゃうのが欠点ってことになる。

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[ ]で表現されるのは期待値という意味合いになる。

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

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

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

プラトーや極小値近辺だと、勾配が小さくなるはずだから、
その状態でも学習が止まることは防げることになる。
この点がAdaGradからの改良点と言えるのだろう。

まとめ

  • もう一個試す予定の最適化アルゴリズムAdamへ至る系譜を説明予定。
  • AdaGradについて説明。
    • 更新式をモーメンタムと比較。
  • RMSpropについて説明。
    • AdaGradの完了版であるため、AdaGradと更新式を比較。

MATLAB、Python、Scilab、Julia比較ページはこちら

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