機械学習その1:パーセプトロン

単純パーセプトロン

単純パーセプトロンとは、脳のニューロンのネットワークを模倣して考案されたニューラルネットワークの一種であり、出力は\( y=f(\sum_i^N x_i w_i -h) \)と表される。ここで関数\(f\)は、以下を満たす関数(ステップ関数)である。

$$
\begin{eqnarray}
f(x)=\left\{ \begin{array}{ll}
1 & (x\geq0) \\
0 & (x<0) \\
\end{array} \right.
\end{eqnarray}
$$

これは、\(x_i\)を正規直交基底にとった\(N\)次元空間に超平面をとって分類していることと等価となる。よって、このような超平面で線形分離できない問題に対しては分類できないことになる。

学習

教師信号\(t\)に対して学習を行うことを考える。\(y=t\)のときは重み\(w_i\)や閾値\(h\)を変更する必要がないが、\(y=0\ (1)\)かつ\(t=1\ (0)\)のときは閾値\(h\)を小さく(大きく)、\(x_i\)に対する重み\(w_i\)を大きく(小さく)する必要がある。一般的には
$$
\delta w_i = \eta (t-y)x_i
\delta h = \eta (t-y)
$$
だけ変化させる。ただし\(\eta\)は学習率であり、通常\(0<\eta \leq1\)を用いる。

多層パーセプトロン

次に線形超平面で識別できない分類を行いたいが、そこで考えられたのが中間層の追加である。入力の次元と同一次元の中間層を入れたとしても結局それは線形写像になるため、非線形的な分類はできないが、次元を増やせばそれが可能になる。(このページがわかりやすい)