結合荷重の学習ルール
生物の神経回路網モデルでは、シナプスの結合荷重を変更することを神経回路網の学習と呼びますが、学習時にどの様に結合荷重を変更するかを記述したルールを学習則(Learning Rule)と呼びます。主な学習則としてはヘッブ則とデルタ則の2つがあります。生物の神経細胞を模倣するニューロンの学習についても、同様にヘッブ則とデルタ則に従って学習できると考えられています。
ヘッブ則(Hebbian Rule)
ヘッブ則では以下の考え方で学習を行います。
「同時に発火したニューロン間のシナプス結合は強められる」
これを数式で表すと、その変化量\(δw_y\)は、学習係数λを用いて
$$
\begin{eqnarray}
Δw_{ij} = λx_iy_i \tag{1}
\end{eqnarray}
$$
のように表せます。δは変化量を示しています。出力yが0または1の値しか撮らないので、
\(\begin{eqnarray}
Δw
=
\begin{cases}
λx \quad yが発火した時 \\
0 \qquad それ以外 \tag{2}
\end{cases}
\end{eqnarray}
\)
と表すことが出来ます。つまり、結合荷重係数 \(w_{ij}\) は、入力xと出力yが同時に発火した頻度に比例して入力xのλ倍だけ増加する、ということになります。
身近な例でヘッブ則を説明すると、砂糖を口に入れた瞬間、甘いと感じたとしましょう。これは砂糖を目で見て砂糖というものを認識したニューロンが発火しているときに、舌の味蕾から刺激を受けたニューロンが同時に発火するので、これらのニューロン間のシナプス結合が強められることで、砂糖が甘いと学習できるというわけです。
デルタ則(Delta Rule; LMS Rule, Window-Hoff Rule)
デルタ速では、以下の考え方を用いて学習します。
1.答えと神経の出力差が大きいほど重みの修正値を大きくする
2.入力値が大きいほど重みの修正値を大きくする
これを数式で表すと、ある時点tのの結合係数を \(w_t\) 、学習後の結合係数を \(w_{t+1} \)とし、正解となる出力(教師データ) \(y^* \)と実際の出力yの差に、入力 \(x_t\) と学習係数ηを掛けた形、
$$
\begin{eqnarray}
w_{t+1} &=& f(w_t) + ηδx_t
&=& f(w_t) + η(y^*_t – y_t)x_t \ \tag{3}
\end{eqnarray}
$$
として表現されます。入力xに対して、正解となる出力 \(y^*\) が与えられたとき、
$$
\begin{eqnarray}
f(w)&=& \displaystyle \lim_{ n \to \infty } \frac{1}{2} \displaystyle \sum_{i=1}^\infty({y^*_i – y_i})^2 \ \tag{4}
\end{eqnarray}
$$
と表された関数f(w)を最小化する、という仕組みです。この時、正解との差分 \(({y^*_i – y_i})^2\) を \(δ^2\)と 表すことがあるので、デルタ則と呼ばれることがあります。
例え話をすると、生まれたばかりの人間の赤ちゃんは、最初は上手く自由に手足を動かせませんが、激しくバタバタさせたり、のけぞってみたりしているうちに段々と上手く動かせる様になっていくのに似ています。人間の赤ちゃんは手足の動かし方を Try&Error しながら、デルタ則によく似たやり方で学習していると考えられます。