バックナンバーはこちら。
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
非線形分類時の問題

多層パーセプトロンことニューラルネットワークでの非線形分類もバッチリな感じだね。

一見するとそうだな。

なんか含みがある言い方だな・・・。

実は現状の多層パーセプトロンだと一定の確率、およそ20%くらいで分類が失敗する。

え゛

ここは分類の成功パターンと失敗パターンを見てもらった方が早いな。
非線形分類の成功パターン

まずは成功パターン


これは前回までで見てきたパターンだね。

かなり理想的に分類できていると言って良いだろう。
非線形分類の失敗パターン

そして、問題の失敗パターンはこれになる。


これは・・・。
分類できてない・・・。

これが一定の割合で発生するって感じだな。

発生すると言っても何が原因なのかもわからないから
対策の打ちようもないような・・・。

まぁ、ある程度推測はできるし、一般的な対策方法もあるから、
それを試してみるというのもありかな。

その一般的な対策をやってみるって感じ?

折角だから、その前にもう少し状況をモニタしたいところだな。
失敗パターンのモニタ方法

で、どうやってモニタするの?

シンプルなのは誤差関数の収束度合いの確認だな。
確認のポイントは以下だな。
- 最小値になっているか。
- 収束しているか、振動しているか。

最小値且つ収束になっていなければ、局所最適解にハマってるって感じかな。

そうだね。
振動しているようであれば、学習の回数であるエポック数が足りないとかになるな。
まぁ、今回の場合だと局所最適解にハマってるパターンだと思うけど。

これで状況の確認ができるってことか。

あとは、決定境界線の推移をアニメーションで見れるようしておくと分かり易いかもしれない。

分類に至るまでの過程が見えそうだね。

ここら辺を次回までに準備しておこう。
まとめ

まとめだよ。
- 非線形分類をしたが実は問題が発生している。
- 20%くらいの確率で分類ができない。
- 原因がわかるように誤差関数の推移や決定境界線の推移のアニメーションを見てみる予定。
バックナンバーはこちら。
Pythonで動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント