跳轉到

1986 - 反向傳播復興(Learning representations by back-propagating errors)#

案件摘要#

1986 年,David Rumelhart、Geoffrey Hinton、Ronald Williams 在《Nature》 發表 Learning representations by back-propagating errors—— 只有短短三頁,卻復活了整個神經網路領域:

\[ \boxed{\text{鏈鎖律 + 梯度下降 = 多層網路可以被訓練}} \]

反向傳播(back-propagation)的核心思想: - 前向傳播:輸入層 → 隱藏層 → 輸出層,算出預測; - 反向傳播:誤差從輸出層倒著一層一層傳回,算出每個權重的梯度; - 梯度下降:沿著負梯度方向微調每個權重。

\[ \frac{\partial L}{\partial w} = \frac{\partial L}{\partial y}\cdot\frac{\partial y}{\partial w} \quad\text{(鏈鎖律:逐層相乘)} \]
\[ \theta \leftarrow \theta - \eta\,\nabla L \quad\text{(梯度下降:η 是學習率)} \]

這破解了 1969 年的 XOR 危機——Minsky 與 Papert 證明單層感知機連 XOR 都學不會,讓神經網路進入十五年寒冬;而隱藏層 + 反向傳播讓 多層網路自己學出「內部表徵」,XOR 應聲而破。 神經網路從此起死回生——2012 年的深度學習革命,源頭就在這三頁。

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

  • 1957 感知機的榮光與 1969 的寒冬: Rosenblatt 的感知機(見 ../人工智慧/1957-Perceptron感知器.md) 曾經風光一時;但 Minsky 與 Papert 在 1969 年的《Perceptrons》一書中 數學上證明:單層感知機不能表示 XOR(線性不可分):
\[ \text{XOR}(x_1, x_2) = x_1 \oplus x_2 \quad\text{(無法用一條直線切開)} \]
\[ \text{XOR: } (0,1) \to 1,\ (1,0) \to 1,\ (0,0) \to 0,\ (1,1) \to 0 \quad\text{——四點交錯!} \]

整個領域的經費瞬間蒸發——這是 AI 史上最著名的「寒冬」 (見 ../人工智慧/1969-MinskyPapert批判.md)。 - 理論上早有出路,卻沒有演算法: 其實隱藏層就能表示 XOR——但 1969 年沒有人知道怎麼訓練隱藏層:

\[ \text{問題:隱藏層的「正確答案」是什麼?(沒有標籤,delta 規則失效)} \]
  • Werbos 的先創(1974): Paul Werbos 在 1974 年的哈佛博士論文中首創反向傳播—— 把動態規劃與鏈鎖律結合,用於多層網路的誤差回傳。 可惜這篇論文在神經網路寒冬中無人問津; 1986 年 Rumelhart–Hinton–Williams 的 Nature 論文讓它重見天日。
  • Widrow–Hoff 的 delta 規則(1960): ADALINE(見 1960-韋德羅ADALINE.md)的 delta 規則已經會用 誤差調整單層權重:
\[ \Delta w = \eta\,(y - \hat{y})\,x \quad\text{(誤差 × 輸入)} \]

反向傳播正是 delta 規則的逐層推廣—— 隱藏層的「誤差」由上一層的誤差反傳而來:

\[ \text{delta 規則(1960):單層} \xrightarrow{\text{鏈鎖律(1986)}} \text{任意深的多層}. \]
  • Hinton 的執念: 寒冬期間,Hinton 遠走英國、美國,堅持相信神經網路; 他與 Rumelhart 在加州大學聖地牙哥分校(UCSD)的聯結主義(PDP)團隊 合作,終於在 1986 年交出這份改變歷史的答卷。

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

第一條線索:多層網路的前向傳播#

兩層網路(輸入 2 維 → 隱藏 \(H\) 維 → 輸出 1 維):

\[ h_j = \sigma\Big(\sum_i w_{ij}^{(1)} x_i + b_j^{(1)}\Big), \qquad \hat{y} = \sigma\Big(\sum_j w_j^{(2)} h_j + b^{(2)}\Big) \]
  • \(\sigma(z) = \frac{1}{1+e^{-z}}\) :sigmoid 活化函數(可微,這是關鍵!);
  • 隱藏層的意義:它把輸入變換到新的空間——
\[ \boxed{\text{隱藏層 = 自動學出的「表徵」(representation)}} \]

XOR 在原始空間線性不可分,但隱藏層把它映射成線性可分的空間。

第二條線索:鏈鎖律——反向傳播的數學核心#

損失函數(二元交叉熵):

\[ L = -\big[y\log\hat{y} + (1-y)\log(1-\hat{y})\big] \]

梯度如何回傳?用微積分的鏈鎖律逐層相乘:

\[ \frac{\partial L}{\partial w_j^{(2)}} = \underbrace{\frac{\partial L}{\partial \hat{y}}}_{\text{誤差}} \cdot \underbrace{\frac{\partial \hat{y}}{\partial w_j^{(2)}}}_{h_j \, \hat{y}(1-\hat{y})} = (\hat{y}-y)\,h_j \]
\[ \frac{\partial L}{\partial w_{ij}^{(1)}} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial h_j} \cdot \frac{\partial h_j}{\partial w_{ij}^{(1)}} = (\hat{y}-y)\, w_j^{(2)}\, h_j(1-h_j)\, x_i \]
  • 注意 \(\frac{\partial L}{\partial h_j}\) 的結構:輸出誤差 \((\hat{y}-y)\) 乘上連接權重 \(w_j^{(2)}\) 再乘上活化函數的導數 \(h_j(1-h_j)\) ——
\[ \boxed{\text{誤差沿著權重反向流動,這就是「back-propagation」}} \]
  • delta 規則的推廣:1960 年的 \(\Delta w = \eta (y-\hat y) x\) 中, 誤差 \((y-\hat y)\) 是直接觀測的;1986 年,隱藏層的誤差是 反傳算出的——演算法完全相同,只是誤差的來源不同。

第三條線索:梯度下降與表徵學習#

梯度下降:沿負梯度更新每個參數:

\[ \theta \leftarrow \theta - \eta\,\nabla_\theta L, \qquad \theta = \{W^{(1)}, b^{(1)}, W^{(2)}, b^{(2)}\} \]

為什麼 XOR 從此可解? 1. 隱藏層學到的表徵把四點重新排列; 2. 輸出層只需在新空間畫一條直線。

\[ \text{原始空間(線性不可分)} \xrightarrow{\text{隱藏層變換}} \text{新空間(線性可分)} \]

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)
四組輸入的預測全部命中(誤差 < 0.003)—— 1969 年的 XOR 危機,被 1986 年的鏈鎖律徹底破解。

結案 -- 後果與影響#

  • 聯結主義的復興(1986):
\[ \boxed{\text{多層網路可訓練——神經網路起死回生}} \]

Nature 論文發表後,反向傳播成為一切神經網路的標準訓練演算法; 1986 年的 PDP 兩卷本《Parallel Distributed Processing》同步問世, 聯結主義正式挑戰符號主義(見 ../人工智慧/1956-Dartmouth會議.md)。 - 萬能逼近定理(1989): Cybenko(1989)與 Hornik–Stinchcombe–White(1989)證明:

\[ \boxed{\text{單隱藏層網路可以逼近任何連續函數}} \]
\[ f(x) \approx \sum_j \alpha_j\,\sigma(w_j x + b_j) \quad\text{(只要隱藏單元夠多)} \]

這從數學上蓋棺定論:Minsky 1969 年的判決只適用於單層線性模型—— 多層網路的能力沒有上限。 - AI 復興與應用爆發(1986–2000): - 1989 LeCun 卷積網路:手寫數字辨識(見 1989-楊立昆卷積網路.md); - 1987 Jordan、1990 Elman:遞迴網路與序列建模; - 1997 LSTM:長期記憶(見 1997-長短期記憶LSTM.md); - 1997 DeepBlue:西洋棋擊敗世界棋王(見 ../人工智慧/1997-DeepBlue擊敗棋王.md)。 - 深度學習革命(2012):

\[ \text{反向傳播(1986)} \xrightarrow{\text{GPU + 大數據}} \text{AlexNet(2012)} \xrightarrow{} \text{ChatGPT(2022)} \]

2012 年 AlexNet 用反向傳播訓練 8 層卷積網路,橫掃 ImageNet (見 ../人工智慧/2012-AlexNetImageNet革命.md)—— 深度學習時代正式開啟。 - 遲來的榮耀(2018 圖靈獎): Hinton、LeCun、Bengio 獲 2018 年圖靈獎—— 表揚「深度學習的概念與工程突破」(見 ../資訊科學/2018-深度學習三巨頭.md)。

\[ \text{寒冬中的執念(1970–1986)} \xrightarrow{30\text{ 年}} \text{資訊科學的聖杯}. \]

Hinton 2024 年再獲諾貝爾物理學獎——史上第一人同獲圖靈獎與諾貝爾獎。 - 歷史的公道: Werbos(1974 博士論文) 才是反向傳播的首創者—— 他在 1974 年就被引述,但榮耀屬於 1986 年讓世界相信的人。

\[ \text{創新(1974)} \xrightarrow{\text{傳播(1986)}} \text{革命}. \]

真相:發明不夠,還要讓世界相信——這是科學史的鐵律。 - 歷史定位:反向傳播是神經網路的心臟—— 從 1986 到今天,每一個神經網路(包括訓練中的大語言模型) 跑的都是同一個演算法:前向傳播、算誤差、鏈鎖律反傳、梯度下降。

\[ \text{微積分(鏈鎖律)} + \text{最佳化(梯度下降)} = \text{機器學習的一切}. \]

關鍵人物與文獻#

  • 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。