パーセプトロン
一個だけの機械学習だと、表現力低いから使い物にならない クラス分け問題
方法
重みベクトル(分ける線に対して90度)とxベクトルの内積の正負が、2つのベクトルが同じ側をむいているかどうかを表す 同じ側を向いていない=内積が負だったら、重みベクトルをxベクトル+重みベクトルに更新 これを全データーでやる
-.icon
https://gyazo.com/b6d97b5044e365fbd199e5ad640c28df
パーセプトロンの表し方は二種類ある
一つは、上の画像みたいに、Biasをインプットの一つ(値は常に1)にして、その重みがbiasになるというもの
もう一つは、バイアスをパーセプトロンの内部値として持つタイプ
前者の方が多く使われるらしい
AND operatorとかも、パーセプトロンで表現できる↓
https://gyazo.com/660547594d166dc10842e35259f6aa74
↑のみたいなパーセプトロンを組み合わせるとXOR↓が作れる、シンプルなニューラルネットワーク?
https://gyazo.com/13466e726789c384109cf416f69805fb
https://gyazo.com/74288a41436b7541a6f8eb6738ea0021
なぜなら、離散値だと少し動かした時に変化が起きないから シグモイド関数だと、xの値がある程度大きいとgradient(errorに使う値)がほとんど0になってしまう
ReLUは、正の値なら直値をそのまま返す、つまりgradientは1になる
Tanhはもうちょい複雑、でもシグモイド関数より良い感じのgradientを返す