MATLAB,Python,Scilab,Julia比較 第4章 その86【ユニット数増加①】

MATLAB,Python,Scilab,Julia比較 第4章 その86【ユニット数増加①】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その86【ユニット数増加①】

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

隠れ層のユニット数を増やすと?

太郎くん
太郎くん

以前、実験した多層パーセプトロンは隠れ層のユニット数が2つだったんだよね。

フクさん
フクさん

そうそう。
これを増やせば、分類の表現力が上がって、局所最適解にハマりにくくなる。
まぁ、ハマりにくくなるというより、大域最適解に近い局所最適解が増えると思った方が正しいのだけど。

太郎くん
太郎くん

なるほど。
局所最適解にハマるという意味では一緒なんだけど、
分類としては問題無い局所最適解が出てくるってことか。

フクさん
フクさん

だから、分類時の決定境界線も複数のパターンが出てくると思う。

実際のユニット数

太郎くん
太郎くん

で、具体的なユニット数はどうするの?

フクさん
フクさん

まぁ、元々が2つだったわけだから、
3つか4つだな。
ここでは4つくらいにしておこう。
構成を図示すると以下になる。

多層パーセプトロン隠れ層4ユニット
フクさん
フクさん

少し図が複雑になったので、バイアスや重みの表記は省略している。

太郎くん
太郎くん

理屈上は、これをもっと増やせるんだよな・・・。

フクさん
フクさん

入力層、出力層も増やせるから、とてつもなく複雑なこともできるはずってことだな。

フクさん
フクさん

そして、順伝播を無理やり行列演算的な表現にするとこんな感じになるな。

\(
y=
\sigma\Bigg(
\begin{bmatrix}
w_{211}&w_{212}&w_{213}&w_{214}&b_2
\end{bmatrix}
\begin{bmatrix}
\sigma\bigg(
\begin{bmatrix}
w_{111}&w_{112}&b_1\\
w_{121}&w_{122}&b_1\\
w_{131}&w_{132}&b_1\\
w_{141}&w_{142}&b_1\\
\end{bmatrix}
\begin{bmatrix}
x_1\\x_2\\1
\end{bmatrix}
\bigg)\\
1
\end{bmatrix}
\Bigg)
\)

プログラム的に調整するところ

太郎くん
太郎くん

で、プログラムとしてはどうなるの?
隠れ層を変えるわけだから、いろんなところが変わりそうな気がしてるんだけど?

フクさん
フクさん

MATLABコードでいうところの以下を変更すればOKなはずだ。

hidden_size = 2; % 隠れ層のユニット数

hidden_size = 4; % 隠れ層のユニット数
太郎くん
太郎くん

え?これだけ?

フクさん
フクさん

これだけ。

太郎くん
太郎くん

なんかこうもっと逆伝播の要素数を調整しないといけないとかいろいろありそうなもんだが・・・。

フクさん
フクさん

ベクトル、行列で演算が可能なツールや言語だと、そこらへんの辻褄合わせは楽なんだよね。
元々、要素数がいくつかは影響で無いように組むことが可能だ。

太郎くん
太郎くん

なるほど。
今回はその恩恵をバッチリ受けられるってことか。

フクさん
フクさん

あとは、プログラム上の変更ではないが、結果パターンが複数になることが想定されるので、
それらも確認する必要はあるな。

太郎くん
太郎くん

最初に言ってたやつだね。
どういうパターンが出てくるか知らんけど。

まとめ

フクさん
フクさん

まとめだよ。

  • 多層パーセプトロンの隠れ層のユニット数を増やす。
    • 表現力が上がるはず。
    • 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。
  • プログラム上の修正点確認。
    • ベクトル、行列演算ができるため修正範囲は極小。

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

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