パーセプトロンの定義
📂機械学習パーセプトロンの定義
정의
線形関数 f(x)=wx+bと単位ステップ関数 Hの合成をパーセプトロンperceptronと定義する。
Perceptron:=H∘f(x)=H(wx+b)
多変数関数の場合、f(x)=w⋅x+b=w1x1+⋯wnxn+bであり、
Perceptron:=H∘f(x)=H(w⋅x+b)
特にこれを単層パーセプトロンsingle layer perceptronとも呼ぶ。
説明
パーセプトロンは1957年にローゼンブラットによって考案された最初の教師あり学習モデルだ。機械学習では、重みやバイアス、活性化関数などと入門者が理解しづらい説明をするが、ただの線形関数とステップ関数の合成にすぎない。重みは線形項の係数、バイアスは定数項を意味する。
ここで単位ステップ関数は便宜上の定義による。
H(x)={10x>0x<0orH(x)={1−1x>0x<0
また、Hの位置に単位ステップ関数が入る必要はなく、活性化関数として使われるものであれば問題ない。したがって、一般的に定義すると、パーセプトロンとは線形関数と活性化関数の合成である。
その値が0より大きいか小さいかによって分類されるので、基準となる場所を見つければいい。そのためには式を整理して、次のような結果を得る。
⟹⟹w1x1+w2x2+bw2x2x2=0=−w1x1−b=−w2w1x1−w2b
これは2次元平面での直線の方程式と同じだ。入力データがN次元の場合は次のように表せる。
y^=φ([bw1…wN]T[1x1…xN])=φ(wTx)
したがって、パーセプトロンの学習目標は、以下の図のように2種類のデータを区別できる線を引くことである。

すると、重みベクトルwは次の図のように表される。

この図のように、wとすべての青い点との角度が90度以内ならば内積の値が正であり、すべての緑の点との角度が90度より大きいので内積の値が負になる。したがって、こうした条件を満たすwは一意ではない。このように、パーセプトロンが以下の図のようにデータを区別する線を描くことができる場合を線形分離可能という。

学習方法
学習方法は単純だ。n番目の入力データx(n)が−1で分類されるべきだが、結果がy^(n)=φ(wT(n)x(n))=1であったとしよう。これは現在の重みに対してwT(n)x(n)が正であることを意味し、パーセプトロンが正しく予測するにはwT(n)x(n)の値が負になる必要がある。したがって、wT(n)x(n)から何らかの値を引く形で更新すればいい。これを入力データx(n)に依存させると、次のように重みの更新を表すことができる。
⟹wT(n+1)x(n)w(n+1)=wT(n)x(n)−ηxT(n)x(n)=w(n)−ηx(n)
この時、η>0は学習率と呼ばれる定数だ。同じ方法で、+1のxを−1と予測した反対の場合は、次のように重みを更新すればいい。
w(n+1)=w(n)+ηx
この2つの場合を一度に表すことが次のようにできる。
w(n+1)=w(n)+ηy(n)x(n)
この時、y(n)はx(n)のラベル(正解)だ。実際に、パーセプトロンが2次元、3次元データに対して学習する過程をGIFで見ると、次のようになる。

