この記事の読者
Index
パーセプトロンとは
パーセプトロン( Perceptron ) は、1957年にローゼンブラット(Rosenblatt)というアメリカの研究者によって考案され、
ニューラルネットワークの起源となるアルゴリズム.
複数の信号を入力として、ひとつの信号を出力するアルゴリズムになるが、
ここでの「信号」は電流や川のような「流れ」をイメージするのが良い.
出力は、後続の信号を先に「流す / 流さないか (1 / 0)」 の二値.
分類問題としては、二値分類となる.
アルゴリズム
上図は以下の場合のパーセプトロンになる.
- 入力 : x1、x2
- 出力 : y
(図中の○は「ニューロン」や「ノード」と呼ばれるもの)
重み / Weight
図中のw1、w2は重みパラメータと呼ばれ、入力に乗算する.
このパラメータが更新されることで出力が変更される.
各入力の信号の重要性をコントロールする要素.
つまり、重みが大きくなるほど、その重みに対応する信号の重要性が高くなる.
(w は weight)
閾値 / Threshold
各入力 x に対応する重み w を乗算した値の総和を 中間出力 h としたときに、 と比較する値.
最初に決定しておくパラメータなので、ハイパーパラメータとなる.
出力 / Output
各入力 x に対応する重み w を乗算した値の総和を 中間出力 h としたときに、
が閾値 を超えか超えないかによって出力 y を決定する.
行列で表現すると以下のよう.
定式化 / Formulation
上図の例だと、以下の式.
(0 ではなく、-1とすることで都合が良いケースもある)
一般化
入力ベクトル 、重みベクトル、出力 y としたとき
は特徴量ベクトル、 は非線形活性化関数 のステップ関数.
最適化 / Optimization
重みパラメータw をどのように更新して、最適化するのか
パーセプトロン規準
以下のような誤差関数を設ける.
(ここで、誤差関数とはパラメータを最適化するために設定する指標として考える.)
そこでクラス とクラス の2クラスを考える.
- 各クラスは入力ベクトル の集合 ()
- クラス は出力を 1 として出力するべきクラス、クラス は出力を -1 として出力するべきクラス
クラス に属する に対する誤差 を となるように、
クラス に属する に対する誤差 を となるように
を更新する.
このように考えると、誤差関数はこのようにも表せる.
- M は誤分類された入力ベクトルの集合
-
これの誤差関数をパーセプトロン規準と呼ぶ.
確率的勾配降下法
上で定義した誤差関数を、確率的勾配降下法で、を最適化する.
まとめ
- いくつかの入力 x に対して、信号を流すかどうかを決定する
- 重みパラメータと、予め決めた閾値 によって出力 y が決定する
- 重みパラメータが更新されることで、出力 y の精度を向上させる