MATLAB,Python,Scilab,Julia比較 第4章 その9【形式ニューロン⑦】

MATLAB,Python,Scilab,Julia比較 第4章 その9【形式ニューロン⑦】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その9【形式ニューロン⑦】

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

【再掲】形式ニューロンへ至る道

太郎くん
太郎くん

まずは、形式ニューロンへ至る道を再掲。

  • ヘヴィサイド関数(済)
  • 形式ニューロン(済)
  • 分類問題のHelloWorld(済)
  • 誤差関数(済)
  • 決定境界直線(済)
  • 決定境界直線の特定方法(済)
  • 総当たり法による分類
フクさん
フクさん

今回は総当たり法による分類について説明する。

総当たり法

フクさん
フクさん

総当たり法の説明をするが・・・。

太郎くん
太郎くん

ロードマップの最後だね

フクさん
フクさん

これはもう名前の通りなんだよね・・・。

太郎くん
太郎くん

まぁ、そうだろうとは思ったけど・・・。

フクさん
フクさん

・・・。

太郎くん
太郎くん

・・・

フクさん
フクさん

・・・。

太郎くん
太郎くん

なんか説明無いの?!
気を付けるところとか!?

総当たり法を実施する条件

フクさん
フクさん

特に注意点も無いんだよなぁ。
まぁ、今回実施する条件を確認しておこう。

太郎くん
太郎くん

プログラム化するから、何かしらの条件は必要そうだよね。

フクさん
フクさん

決めるのは以下。

  • 入力とそれに対する期待される結果
  • 動かすパラメータ
  • 値を振る範囲
  • 値の刻み
太郎くん
太郎くん

「入力」と「期待される結果」は、ANDゲートの真理値表だよね。
パラメータは\(w_1,w_2,b\)とか?

フクさん
フクさん

そうそう。

フクさん
フクさん

値を振る範囲は-4~4の範囲にしておこう。
値の刻みは細かすぎても時間がかかるだけだらか0.1くらいが良いだろう。

プログラムの流れ

太郎くん
太郎くん

これでプログラムを作れる情報はそろったのかな?

フクさん
フクさん

そうだね。
あとはフローを記載しておこう。

  • 入力データセットの定義
  • 出力データセットの定義
  • パラメータ変数の定義(重み、バイアス)
  • 学習率定義
  • 重みとバイアスの総当たり計算(ループ)
    • 重みとバイアスを使用して予測値を算出
    • 損失の計算
    • 損失の更新
    • 最も損失が小さいパラメータの記憶
  • 学習結果の表示
  • 出力結果の確認
太郎くん
太郎くん

まあまあ処理することはあるな・・・。

フクさん
フクさん

コード量は大したことないが、
3重ループを形成することになるはずだ。

太郎くん
太郎くん

3重ループってことはfor文が3段ネストするってこと?

フクさん
フクさん

そうそう。
このネストの数は値を振るパラメータの数に依存する。
今回だと\(w_1,w_2,b\)の3つパラメータの値に対しで全域で振るんで3重ループになる。

太郎くん
太郎くん

そうか。
総当たりで、片っ端から試し打ちするから、そういうことになるのか。

フクさん
フクさん

というわけで、次回以降はこれをプログラムで実現する話に突入だ。

まとめ

フクさん
フクさん

まとめだよ。

  • 総当たり法について解説・・・と思いきや、名前のまんま。
    • プログラム化の前提だけ決めた。
  • 実際のプログラムのフローを記載。

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

コメント

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