跳轉到

1943 - 麥卡洛克皮茨邏輯神經元#

案件摘要#

1943 年,神經生理學家 Warren McCulloch 與邏輯學家 Walter Pitts 發表〈A Logical Calculus of the Ideas Immanent in Nervous Activity〉,提出史上第一個形式化神經元模型:M-P 神經元。核心公式只有一行:

\[ y = f\!\left(\sum_i w_i x_i - \theta\right) \]

其中 \(x_i \in \{0,1\}\) 是輸入脈衝, \(w_i\) 是連結強度, \(\theta\) 是閾值。他們證明:這樣的神經元網路可以計算任何邏輯命題函數——大腦第一次被證明是圖靈等價的候選計算機。本案的本質是:智能的候選模型從「心靈」降落到「可計算的電路」。

前因 -- 為什麼會有這個案子#

  • 1936 年 Turing 提出通用計算模型(圖靈機),證明存在能計算一切可計算函數的機器——但圖靈機是紙帶上的抽象,與大腦無關。
  • McCulloch 的問題:大腦是不是一台圖靈機? 他要找神經系統的「邏輯演算」,證明神經元夠格承載計算。
  • Pitts 是自學的神童邏輯學家:15 歲離家跑到芝加哥,在 Carnegie 圖書館研讀 Russell 的《數學原理》,後來跟著 Carnap 學邏輯——他提供了「命題邏輯完備性」這個數學武器。
  • 生理學線索:Cajal 的神經元學說確立了「神經元是基本單位」;「全有全無律」(all-or-none law,動作電位只有激發/不激發)說明神經元像二值開關。
  • 前驅:1890 年 James 的聯想主義(見 1890-WilliamJames聯想主義.md)已猜想「連結的強度可塑」,但 M-P 模型先不談學習,只談計算——學習留給 1949 的 Hebb。
  • 兩人的動機分工明確:McCulloch 出生理與哲學問題,Pitts 出邏輯與數學證明——史上第一樁「跨領域合謀」。
  • 論文的發表管道也值得一提:它刊在 Bulletin of Mathematical Biophysics——不是心理學也不是神經科學期刊,而是數學生物物理。這個「夾縫期刊」預告了這門新學科的尷尬處境:接下來二十年,它都找不到自己的家。

線索與推理 -- 數學式、程式、理論#

第一條線索:M-P 神經元的數學結構#

單一 M-P 神經元:

\[ y = H\!\left(\sum_{i=1}^{n} w_i x_i - \theta\right), \quad x_i \in \{0,1\},\ y \in \{0,1\} \]

其中 \(H\) 是階躍函數(激發則輸出 1,否則 0)。這個模型的三個要素: 1. 二值化:全有全無律的抽象——神經元不傳強度,只傳「有無脈衝」 2. 加權求和:興奮性 \(w_i > 0\) 、抑制性 \(w_i < 0\) 的連結,訊號在胞體整合 3. 閾值觸發:超過 \(\theta\) 才激發——這就是後來所有神經網路「激活函數」的祖先

第二條線索:用 M-P 神經元蓋出邏輯閘#

選定權重與閾值,單一 M-P 神經元即可實作基本邏輯閘。取 \(w_i = 1\) (興奮)、 \(w_{\text{NOT}} = -2\) (抑制):

閘 權重 \(w\) 閾值 \(\theta\) 真值表(輸入→輸出)
AND \((1, 1)\) \(1.5\) \((0,0){\to}0,\ (0,1){\to}0,\ (1,0){\to}0,\ (1,1){\to}1\)
OR \((1, 1)\) \(0.5\) \((0,0){\to}0,\ (0,1){\to}1,\ (1,0){\to}1,\ (1,1){\to}1\)
NOT \((-2)\) \(-1\) \((0){\to}1,\ (1){\to}0\)

驗證 AND: \((1,1)\) 時和為 \(2 > 1.5\) 觸發; \((1,0)\) 時和為 \(1 \le 1.5\) 不觸發。✓

第三條線索:網路級的完備性證明#

單一神經元只能算線性可分的函數(AND/OR 可以,XOR 不行——這正是 1969 年危機的種子)。但 McCulloch 與 Pitts 證明的是網路的威力:

  • 命題邏輯中,任何真值函數都可由 AND、OR、NOT 組合表達(析取範式)
  • 既然單一 M-P 神經元能做 AND/OR/NOT,那麼有限層的 M-P 網路就能表達任何命題邏輯函數
  • 再加上帶延遲的迴路( \(x(t-\tau)\) 反饋),網路能表達含時態的命題——涵蓋有限狀態機

結論:M-P 網路 ⊇ 命題邏輯 ⊇ 圖靈機可計算的核心。大腦在數學上至少與計算機等價。這個「網路即計算」的論證,是智慧模型書系中第一個非符號的通用計算證明。

第四條線索:模型的缺陷與留白#

這個 1943 年的模型刻意留了三個洞: 1. 權重是寫死的: \(w_i\) 與 \(\theta\) 由設計者手工指定,網路不會學習——Hebb 1949 年填上這個洞 2. 二值階躍不可微:無法用梯度下降訓練——1960 年 ADALINE 改用線性激活填上 3. 單層線性可分的極限:XOR 這類函數單一神經元做不到——1969 年 Minsky 用這一點重創整個領域(見 1969-MinskyPapert批判.md)

第五條線索:抑制性連結與「意念內蘊」的標題#

論文標題本身就藏了一條線索:A Logical Calculus of the Ideas Immanent in Nervous Activity——「意念內蘊於神經活動」。兩人主張的不是「神經元像邏輯閘」的比喻,而是更強的命題:意念(ideas)與神經活動是同一件事的兩種描述。

  • 抑制性連結的偵探意義:McCulloch 堅持神經元有抑制性輸入( \(w_i < 0\) ),這在 1943 年的生理學仍有爭議——後來抑制性中間神經元被確證存在,模型回頭預言了生理事實
  • 「內蘊」的偵探意義:這個詞預告了計算主義的心靈哲學——心智是計算的「實現」(implementation),任何足夠的計算結構都能承載意念。Putnam 的機器功能主義(1960 年代)與 Searle 的中文房間反駁(1980)都在爭論這一個詞
  • 哲學戰場的伏筆:若意念內蘊於神經活動,且神經活動可被計算機模擬,則「模擬的心智是否真有心智」成為七十年未解的問題——圖靈測試與中文房間都是這個問題的戰場

另一個常被忽略的事實:Pitts 的下場悲涼——他後來與 Wiener 決裂(Wiener 誤解了他與妻子的一段關係),抑鬱終老,1969 年去世時他的工作已被遺忘大半。直到 1980 年代連結主義復興,M-P 神經元才被追認為一切神經網路的祖先。

第六條線索:從 M-P 網路到「神經邏輯」的推廣#

McCulloch 後來的研究綱領可以概括為一句話:把邏輯學家請進神經實驗室。他在芝加哥組織了控制論早期的核心圈子(與 Pitts、Letvin、Maturana、Wiener 往來),推動了一系列後續研究:

  • Letvin、Maturana、McCulloch、Pitts:〈What the Frog's Eye Tells the Frog's Brain〉(1959)——青蛙視網膜的神經元是「特徵偵測器」(蟲子偵測器、邊緣偵測器),M-P 的加權結構在生理上處處現形
  • 這篇論文與同年 Hubel & Wiesel 的 V1 研究(見 1959-HubelWiesel視覺皮層.md)互相印證:神經元不是照相机,是特徵偵測器
  • McCulloch 的哲學遺產:他主張「神經邏輯」(neural logic)——心智的邏輯結構就內蘊在神經連結的權重裡。這個主張在 2020 年代的大型語言模型中以最龐大的形式重現:權重裡是否內蘊著「語言的邏輯」?

結案 -- 後果與影響#

  • 「神經網路」作為計算模型正式誕生:從 1943 年起,大腦可以被建模、被模擬、被工程化。
  • 跨領域合謀的典範:生理學 + 邏輯學 = 計算神經科學,這個配方被重複使用了八十年。
  • 伏筆一:M-P 神經元可以算邏輯 → 「機器能思考嗎」成為可操作問題 → 1950 圖靈測試直接引用這條線索。
  • 伏筆二:M-P 網路的完備性 + Hebb 學習規則 → 「可學習的邏輯電路」→ 1956 Dartmouth 會議把「神經網路模擬」列為 AI 起跑項目之一。
  • 伏筆三:1957 年 Rosenblatt 的感知器就是 M-P 神經元 + 可學習權重(見 1957-Perceptron感知器.md);1986 年反向傳播則是 M-P 網路 + 可微激活的終極合體(見 1986-反向傳播演算法.md)。
  • 伏筆五:抑制性連結( \(w_i < 0\) )→ 1959 年 Hubel & Wiesel 發現視覺皮層的抑制性側向連結,神經科學回頭驗證了模型的生理直覺。
  • 伏筆六:「意念內蘊於神經活動」→ 計算主義心靈哲學(Putnam 1960s)→ 中文房間反駁(Searle 1980)→ 2020 年代 LLM 的語法/語義之辯——論文標題裡的一個詞,辯了八十年。
  • 伏筆七:帶延遲的迴路(時態命題)→ 有限狀態機 → RNN 與遞迴網路——1943 年的迴路是所有序列模型的時間軸起點。

關鍵人物與文獻#

  • Warren McCulloch:神經生理學家,伊利諾大學芝加哥分校;提出「大腦是邏輯機器」的哲學綱領
  • Walter Pitts:自學邏輯學家,19 歲合著本文;後進入 MIT,與 Wiener 合作控制論
  • McCulloch & Pitts:〈A Logical Calculus of the Ideas Immanent in Nervous Activity〉, Bulletin of Mathematical Biophysics, 1943
  • Letvin, Maturana, McCulloch & Pitts:〈What the Frog's Eye Tells the Frog's Brain〉(1959),特徵偵測器的生理驗證
  • Alan Turing:〈On Computable Numbers〉(1936),通用計算的先驅
  • Norbert Wiener:《Cybernetics》(1948),控制論提供了「回饋」的概念框架
  • 相關案件:1890-WilliamJames聯想主義.md、1949-Hebb學習規則.md、1950-圖靈測試.md、1956-Dartmouth會議.md、1957-Perceptron感知器.md、1969-MinskyPapert批判(科學與歷史/人工智慧/1969-MinskyPapert批判.md)

補充 -- 程式實作(python + numpy)#

本案公式 y = H(Σ wᵢxᵢ − θ) 的最小可執行版本,見 _code/1943-MPNeuron.py(已實測可跑):

# 1943 - M-P 神經元 (McCulloch & Pitts)
# 公式: y = H(sum_i w_i x_i - theta), H 為階躍函數
import numpy as np


def mp_neuron(x, w, theta):
    return 1 if np.dot(w, x) - theta > 0 else 0


def demo_gate(name, w, theta, cases):
    print(f"--- {name}: w={w}, theta={theta} ---")
    for x, expected in cases:
        y = mp_neuron(np.array(x), np.array(w), theta)
        ok = "OK" if y == expected else "FAIL"
        print(f"  in={x} -> {y} (expect {expected}) [{ok}]")


def main():
    demo_gate("AND", [1, 1], 1.5,
              [([0, 0], 0), ([0, 1], 0), ([1, 0], 0), ([1, 1], 1)])
    demo_gate("OR", [1, 1], 0.5,
              [([0, 0], 0), ([0, 1], 1), ([1, 0], 1), ([1, 1], 1)])
    demo_gate("NOT", [-2], -1, [([0], 1), ([1], 0)])
    # XOR: 暴力搜尋證明單一 M-P 神經元無解 (權重/閾值網格)
    xor = [([0, 0], 0), ([0, 1], 1), ([1, 0], 1), ([1, 1], 0)]
    found = False
    for w1 in np.arange(-2, 2.5, 0.5):
        for w2 in np.arange(-2, 2.5, 0.5):
            for th in np.arange(-2, 2.5, 0.5):
                if all(mp_neuron(np.array(x), np.array([w1, w2]), th) == t
                       for x, t in xor):
                    found = True
    print("單層 M-P 神經元能否表達 XOR:", "能 (意外!)" if found else "不能 (符合 Minsky-Papert 論證, 需多層/隱藏層)")


if __name__ == "__main__":
    main()

執行結果(python3 _code/1943-MPNeuron.py,numpy 2.4.5):

--- AND: w=[1, 1], theta=1.5 ---
  in=[0, 0] -> 0 (expect 0) [OK]
  in=[0, 1] -> 0 (expect 0) [OK]
  in=[1, 0] -> 0 (expect 0) [OK]
  in=[1, 1] -> 1 (expect 1) [OK]
--- OR: w=[1, 1], theta=0.5 ---
  in=[0, 0] -> 0 (expect 0) [OK]
  in=[0, 1] -> 1 (expect 1) [OK]
  in=[1, 0] -> 1 (expect 1) [OK]
  in=[1, 1] -> 1 (expect 1) [OK]
--- NOT: w=[-2], theta=-1 ---
  in=[0] -> 1 (expect 1) [OK]
  in=[1] -> 0 (expect 0) [OK]
單層 M-P 神經元能否表達 XOR: 不能 (符合 Minsky-Papert 論證, 需多層/隱藏層)

程式解說:前三段驗證本文第二條線索的真值表——同一行公式只換權重與閾值,就能分別長成 AND、OR、NOT。最後一段把「XOR 做不到」從紙上證明變成可執行的窮舉:在 w₁,w₂,θ ∈ [-2,2] 網格上沒有任何一組參數能同時滿足四個 XOR 樣本,這正是 1969 年 Minsky–Papert 批判的計算版,也為 1986 年「需要隱藏層+反向傳播」埋下伏筆。