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

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

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

勾配降下法をプログラム的に確認する方法

太郎くん
太郎くん

前回、勾配降下法の実験をするって言ってけど、
何をするの?

フクさん
フクさん

勾配降下法の利用シーンはニューラルネットワークの学習などではあるが、
概念自体は関数の最小値の探索だ。
つまり、適当な関数を定義して、極小値目指して下っていく感じが見れればOK。

太郎くん
太郎くん

その適当な関数とは・・・。

フクさん
フクさん

とりあえず、こんな関数かな。

\(
\displaystyle f(x)=\sin(5x)+\frac{x^2}{2}
\)

フクさん
フクさん

三角関数と二次関数を合成したものだな。
波形としては以下になる。

三角関数と二次関数の合成
太郎くん
太郎くん

すげぇナミナミしてんなぁ・・・。

フクさん
フクさん

傾きを知るためには導関数が必要だ。
先ほどの関数の導関数がこれ。

\(
f(x)=5\sin(5x)+x
\)

フクさん
フクさん

三角関数の導関数を求める証明もあるのだが、
今回の本筋ではないので、この証明は省略だ。

太郎くん
太郎くん

(いきなりそんなんツッコまれても困る・・・。)

プログラムの流れ

太郎くん
太郎くん

で、プログラムの流れとしてはどうなるの?

フクさん
フクさん

以下の流れだな。

  • 目的関数の定義
  • 目的関数の導関数の定義
  • 入力初期値設定
  • ハイパーパラメータの設定
  • 勾配降下法の実装
  • 結果表示
  • グラフへのプロット
太郎くん
太郎くん

まぁまぁやることあるな・・・。

フクさん
フクさん

まぁ、「目的関数の定義」と「目的関数の導関数の定義」は
先ほどの関数とその導関数の話だ。
「入力初期値」、「ハイパーパラメータ」は少し説明が必要かもね。
「勾配降下法の実装」以降は上記を利用して実際に処理するところ。
「結果表示」は学習結果。
グラフへのプロットもそのままではあるが、
ある程度の学習過程が分かるようなプロット方法で実装する予定だ。

下の流れだな。

太郎くん
太郎くん

(途中から何言ってるのかわからんかったけど、フクさんが実装してくれるなら別にいいか・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • 勾配降下法をプログラム的に確認する方法としてニューラルネットワークではなく、任意の関数に試す方法がある。
    • 三角関数と二次関数を合成したもので試す。
  • プログラムのフローを記載。

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

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