1986 - 反向傳播復興(Learning representations by back-propagating errors)#
案件摘要#
1986 年,David Rumelhart、Geoffrey Hinton、Ronald Williams 在《Nature》 發表 Learning representations by back-propagating errors—— 只有短短三頁,卻復活了整個神經網路領域:
反向傳播(back-propagation)的核心思想: - 前向傳播:輸入層 → 隱藏層 → 輸出層,算出預測; - 反向傳播:誤差從輸出層倒著一層一層傳回,算出每個權重的梯度; - 梯度下降:沿著負梯度方向微調每個權重。
這破解了 1969 年的 XOR 危機——Minsky 與 Papert 證明單層感知機連 XOR 都學不會,讓神經網路進入十五年寒冬;而隱藏層 + 反向傳播讓 多層網路自己學出「內部表徵」,XOR 應聲而破。 神經網路從此起死回生——2012 年的深度學習革命,源頭就在這三頁。
前因 -- 為什麼會有這個案子#
- 1957 感知機的榮光與 1969 的寒冬: Rosenblatt 的感知機(見
../人工智慧/1957-Perceptron感知器.md) 曾經風光一時;但 Minsky 與 Papert 在 1969 年的《Perceptrons》一書中 數學上證明:單層感知機不能表示 XOR(線性不可分):
整個領域的經費瞬間蒸發——這是 AI 史上最著名的「寒冬」 (見 ../人工智慧/1969-MinskyPapert批判.md)。 - 理論上早有出路,卻沒有演算法: 其實隱藏層就能表示 XOR——但 1969 年沒有人知道怎麼訓練隱藏層:
- Werbos 的先創(1974): Paul Werbos 在 1974 年的哈佛博士論文中首創反向傳播—— 把動態規劃與鏈鎖律結合,用於多層網路的誤差回傳。 可惜這篇論文在神經網路寒冬中無人問津; 1986 年 Rumelhart–Hinton–Williams 的 Nature 論文讓它重見天日。
- Widrow–Hoff 的 delta 規則(1960): ADALINE(見
1960-韋德羅ADALINE.md)的 delta 規則已經會用 誤差調整單層權重:
反向傳播正是 delta 規則的逐層推廣—— 隱藏層的「誤差」由上一層的誤差反傳而來:
- Hinton 的執念: 寒冬期間,Hinton 遠走英國、美國,堅持相信神經網路; 他與 Rumelhart 在加州大學聖地牙哥分校(UCSD)的聯結主義(PDP)團隊 合作,終於在 1986 年交出這份改變歷史的答卷。
線索與推理 -- 數學式、程式、理論#
第一條線索:多層網路的前向傳播#
兩層網路(輸入 2 維 → 隱藏 \(H\) 維 → 輸出 1 維):
- \(\sigma(z) = \frac{1}{1+e^{-z}}\) :sigmoid 活化函數(可微,這是關鍵!);
- 隱藏層的意義:它把輸入變換到新的空間——
XOR 在原始空間線性不可分,但隱藏層把它映射成線性可分的空間。
第二條線索:鏈鎖律——反向傳播的數學核心#
損失函數(二元交叉熵):
梯度如何回傳?用微積分的鏈鎖律逐層相乘:
- 注意 \(\frac{\partial L}{\partial h_j}\) 的結構:輸出誤差 \((\hat{y}-y)\) 乘上連接權重 \(w_j^{(2)}\) 再乘上活化函數的導數 \(h_j(1-h_j)\) ——
- delta 規則的推廣:1960 年的 \(\Delta w = \eta (y-\hat y) x\) 中, 誤差 \((y-\hat y)\) 是直接觀測的;1986 年,隱藏層的誤差是 反傳算出的——演算法完全相同,只是誤差的來源不同。
第三條線索:梯度下降與表徵學習#
梯度下降:沿負梯度更新每個參數:
為什麼 XOR 從此可解? 1. 隱藏層學到的表徵把四點重新排列; 2. 輸出層只需在新空間畫一條直線。
Rumelhart 等人的實驗:8 個隱藏單元、數千輪梯度下降, XOR 的損失收斂到接近零——1986 年的 Nature 論文以此當庭宣判: 1969 年的「死刑判決」僅適用於單層網路。
Python:反向傳播破解 XOR 危機#
import random, math
random.seed(42)
def sig(x): return 1.0/(1.0+math.exp(-x))
X = [[0,0],[0,1],[1,0],[1,1]]
Y = [0,1,1,0]
H = 4
W1 = [[random.uniform(-1,1) for _ in range(H)] for _ in range(2)]
b1 = [0.0]*H
W2 = [random.uniform(-1,1) for _ in range(H)]
b2 = 0.0
lr = 0.5
for epoch in range(10001):
gW1 = [[0.0]*H for _ in range(2)]
gb1 = [0.0]*H
gW2 = [0.0]*H
gb2 = 0.0
loss = 0.0
for x, y in zip(X, Y):
h = [sig(sum(x[i]*W1[i][j] for i in range(2))+b1[j]) for j in range(H)]
o = sig(sum(h[j]*W2[j] for j in range(H))+b2)
loss += -(y*math.log(o+1e-12)+(1-y)*math.log(1-o+1e-12))
do = (o-y) # dL/do 經 sigmoid+BCE
for j in range(H):
dh = do*W2[j]*h[j]*(1-h[j]) # 鏈鎖律:dL/dh = dL/do · do/dh
for i in range(2):
gW1[i][j] += dh*x[i]
gb1[j] += dh
gW2[j] += do*h[j]
gb2 += do
for i in range(2): # 梯度下降 θ ← θ − η∇L
for j in range(H):
W1[i][j] -= lr*gW1[i][j]/4
for j in range(H):
b1[j] -= lr*gb1[j]/4
W2[j] -= lr*gW2[j]/4
b2 -= lr*gb2/4
if epoch % 2000 == 0:
print(f"epoch {epoch:5d} loss = {loss/4:.6f}")
print("\nXOR 預測(1986 年的反向傳播):")
for x, y in zip(X, Y):
h = [sig(sum(x[i]*W1[i][j] for i in range(2))+b1[j]) for j in range(H)]
o = sig(sum(h[j]*W2[j] for j in range(H))+b2)
print(f" {x} → {o:.4f}(目標 {y})")
epoch 0 loss = 0.774476
epoch 2000 loss = 0.020093
epoch 4000 loss = 0.005675
epoch 6000 loss = 0.003149
epoch 8000 loss = 0.002134
epoch 10000 loss = 0.001594
XOR 預測(1986 年的反向傳播):
[0, 0] → 0.0015(目標 0)
[0, 1] → 0.9973(目標 1)
[1, 0] → 0.9995(目標 1)
[1, 1] → 0.0017(目標 0)
結案 -- 後果與影響#
- 聯結主義的復興(1986):
Nature 論文發表後,反向傳播成為一切神經網路的標準訓練演算法; 1986 年的 PDP 兩卷本《Parallel Distributed Processing》同步問世, 聯結主義正式挑戰符號主義(見 ../人工智慧/1956-Dartmouth會議.md)。 - 萬能逼近定理(1989): Cybenko(1989)與 Hornik–Stinchcombe–White(1989)證明:
這從數學上蓋棺定論:Minsky 1969 年的判決只適用於單層線性模型—— 多層網路的能力沒有上限。 - AI 復興與應用爆發(1986–2000): - 1989 LeCun 卷積網路:手寫數字辨識(見 1989-楊立昆卷積網路.md); - 1987 Jordan、1990 Elman:遞迴網路與序列建模; - 1997 LSTM:長期記憶(見 1997-長短期記憶LSTM.md); - 1997 DeepBlue:西洋棋擊敗世界棋王(見 ../人工智慧/1997-DeepBlue擊敗棋王.md)。 - 深度學習革命(2012):
2012 年 AlexNet 用反向傳播訓練 8 層卷積網路,橫掃 ImageNet (見 ../人工智慧/2012-AlexNetImageNet革命.md)—— 深度學習時代正式開啟。 - 遲來的榮耀(2018 圖靈獎): Hinton、LeCun、Bengio 獲 2018 年圖靈獎—— 表揚「深度學習的概念與工程突破」(見 ../資訊科學/2018-深度學習三巨頭.md)。
Hinton 2024 年再獲諾貝爾物理學獎——史上第一人同獲圖靈獎與諾貝爾獎。 - 歷史的公道: Werbos(1974 博士論文) 才是反向傳播的首創者—— 他在 1974 年就被引述,但榮耀屬於 1986 年讓世界相信的人。
真相:發明不夠,還要讓世界相信——這是科學史的鐵律。 - 歷史定位:反向傳播是神經網路的心臟—— 從 1986 到今天,每一個神經網路(包括訓練中的大語言模型) 跑的都是同一個演算法:前向傳播、算誤差、鏈鎖律反傳、梯度下降。
關鍵人物與文獻#
- D. E. Rumelhart、G. E. Hinton、R. J. Williams:Learning representations by back-propagating errors(Nature, 1986)——復興的關鍵論文。
- P. Werbos:Beyond Regression(哈佛博士論文, 1974)——反向傳播首創。
- G. E. Hinton:PDP 聯結主義(1986);深度學習三巨頭(2018 圖靈獎、2024 諾貝爾物理學獎)。
- D. E. Rumelhart、J. L. McClelland:Parallel Distributed Processing(1986)——聯結主義宣言。
- M. Minsky、S. Papert:Perceptrons(1969)——XOR 危機的製造者。
- G. Cybenko / K. Hornik:萬能逼近定理(1989)——多層網路能力的數學定論。
- 相關案件:
1989-楊立昆卷積網路.md、1997-長短期記憶LSTM.md、../人工智慧/1969-MinskyPapert批判.md、../資訊科學/2018-深度學習三巨頭.md、../資訊科學/1936-圖靈機.md。