Python 機械学習プログラミング 第2章 分類問題
パーセプトロン
ニューロンは複数の入力値に対して重みをつけることによって、計算結果を導き出す。
その計算結果が設定されたしきい値(θ)を超えていたら出力、超えていなければ出力しない。
このような複数の入力変数に対して、二値分類(Yes or No)を行うことがニューラルネットワークでは可能である。
φ(z)はzがしきい値を超えていたら1、超えていなければ1を出力するといったような
関数だとすると、zの条件はz >= θ or z < θ
となる。
この式を変形して、z - θ >= 0 or z - θ < 0
といった条件式にすることが一般的である。
この場合、入力値をx/重みベクトルをwとしているときに、x0 = 1/w0 = - θとする。
(本来は0の入力値は存在せず、1からのスタートになるが式変形のため0の入力値が存在する関係式が一般的になっている。)
バイアス=閾値
エポック数(Epochs)
一つの訓練データを何回繰り返して学習させるか
過学習などもあるので、適切なエポック数で学習させる必要がある。
超平面
ある次元において、範囲を2分できるものを超平面と呼ぶ。
一次元は数直線で表される。これを2分するものは点である。
二次元は平面で表される。これを2分するものは直線である。
三次元は空間で表される。これを2分するものは平面である。
このようにある次元において範囲を2分できるものを超平面と呼ぶ(ざっくり)
そして線形分離可能というのは、あるデータプロットにおいて1のパターンと2のパターンで分離することが可能であるということである。
W、重みはそのパラメータの重要度である。
勾配法では学習率が大きい場合、値が発散してしまう。
その場合はxを標準化する。
標準化は平均値を引いて、標準偏差で割る。
よくある手法。
これに学習率を0.01として、値を求めていく。