MATLAB,Python,Scilab,Julia比較 第4章 その113【最適化アルゴリズム⑫】

MATLAB,Python,Scilab,Julia比較 第4章 その113【最適化アルゴリズム⑫】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その113【最適化アルゴリズム⑫】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia4-backnumber/

はじめに

前回までで各ツール、各言語による最適化アルゴリズムAdamを試したところ。
Adamならではの分類結果が出てきたのでそれの確認を行う。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

Adamならではの結果

太郎くん
太郎くん

一応、Adamの動作も確認できたから一通りやり切ったって感じかな。

フクさん
フクさん

そうだね。
今回は、Adamならではの分類が出てきたのでそれを確認しておこう。

太郎くん
太郎くん

確かに、勾配降下法やモーメンタムでは見れなかった分類結果が出てたね。

フクさん
フクさん

この感じだな。

Adam分類結果(MATLAB)
太郎くん
太郎くん

斜めに分ける感じがほとんどだったのに対して、
Adamでは4つの四角で分類された感じで、
これはこれでキレイな分類って感じがする。

Adamの分類をアニメーションで。

フクさん
フクさん

分類の過程をアニメーションgifにしてみた。
そのgifを張っておこう。

Adam分類結果(MATLAB)アニメーション
太郎くん
太郎くん

ほう!
こんな過程で分類されてたのか!

フクさん
フクさん

最初は単純に直線分類しようとしてるが、
それが難しくなった際に別のセグメントを引っ張り出している。
あとは、可能な限り各点から離れた位置に決定境界線を引けるように学習している感じだな。

太郎くん
太郎くん

しかし、Adamだけなぜこんなのが出てきたんだろう?

フクさん
フクさん

明確にはわからないが、
誤差関数の値は通常だと0.25あたりと開始として、
そこから徐々に落ちてくるのが勾配降下法とモーメンタムの挙動だった。
対して、Adamが今回のような結果を出すときは、一旦0.4まで跳ね上がってるというのはある。
これの影響で大域最適解に至れるルートを見るけられたというのはあるかもね。

太郎くん
太郎くん

大域最適解を特定するもの単純にはいかないってことか。

フクさん
フクさん

これがもっと複雑なネットワークになった際に、Adamのこの特性が強く利いてくるのだと思うよ。

まとめ

フクさん
フクさん

まとめだよ。

  • Adamだけで出てくる分類結果を確認。
    • 四角形で分類する理想的な形状。
  • この分類結果になる場合は、誤差関数の値が一気に跳ね上がる時。
    • これにより大域最適解を引き当てやすくなる。

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

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