1個のニューロンの学習(2)

1個のニューロンの学習(1)」で述べた標準デルタ則

  • h{\leftar}h-a(r-y)・・・・(2)
  • s_i{\leftar}s_i+a(r-y)x_i・・・・(3)

で学習が実現できるかどうか、例題を使って試してみる。


パターン認識(4)」で登場したような入力信号が2個の場合を考える。この入力をそれぞれxyで表すことにする。ニューロンからの出力をzで表すことにする。(上の式(2)(3)と変数の使い方が異なっているので注意。) x,y,zは0か1の値をとるものとする。このニューロン(x,y)=(1,1)の時だけz=1を出力し、その他の(x,y)の時はz=0を出力するように学習を行う。つまりこれは、このニューロンをAND素子にしようとするものである。(x,y)を与えた時のzの正解の値を以下の表で示す。

  • 表1


パターンを(0,0)(1,0)(0,1)(1,1)の順にニューロンに与え、その時の出力zを観察する。そして、1回出力を得るたびに、その出力と正解の値(これは教師信号によって示される)を用いてシナプス荷重としきい値を式(2)(3)に従って変化させる。この例題と式(2)(3)では変数の使い方が異なっているので、この例題用に式(2)(3)を書き換えておく。その前に、xシナプス荷重をbで、yシナプス荷重をcで表すことにする。しきい値にはそのままhを用いることにする。式(2)(3)の定数aはそのまま用いることにする。また教師信号rもそのまま用いることにする。するとマカロック・ピッツの式

  • y=1\left(\Bigsum_{i=1}^ns_ix_i-h\right)・・・・(1)

  • z=1\left(bx+cy-h\right)・・・・(4)

と書き換えられ、式(2)は

  • h{\leftar}h-a(r-z)・・・・(5)

式(3)は

  • b{\leftar}b+a(r-z)x・・・・(6)
  • c{\leftar}c+a(r-z)y・・・・(7)

と書き換えられる。


aの値をどう決めるかについて今の時点では根拠がないが、とりあえずa=0.5としてみる。また、bchの初期値を、とりあえずb=1c=-1h=0とする。この時、式(4)は

  • z=1(x-y)・・・・(8)

となるので、パターン(0,0)(1,0)(0,1)(1,1)を与えた時の出力z

  • 表2

のようになる。これは目的とする表1の結果(=正解)とは大きく異なっている。はたしてこのニューロンは式(5)(6)(7)によるシナプス荷重としきい値の調整によって、表1を学習出来るだろうか?


学習の様子を分かりやすくするために、「パターン認識(4)」の時と同じように(x,y)を座標で表すことにする。

  • 図1

赤い丸で示したのが他のパターンと識別すべきパターン(1,1)である。さて、このあとの説明では座標軸が邪魔になってくるので図を

  • 図2

のように変更して以下の説明を行なうことにする。


まず、最初にパターン(0,0)が与えられた場合の様子を以下の図で示す。

  • 図3

図3の一番上の式x-y=0は、式(4)のbx+cy-hの値を0とした式である。この式は、zの値が0になる領域と1になる領域の境界を表している。図3において斜めに書かれた線がこの式が表す直線である。この直線から出ている矢印は、直線のそちら側がzが1であることを示している。なお、境界線上の点はz=1側に含まれる。次に(x,y)=(0,0)は入力パターンを示している。図ではパターン(0,0)を示す丸を黒線の丸で囲んで、それが現在の入力パターンであることを示している。次の式z=1(x-y)=1(0-0)=1(0)=1は、式(4)の現在の式である式(8)に(x,y)=(0,0)を代入してzを計算したものである。最後のr=0は教師信号の値を示してる。この例ではzrの値は異なっているので、ニューロンの出力は「不正解」である。よって式(5)(6)(7)によってhbcが書き換えられる。その結果

  • {\leftar}h+0.5
  • b{\leftar}b
  • c{\leftar}c

となるので、bx+cy-hは今度はx-y-0.5となる。このように変更されたところに次のパターン(1,0)が与えられる。図3と同様に示すと以下のようになる。

  • 図4

この図では図3に比べて境界線の位置が移動している。また、パターン(1,0)を示す丸をさらに丸で囲んで、現在の入力パターンを示している。今回もニューロンの出力は不正解だったので、同じように式(5)(6)(7)によってhbcが書き換えられる。その結果

  • {\leftar}h+0.5
  • b{\leftar}b-0.5
  • c{\leftar}c

となるので、bx+cy-hは今度は0.5x-y-1となる。このように変更されたところに次のパターン(0,1)が与えられる。その状態を図で示すと以下のようになる。

  • 図5

今回のニューロンの出力は正解だったので、次のパターン(1,1)も同じ設定で待ち受けることになる。(以下、続く。)