人工神経 > 形式ニューロン

形式ニューロン(けいしきニューロン)の記事では、1943年神経生理学者・外科医であるウォーレン・マカロック論理学者・数学者であるウォルター・ピッツが発表したA Logical Calculus of the Ideas Immanent in Nervous Activity[1]で扱われた、モデル化されたニューロンについて述べる(原典では議論の対象であるニューロンについて明確な呼び名を与えておらず、後世の論者からの呼称は formal neuron の他、いろいろある)。人工ニューロンニューラルネットワークの研究を発表した先駆として、後のパーセプトロンの提案などに影響を与えた(コネクショニズムも参照)。伝達関数(活性化関数)として、ヘヴィサイドの階段関数を使い、入出力の値は 0 または 1 の二値だけをとるということに特徴がある。

概要

編集

彼らは、各ニューロンとして以下のようなモデルを示し、その多層構造で XOR も扱える(すなわち、線形非分離な問題も扱える[2])ということを示した。さらにこれを使って、チューリングマシンと同等の計算能力を持つシステムが可能であるとした(これはチャーチ=チューリングのテーゼによって、重要だとみなされた)。

ニューロンのモデルは、以下の通り。入出力は 0 または 1 である。

 

実例としては、以下の通り。XOR は3層、他は2層である。

AND
 
OR
 
NOT
 
XOR
 

擬似コード

編集

以下の擬似コードはマカロックとピッツの形式ニューロンの実装例である。入力は真理値(真または偽)、出力も真理値である。オブジェクト指向的モデルとなっている。トレーニング方法は定義されていない。関数型のモデルであれば、TLUクラスの代わりにTLUという関数が、入力ベクトルと重み付けベクトルとしきい値を引数とし、真理値を出力とするものになるだろう。

 class TLU defined as:
  data member threshold : number
  data member weights : list of numbers of size X
  function member fire( inputs : list of booleans of size X ) : boolean defined as:
   variable T : number
   T  0
   for each i in 1 to X :
    if inputs(i) is true :
     T  T + weights(i)
    end if
   end for each
   if T > threshold :
    return true
   else:
    return false
   end if
  end function
 end class

注・参照

編集
  1. ^ Warren S. McCulloch; Walter Pitts (December 1943). “A logical calculus of the ideas immanent in nervous activity”. The bulletin of mathematical biophysics (Kluwer Academic Publishers) 5 (4): 115-133. doi:10.1007/BF02478259. 
  2. ^ これは後に「単層パーセプトロン」では不可能だと示された問題であるため言及される。