コラム / ニューラルネットワーク / 第4章

HOME 研究室概要 コラム 周辺探索 メンバー 掲示板 リンク

第4章 ニューロンの学習について

 ニューロンの重みと閾値を決定することで、そのニューロンの入力と出力の関係が決まりました。ニューロンが、自動で重みと閾値を形成していくことを学習とよびます。ここでは、1個のニューロンに対して行う、誤り訂正学習法について説明します。

 ただし、この章以降では、人工ニューロンおよびニューロンモデルのことを単にニューロンとよんでいます。注意して下さい。

 このページの目次

4.1節 誤り訂正学習法
4.2節 誤り訂正学習法の学習例
4.2節 1個のニューロンの能力の限界
4.3節 まとめ

 4.1節 誤り訂正学習法

 まず、入力信号とそれに対する理想的な出力信号を用意します。この、理想的な出力信号を教師信号とよびます。入力信号と教師信号を次式のように表記することにします。

  x p 1 , x p 2 , , x pn  :  第 p 番目の入力信号   (6)
  y p  :  第 p 番目の教師信号   (7)

 ただし、入力の数を n 、入力信号と教師信号の組の数を P とします。前章のOR関数(AND関数)の場合は、入力の数が n = 2 、入力信号と教師信号の組の数が、P = 4 となっていました。そして、学習の目的を、入力信号が与えられると、教師信号を出力するように、ニューロンの重みと閾値を形成していくこととします。このような目的のために行われる学習を、教師つき学習とよびます。逆に、教師信号が与えられないで行われる学習を教師なし学習とよびます。このような目的を、前のページで説明したようなニューロンを用いて達成するために、誤り訂正学習法とよばれる学習法を実行します。

 誤り訂正学習法では、入力信号が与えられるごとに、閾値と全ての重みに対して、教師信号とニューロンの出力との誤差に基づいて、次式のように重みを修正していきます。

  w inew  = w iold + η(y p - out ) x pi  (1≦in )   (8)

 ただし、w inew は修正された後の新しい重みを、w iold は修整される前の古い重みを表します。また、η は学習率とよばれる、通常 1 以下の値に設定される正の小さな定数です。 ところで、(y p - out ) の部分は、

(9)

となります。したがって、ニューロンの出力と教師信号が異なる場合にだけ、重みを修正することがわかります。つまり、y p = 1 にもかかわらず、out = 0 を出力する場合には、out = 1 になるように、重みを ηx i だけ増加させ、逆に、y p = 0 にもかかわらず、out = 1 を出力する場合には、out = 0 になるように、重みを ηx i だけ減少させます。これを P 個全ての入力信号に対して、重み w i が変化しなくなるまで繰り返します。

 4.2節 誤り訂正学習法の学習例

 ここで、誤り訂正学習法の例を示します。表.3には問題を、表.4にはこの問題に対する学習結果を表しています。表.4のとおり、学習前の重みは全て 0 としました。4回の学習で表.3の入出力関係を実現できました。ちなみに、net = 0 のときには 1 を出力するようにしています。

表.3: 問題

x 0
x 1
x 2
y
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1

表.4: 学習結果

学習
回数
パターン (w 0 w 1 w 2 ) (x 0 x 1 x 2 ) net out - y 重み
変更
 
1 1
2
3
4
(0 0 0)
(-1 0 0)
(0 0 1)
(0 0 1)
(1 0 0)
(1 0 1)
(1 1 0)
(1 1 1)
0
-1
0
1
1-0 = 1
0-1 = -1
1-1 = 0
1-1 = 0



(0 0 0)-(1 0 0) = (-1 0 0)
(-1 0 0)+(1 0 1) = (0 0 1)
2 1
2
3
4
(0 0 1)
(-1 0 1)
(-1 0 1)
(0 1 1)
(1 0 0)
(1 0 1)
(1 1 0)
(1 1 1)
0
0
-1
2
1-0 = 1
1-1 = 0
0-1 = -1
1-1 = 0



(0 0 1)-(1 0 0) = (-1 0 1)

(-1 0 1)+(1 1 0) = (0 1 1)
3 1
2
3
4
(0 1 1)
(-1 1 1)
(-1 1 1)
(-1 1 1)
(1 0 0)
(1 0 1)
(1 1 0)
(1 1 1)
0
0
0
1
1-0 = 1
1-1 = 0
1-1 = 0
1-1 = 0



(0 1 1)-(1 0 0) = (-1 1 1)
4 1
2
3
4
(-1 1 1)
(-1 1 1)
(-1 1 1)
(-1 1 1)
(1 0 0)
(1 0 1)
(1 1 0)
(1 1 1)
-1
0
0
1
0-0 = 0
1-1 = 0
1-1 = 0
1-1 = 0



 

 4.3節 1個のニューロンの能力の限界

 それでは、1個のニューロンに対して誤り訂正学習法による学習を行うことで、全ての論理関数が実現できるのでしょうか。実は、1個のニューロンでは、絶対に実現できない論理関数が存在します。これは、1個のニューロンの能力の限界のためです。表3を見てください。

表.5: XOR関数

x 1
x 2
y
0
0
1
1
0
1
0
1
0
1
1
0

 表.3の論理関数はXOR関数とよばれる論理関数ですが、これは、1個のニューロンでは絶対に実現できません。

 ニューロンの動作を表す式(4)、(5)において、入力の数 n が2つの場合は次式のようになります。

  net  =  w 0 x 0 + w 1 x 1 + w 2 x 2   (10)
  out  =  f (net )   (11)

 活性化関数 f (net ) の効果によって、ニューロンは、net が 0 より大きいときに 1 を出力し、net が 0 より小さいときに 0 を出力することを思い出して下さい。このことから、ニューロンが 1 を出力するか、0 を出力するかの境界線は、次式のように表すことができることがわかります。

  net = w 0 x 0 + w 1 x 1 + w 2 x 2 = 0   (12)

 図.7,8には、x 1 を横軸、x 2 を縦軸としたグラフを表しています。AND関数やOR関数は図.7のように、0 を出力すべき点と 1 を出力すべき点を、式(12)の直線によって分けることができることがわかります。このように、直線(超平面)で分離できる問題を線形分離可能な問題といいます。

線形分離可能な問題

図.7: 線形分離可能な問題

 逆に、図.8を見ると、この場合は明かに、0 を出力すべき点と 1 を出力すべき点を、式(12)の直線によって分けることができないことがわかります。

線形分離不可能な問題

図.8: 線形分離不可能な問題

 このように、直線(超平面)で分離できない問題を線形分離不可能な問題といいます。

 1個のニューロンによって実現できる論理関数と、実現できない論理関数があることがわかりました。しかし、1個のニューロンで実現できる関数であれば、つまり、線形分離可能な問題であれば、誤り訂正学習法による有限回の学習によって、入力信号に対して教師信号が出力されるように重みを決定できることが証明されています。

 4.4節 まとめ

 このページでは、誤り訂正学習法について説明しました。誤り訂正学習法は、式(9)で示したように、出力信号と教師信号が違っていた場合にのみ重みを修正します。1個のニューロンによって実現できる論理関数の場合、この学習法によって有限回の学習によって重みを決定することができます。

 1個のニューロンによって実現できない論理関数を実現するためには、複数のニューロンを結合し、ネットワークを構成する必要があります。次のページでは、ネットワークの形態について説明します。

ページの上へ 前の章へ 上のページへ 次の章へ


企画・製作 村上・泉田研究室 HP製作委員会(2001)
ご意見・お問い合わせは、こちら までどうぞ。