MATLAB,Python,Scilab,Julia比較 第4章 その85【非線形分類の問題点②】

MATLAB,Python,Scilab,Julia比較 第4章 その85【非線形分類の問題点②】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その85【非線形分類の問題点②】

バックナンバーはこちら。
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ユニット成功パターン誤差関数
太郎くん
太郎くん

これはキレイに推移してるね。
誤差関数もほぼ0へ収束しているし。

フクさん
フクさん

そうだね。
理想的な推移と言って良いだろう。

分類失敗パターン

フクさん
フクさん

次は問題の分類失敗パターンだ。
決定境界線と誤差関数の推移は以下になる。

非線形分類2ユニット失敗パターンアニメ
非線形分類2ユニット失敗パターン誤差関数
太郎くん
太郎くん

これは・・・完全に失敗してるね・・・。

フクさん
フクさん

誤差関数としては収束はしているが、
0には至ってないな。
つまり局所最適解にハマってる。

太郎くん
太郎くん

これはエポック数を増やしても解決する感じは無いね・・・。

フクさん
フクさん

というわけで、推移が見えれば原因も分かり易くなるってことだな。

対策

太郎くん
太郎くん

で、対策は何があるの?

フクさん
フクさん

対策は大きく2つある。

  • 隠れ層のユニット数を増やす
  • 勾配降下法を拡張した最適化アルゴリズムを採用する
太郎くん
太郎くん

一個目はすぐ対策はできそうだけど、
二個目はわからんな・・・。

フクさん
フクさん

結論としては一個目で対策可能なはずだ。
二個目はもっと複雑なネットワークな場合に有効な手法だな。

太郎くん
太郎くん

ということは一個目だけやる感じ?

フクさん
フクさん

折角だから二個目もやってしまおう。
どういう最適化アルゴリズムがあり、どのような効果が期待できるかは知っておいた方が良いと思う。

太郎くん
太郎くん

まぁ、AI技術としては一般的な話っぽいからやれるときにやってしまった方が良いのか・・・。

まとめ

フクさん
フクさん

まとめだよ。

  • 非線形分類が失敗する原因を特定するため決定境界線と誤差関数の推移をモニタ。
  • 案の定、局所最適解にハマってる。
    • つまりエポック数を増やしても対策にはならない。
  • 隠れ層のユニット数を増やす、最適化アルゴリズムを使用するのが対策案。

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

Pythonで動かして学ぶ!あたらしい線形代数の教科書

Amazon.co.jp

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

Amazon.co.jp

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

OpenCVによる画像処理入門

https://amzn.to/498ZUgK

恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]

Amazon.co.jp

Pythonによる制御工学入門

Amazon.co.jp

理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析

https://amzn.to/3UAunQK

コメント

タイトルとURLをコピーしました