ローゼンブラットのパーセプトロン(1)

今まで1個のニューロンで、学習規則として標準デルタ則

のような構成をしています。一番左に入力部があり、真ん中にp個のニューロンからなる層があり、右にq個のニューロンからなる層があります。つまり2層のニューラルネットワークです。このニューラルネットワークでは、右側の層に属するニューロンについてはデルタ則に従ってしきい値シナプス係数を変化させます。しかし、真ん中の層に属するニューロンについてはしきい値シナプス係数を変化させません。このことをもう少し明確に表しましょう。


図1を少し変形して下図

  • 図2

のようにします。この図では真ん中の層に属するニューロンn_{1k}、右側の層に属するニューロンn_{2k}の形に番号を付けて区別しています。ニューロンn_{jk}しきい値h_{jk}、そのニューロンi番目の入力信号に対応するシナプス係数をs_{jki}で表すことにします。jは1か2の値です。


まずh_{1k}s_{1ki}の値は変化させません。
次にニューロンn_{1i}の出力信号をz_iで表します。これがニューロンn_{2k}の入力になります。各々のニューロンn_{2k}の標準デルタ則は以下のように表すことが出来ます。

  • h_{2k}{\leftar}h_{2k}-a(r_k-y_k)・・・・(3)
  • s_{2ki}{\leftar}s_{2ki}+a(r_k-y_k)z_i・・・・(4)

右側の層に属するq個のニューロンn_{2k}は各々、真ん中の層に属するp個のニューロンn_{1i}の全てから入力を受け取るものとします。


このパーセプトロンh_{2k}s_{2ki}については、学習によって値が変化するので初期値はあまり重要でありませんが、h_{1k}s_{1ki}については変化させませんので、これをどう定めるのか気になります。しかし、私が調べた範囲では、これらの変数をどう定めるのかについての言及はありませんでした。


さて、このパーセプトロンの学習能力はどの程度のものでしょうか? ここで、左側のn個の入力信号(x_1,x_2,...,x_n)をベクトル\vec{x}で表すことにします。同様に真ん中の層のニューロンの出力(z_1,z_2,...,z_p)をベクトル\vec{z}で表すことにします。このように考えると真ん中の層はベクトル\vec{x}\vec{z}に変換する関数と考えることが出来ます。しかも、h_{1k}s_{1ki}の値は変化しないので、\vec{x}の変換結果はいつも同じ\vec{z}になります。次に右の層を考えると、これは\vec{z}を入力とする「1個のニューロンの学習(9)」で考えたニューラルネットワークと同等です。そうすると、このネットワークにも「1個のニューロンの学習(9)」でのネットワークと同様の学習能力の限界があることになります。そこで最初私は、図1のパーセプトロンも「1個のニューロンの学習(9)」と同様の学習能力の限界があると考えていました。しかし、検討するにつれて、どうもそうではないと思うようになりました。