MATLAB,Python,Scilab,Julia比較 第4章 その42【多変量関数の連鎖律⑥】

MATLAB,Python,Scilab,Julia比較 第4章 その42【多変量関数の連鎖律⑥】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その42【多変量関数の連鎖律⑥】

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

【再掲】多変量関数の連鎖律を把握するための知識

太郎くん
太郎くん

とりあえず多変量関数の連鎖律を把握するための知識を再掲。

  • 合成関数(済)
  • 合成関数の微分(連鎖律)(済)
  • 多変数関数の連鎖律(済)
  • 学習データの多入力による暗黙的関数追加
フクさん
フクさん

今回は学習データの多入力による暗黙的関数追加の話になる。

暗黙的に追加される関数

フクさん
フクさん

実は、ニューラルネットワークの学習を想定した場合、
暗黙的に追加される関数がある。

太郎くん
太郎くん

どんな関数?
なんか必要な関数が思付かないけど。

フクさん
フクさん

入力データ群だな。

太郎くん
太郎くん

入力データは入力データであって関数じゃないような?

フクさん
フクさん

入力データが1個なら問題ない。
ただ、今回の単純パーセプトロンだけで考えても4種類の入力パターンがある。

太郎くん
太郎くん

単純パーセプトロンにやらせるのは、たしかANDゲートとかのはずだから、
真理値表の4パターンの入力のことか?!

フクさん
フクさん

そうそう。

フクさん
フクさん

機械学習の学習パターンは大きく3つある。

  • 一つずつデータを入れるオンライン学習
  • 一括でデータを入れるバッチ学習
  • 学習データを小さなグループに分けてから入れるミニバッチ学習
フクさん
フクさん

今回の場合は、学習データが4つと少ないため、一括で学習データを入れる方が効率的。
つまりバッチ学習が該当する。
まぁ、ミニバッチ学習でも一度に複数の学習データを入れる以上、同じ問題にはなるけどね。

実際に追加される関数

フクさん
フクさん

実際に追加される関数を書き出そう。
こんな形になり、\(X\)という関数が増えるイメージになる。

\(
\begin{eqnarray}
X&=&
\begin{bmatrix}
x_{11}&x_{12}\\
x_{21}&x_{22}\\
x_{31}&x_{32}\\
x_{41}&x_{42}
\end{bmatrix}\\
WX+b&=&
\begin{bmatrix}
x_{11}&x_{12}\\
x_{21}&x_{22}\\
x_{31}&x_{32}\\
x_{41}&x_{42}
\end{bmatrix}
\begin{bmatrix}
w_1\\
w_2
\end{bmatrix}+b=
\begin{bmatrix}
w_1x_{11}+w_2x_{12}+b\\
w_1x_{21}+w_2x_{22}+b\\
w_1x_{31}+w_2x_{32}+b\\
w_1x_{41}+w_2x_{42}+b
\end{bmatrix}
\end{eqnarray}
\)

太郎くん
太郎くん

確かに関数と言えば関数になるのか。

フクさん
フクさん

まぁ、実際に演算する場合、
重みで微分すると重みは消えて、入力しか残らないから
足し算の数がふえるだけなんだけどね。

太郎くん
太郎くん

あー、確かにそれはなんとなくわかる。

まとめ

フクさん
フクさん

まとめだよ。

  • ニューラルネットワークの学習を想定した場合、暗黙的に追加される関数として入力群がある。
    • イメージ的に1層増える感じになる。
    • これはバッチ学習、ミニバッチ学習時の起きる現象。
  • と言っても、微分すると重みが消えるので足し算に化ける。

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

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