形式ニューロン

形式ニューロン（けいしきニューロン）の記事では、1943年に神経生理学者・外科医であるウォーレン・マカロックと論理学者・数学者であるウォルター・ピッツが発表した"A Logical Calculus of the Ideas Immanent in Nervous Activity"で扱われた、モデル化されたニューロンについて述べる（原典では議論の対象であるニューロンについて明確な呼び名を与えておらず、後世の論者からの呼称は formal neuron の他、いろいろある）。人工ニューロン・ニューラルネットワークの研究を発表した先駆として、後のパーセプトロンの提案などに影響を与えた（コネクショニズムも参照）。伝達関数（活性化関数）として、ヘヴィサイドの階段関数を使い、入出力の値は 0 または 1 の二値だけをとるということに特徴がある。
概要.
彼らは、各ニューロンとして以下のようなモデルを示し、その多層構造で XOR も扱える（すなわち、線形非分離な問題も扱える）ということを示した。さらにこれを使って、チューリングマシンと同等の計算能力を持つシステムが可能であるとした（これはチャーチ＝チューリングのテーゼによって、重要だとみなされた）。
ニューロンのモデルは、以下の通り。入出力は 0 または 1 である。
実例としては、以下の通り。XOR は3層、他は2層である。
擬似コード.
以下の擬似コードはマカロックとピッツの形式ニューロンの実装例である。入力は真理値（真または偽）、出力も真理値である。オブジェクト指向的モデルとなっている。トレーニング方法は定義されていない。関数型のモデルであれば、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