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

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

第3章 ニューロンのモデル化について

 人工のニューロンを設計するためには、生体のニューロンをモデル化する必要があります。しかし、生体のニューロンの動作の全てを再現するのは不可能です。ここでは、生体のニューロンをどうモデル化するかについて説明します。

 このページの目次

3.1節 生体ニューロンのモデル化
3.2節 ニューロンモデルの計算例 -その1-
3.3節 ニューロンモデルの計算例 -その2-
3.4節 ニューロンモデルの別表現
3.5節 まとめ

 3.1節 生体ニュ−ロンのモデル化

 情報処理システムとしてのニューラルネットワークを設計するためには、生体ニューロンの動作を、数式で表現しなければなりません。このように、自然界の事象を数式によって表現することをモデル化とよびます。ところで、前のペ−ジで述べた生体ニューロンの動作は、さらに細かく見れば、実際には極めて複雑になっています。したがって、生体ニューロンの動作の全てを忠実にモデル化することは不可能です。そこで、ニューラルネットワークを構成する1つの要素として、生体のニューロンの動作の本質的な特徴を失うことなく、なるべく簡単な数式でモデル化する必要があります。このような、ニューロンのモデルは、1943年に、マッカロックとピッツ(McCullochとPitts)によって最初に提案されました。この、ニューロンモデルを図.2に示します。

ニューロンのモデル

図.2: ニューロンのモデル

 このニューロンモデルは、次式に示すような数式に基づいて動作を行います。

  net  =  w 1 x 1 + w 2 x 2 + … + w n x n   (1)
  out  =  f (net - θ)   (2)

 x 1 , x 2 , , x n は、他のn 個のニューロンからの入力信号を表し、out はニューロンの出力信号を表します。n 個の入力信号 x 1 , x 2 , , x n に対して、1個の出力信号out が決定されます。また、w 1 , w 2 , , w n は、シナプスの結合効率を表す量で、結合加重、あるいは、重みとよばれます。net は生体のニューロンの膜電位に相当する量で、(1)式に示すように、入力信号と、それに対応する重みの積をn 個全て足し合わせることによって計算されます。ここで、重みの絶対値が大きいと、入力信号が増幅されて伝わるので net に与える影響も大きくなり、逆に、重みの絶対値が小さいと net に与える影響も小さくなることがわかります。θは、ニューロンが興奮するかしないかの閾値を表します。そして、(2)式に示すように、net からθを引いた値を活性化関数f (x )に代入して得られる値がそのまま、ニューロンの出力out となります。マッカロックとピッツによって最初に提案されたときには、活性化関数は図.3に示すような、ステップ関数が用いられていました。

ステップ関数

図.3: ステップ関数

 つまり、膜電位を表す量net が閾値θを超えると、そのニューロンは興奮したものとして、 1 を出力し、そうでなければ、 0 を出力をします。

 3.2節 ニューロンモデルの計算例 -その1-

 それでは、実際にこのニューロンモデルの出力を計算してみましょう。図.4を見てください。

ニューロンモデルの例

図.4: ニューロンモデルの例

 この図のニューロンモデルの重みと閾値は次のような値になっています。

  w 1 = 1.0 , w 2 = 1.0 , θ = 1.5   (3)

 いま、このニューロンモデルに、入力信号として 表.1 の x 1 , x 2 の値が与えられたとします。 x 1 , x 2 はそれぞれ 1 か、0 の値をとりますが、その組み合わせが4種類存在しています。

表.1: AND関数

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

 それぞれの場合の出力を計算してみます。ただし、活性化関数はステップ関数とします。

  1.  x 1 = 0 , x 2 = 0 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 0.0 + 1.0 ・ 0.0 = 0.0
   out = f (net - θ) = f (0.0 - 1.5) = f (-1.5) = 0.0
  2.  x 1 = 0 , x 2 = 1 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 0.0 + 1.0 ・ 1.0 = 1.0
   out = f (net - θ) = f (1.0 - 1.5) = f (-0.5) = 0.0
  3.  x 1 = 0 , x 2 = 0 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 1.0 + 1.0 ・ 0.0 = 1.0
   out = f (net - θ) = f (1.0 - 1.5) = f (-0.5) = 0.0
  4.  x 1 = 1 , x 2 = 1 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 1.0 + 1.0 ・ 1.0 = 2.0
   out = f (net - θ) = f (2.0 - 1.5) = f (0.5) = 1.0

 結局、それぞれの場合のニューロンモデルの出力は、表.1の y の値と同じになっていることがわかります。 表.1は、AND関数(論理積)とよばれる論理関数を表しています。したがって、このニューロンモデルはAND関数を計算できることがわかります。

 3.3節 ニューロンモデルの計算例 -その2-

 今度は逆に、このニューロンモデルを使って、表.2の論理関数をを実現するように重みと閾値を決めましょう。

表.2: OR関数

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

 表.2の論理関数は、OR関数とよばれる論理関数です。表.2をみると、x 1 かまたは x 2 のどちらかが 1 になっている場合のみ、y が 0 となっています。

 答えは、図.5のようになります。

OR関数を計算するニューロンモデル

図.5: OR関数を計算するニューロンモデル

 それぞれの場合の出力を計算して、確かめてみます。ただし、活性化関数はステップ関数とします。

  1.  x 1 = 0 , x 2 = 0 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 0.0 + 1.0 ・ 0.0 = 0.0
   out = f (net - θ) = f (0.0 - 0.5) = f (-0.5) = 0.0
  2.  x 1 = 0 , x 2 = 1 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 0.0 + 1.0 ・ 1.0 = 1.0
   out = f (net - θ) = f (1.0 - 0.5) = f (0.5) = 1.0
  3.  x 1 = 0 , x 2 = 0 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 1.0 + 1.0 ・ 0.0 = 1.0
   out = f (net - θ) = f (1.0 - 0.5) = f (0.5) = 1.0
  4.  x 1 = 1 , x 2 = 1 の場合
   net = w 1x 1 + w 2x 2 = 1.0 ・ 1.0 + 1.0 ・ 1.0 = 2.0
   out = f (net - θ) = f (2.0 - 0.5) = f (1.5) = 1.0

 確かに、図.5のニューロンモデルが、OR関数を計算できることがわかります。しかし、必ずしも重みや閾値が図.5のような値でなくてはだめなのではなく、他の値でもOR関数を実現できます。

 3.4節 ニューロンモデルの別表現

 もう1度、ニューロンモデルの動作を表す式を見て下さい。

  net  =  w 1 x 1 + w 2 x 2 + … + w n x n  
  out  =  f (net - θ)  

 ここで、閾値θの代わりに、常に 1 を与える入力 x 0 = 1 と、x 0 に対する重み w 0 = -θ を導入すると、式(1)、(2)を次式のようなより簡単な式に書き換えることができます。

  net  =  -θ・1.0 + w 1 x 1 + w 2 x 2 + … + w n x n  
   =  w 0 x 0 + w 1 x 1 + w 2 x 2 + … + w n x n   (4)
  out  =  f (net )   (5)

 式(4)、(5)のニューロンモデルは図.6のようになります。

ニューロンモデルの別表現

図.6: ニューロンモデルの別表現

 生体ニューロンにおける閾値(ニューロンが興奮するかしないかの境界となる膜電位の値)は-55から-50ミリボルト程度であり、その値から、閾値が著しく変化することは考えられません。しかし、ニューロンモデルでは、別表現で表したとおり閾値を重みの1種ととらえることで、次のページで説明するように学習によって閾値を変化させることができます。

 3.5節 まとめ

 生体ニューロンの動作は、式(1)、(2)または式(4)、(5)のような、簡単な数式でモデル化することができます。また、ニューロンモデルの重みと閾値を決定することで、そのニューロンモデルの入力と出力の関係が決定します。

 今までやってきた例題は、入力が2個だけなので2つの重みと1つの閾値の3つの値を決定するだけで済み、簡単でした。しかし、生体ニューロンの結合数の様に、入力の数が数千、数万にもなると、重みを考えるのが大変になってきます。したがって、人工ニューロン(ニューロンモデル)にも、入力と出力を与えるだけで自動で重みと閾値を形成していくような学習機能が必要になってきます。次のページでは、1個のニューロンの学習について説明します。

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


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