MATLAB,Python,Scilab,Julia比較 第4章 その43【勾配降下法①】

MATLAB,Python,Scilab,Julia比較 第4章 その43【勾配降下法①】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その43【勾配降下法①】

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

【再掲】連鎖律を把握するための知識

太郎くん
太郎くん

多変量関数の連鎖律の話が終わったから、
また元の連鎖律を把握するフローに戻ってくる感じだね。

  • 逆数の微分公式(済)
  • 積の微分公式(済)
  • 商の微分公式(済)
  • シグモイド関数の導関数(済)
  • 多変量関数の連鎖律(済)
  • 勾配降下法
フクさん
フクさん

これで残りは勾配降下法のみだ。

勾配降下法

フクさん
フクさん

まず勾配降下法の概念的な説明だ。
目的変数と単純パーセプトロンの差を誤差\(E\)とし、
重みを\(W\)とする。
この二つのパラメータの関係をグラフにした場合、
以下の図のようなことをしたいのが勾配降下法。

勾配降下法、誤差E、重みW、現在値がここならWを増やす、現在値がここならWを減らす、ここに行きたい
太郎くん
太郎くん

つまり、誤差を最小化したいってことだよね。

太郎くん
太郎くん

でも、どうやって最小値に行くんだ?
値を振って探す感じ?

フクさん
フクさん

それだと、総当たり法とかわなくなっちゃうな。

太郎くん
太郎くん

そういうばそうか。
最小値が分かる方法があるってこと?

フクさん
フクさん

微分を使う。
微分は関数の傾きがわかる。
要は以下のことをすればOKだ。

  • \(\displaystyle \frac{dE}{dW}\)がマイナス(負の勾配)の場合は\(W\)を増やす。
  • \(\displaystyle \frac{dE}{dW}\)がプラス(正の勾配)の場合は\(W\)を減らす。
太郎くん
太郎くん

なるほど。
微分すれば良いのか。

太郎くん
太郎くん

って、どう微分するんだ?
単純パーセプトロンでも結構複雑そうだぞ・・・。

フクさん
フクさん

それを実現するために、前回までに「多変量関数の連鎖律」をやったわけだ

太郎くん
太郎くん

そうか。
「多変量関数の連鎖律」が分かるってことは単純パーセプトロン全体の導関数が分かるってことだから、
あらゆる点に於ける微分もわかるってことか。
厄介なシグモイド関数も導関数が分かってるし。

フクさん
フクさん

そこらへんの一連の流れを誤差逆伝播法と言ったりするな。
まぁ、実際は多層パーセプトロン以上のモデルで使う用語ではあるので、
単純パーセプトロンで使用する場合は、逆伝播という言い方に留めておこう。

太郎くん
太郎くん

名前は聞いたことあるぞ。

何を試すのか

太郎くん
太郎くん

で、その逆伝播ってのを早速試してみる感じになるのかな?

フクさん
フクさん

そうしたいのだが、
その前に勾配降下法のみの実験をやってみるつもりだ。
勾配降下法ならではの問題もあるしね。

太郎くん
太郎くん

(毎度のことながら不穏だな・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • 勾配降下法に概念レベルの説明。
  • 連鎖律含めた一連の流れを誤差逆伝播法と言う。
    • ただし、単純パーセプトロンの段階では逆伝播という言葉にしておく。
  • まずは勾配降下法のみの実験をやってみる。

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

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