MATLAB,Python,Scilab,Julia比較 第4章 その27【連鎖律の前準備①】

MATLAB,Python,Scilab,Julia比較 第4章 その27【連鎖律の前準備①】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その27【連鎖律の前準備①】

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

総当たり法に代わるもの

太郎くん
太郎くん

これで分類問題は完璧!

フクさん
フクさん

んなわけない。

太郎くん
太郎くん

だよねー。

太郎くん
太郎くん

総当たり法はあまり効率的とは言え無さそうだもんね。

フクさん
フクさん

というわけで、今回からは総当たり法に代わるものとして
最適化アルゴリズムを使用する。

最適化アルゴリズム

太郎くん
太郎くん

最適化アルゴリズムってなんぞ?

フクさん
フクさん

損失を最小にするためのアルゴリズムだな。
総当たり法も広義では最適化アルゴリズムに該当はするが、
一般的には連鎖律を用いてパラメータを調整する手法になる。

太郎くん
太郎くん

連鎖律とかまた意味わからんワードが・・・。

連鎖律

フクさん
フクさん

連鎖律については、恒例のWikipediaの引用。

微分法において連鎖律(れんさりつ、英: chain rule)あるいは合成関数の微分公式とは、複数の関数が合成された合成関数を微分するとき、その導関数がそれぞれの導関数の積で与えられるという関係式のこと。

Wikipediaより(https://ja.wikipedia.org/wiki/%E9%80%A3%E9%8E%96%E5%BE%8B)
太郎くん
太郎くん

微分イヤーーー!!

フクさん
フクさん

まぁ、この手のモノにアレルギー持ってる人は多いよね。

太郎くん
太郎くん

というか連鎖律がこの文面見てもさっぱりなんだけど・・・。

フクさん
フクさん

一言でまとめると、
「複数の関数が繋がって出来てるシステムも、この導関数が分かっていれば微分結果が一発でわかる」
ってことだな。

太郎くん
太郎くん

一言でまとめてもらっても意味わからん。

フクさん
フクさん

ニューラルネットワークって、
入力層、隠れ層、出力層に分かれるのだけど、
出力層と期待値の差である損失の変化が分かれば、隠れ層、入力層の変化もわかるって仕掛けだな。
ただし、問題点としては、変かさせたいのは入力や隠れ層に対しての入力ではなく、重みやバイアス。
つまり、重みとバイアスの変位と損失の変位の関係性の方が重要になる。
一つずつやると確かに複雑なのだが、連鎖律を利用するとシンプルになる。
だから連鎖律が重要。
って感じ。

太郎くん
太郎くん

何一つ伝わって来ないないけど、重要そうってことだけはわかった・・・。

フクさん
フクさん

そして、連鎖律に重要なのが導関数。
逆に導関数さえ分かっていればチョロい。
しかし問題としては、損失、活性化関数、各層の入力の導関数を求める必要があって、
特に活性化関数が厄介。
今回はシグモイド関数を使用するので、シグモイド関数の導関数を求める必要がある。

太郎くん
太郎くん

魔境の臭いしかしない・・・。

フクさん
フクさん

まぁ、具体的な進め方は次回説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 総当たり法では非効率なので最適化アルゴリズムを使用する。
  • 最適化アルゴリズムを使用するには連鎖律が必要。
  • 連鎖律を利用するには損失、活性化関数、各層の入力の導関数を求める必要がある。

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

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