総当たり法
総当たり法の説明をするが・・・。
これはもう名前の通り。
値を総当たりで振って解を求める。
ただし、条件のようなものは設定する必要がある。
総当たり法を実施する条件
今回実施する条件を確認しておこう。
決めるのは以下。
- 入力とそれに対する期待される結果
- 動かすパラメータ
- 値を振る範囲
- 値の刻み
「入力」と「期待される結果」は、ANDゲートの真理値表。
パラメータは\(w_1,w_2,b\)になる。
値を振る範囲は-4~4の範囲にしておこう。
値の刻みは細かすぎても時間がかかるだけなので0.1くらいが良いだろう。
プログラムの流れ
これでプログラムを作れる情報はそろった。
あとはフロー記載しておこう。
- 入力データセットの定義
- 出力データセットの定義
- パラメータ変数の定義(重み、バイアス)
- 学習率定義
- 重みとバイアスの総当たり計算(ループ)
- 重みとバイアスを使用して予測値を算出
- 損失の計算
- 損失の更新
- 最も損失が小さいパラメータの記憶
- 学習結果の表示
- 出力結果の確認
コード量は大したことないが、
3重ループを形成することになるはずだ。
つまり、for文が3段ネストする。
このネストの数は値を振るパラメータの数に依存する。
今回だと\(w_1,w_2,b\)の3つパラメータの値に対しで全域で振るんで3重ループになる。
というわけで、次回以降はこれをプログラムで実現する話に突入。
まとめ
- 形式ニューロンを把握するためのロードマップを提示。
- ヘヴィサイド関数、形式ニューロン、誤差関数、決定境界直線、総当たり法について解説。
- 実際のプログラムのフローを記載。
MATLAB、Python、Scilab、Julia比較ページはこちら
コメント