01.2 學習規則與權重更新#
本章導讀#
McCulloch–Pitts 的神經元是「固定的」——權重是設計出來的,不是學出來的。 1949 年,心理學家 Hebb 提出一個直覺到近乎顯然的規則: 「一起放電的神經元,連在一起。」這一行話,讓神經網路從「被建造」變成「會學習」。
淺顯說明#
Hebb 的想法:如果你的兩個朋友總是一起出現,你會自動把「他們倆」聯想在一起。 數學上:如果神經元 \(i\) 和 \(j\) 同時放電( \(x_i = x_j = 1\) ),就把連接它們的權重 \(w_{ij}\) 加大一點:
\(\eta\) 是「學習速率」。多次重複後,常一起出現的模式就被「烙印」在權重矩陣裡。
正規理論#
Hebb 學習規則#
給定訓練模式 \(\{\mathbf{x}^{(1)}, \dots, \mathbf{x}^{(M)}\}\) , \(\mathbf{x}^{(\mu)} \in \{-1, +1\}^n\) ,Hebb 律定義權重矩陣:
這是所有訓練模式的外積之和——每個模式貢獻一個秩一矩陣。
外積儲存的幾何#
外積 \(\mathbf{x}\mathbf{x}^\top\) 是一個秩一矩陣,把任何向量投影到 \(\mathbf{x}\) 方向後放大:
當 \(W = \sum_\mu \mathbf{x}^{(\mu)}\mathbf{x}^{(\mu)\top}\) 且各模式近似正交時:
雜訊項因正交性( \(\mathbf{x}^{(\mu)\top}\mathbf{x}^{(\nu)} \approx 0\) )而消失。 輸入一個殘缺的模式,權重矩陣會把它「補全」成最像的已學模式——這就是聯想記憶。
儲存容量#
\(n\) 個神經元、隨機模式,Hebb 聯想記憶的容量約為:
超過容量,模式間的干涉(cross-talk)會讓回憶失敗。
簡易範例:儲存兩個模式#
儲存 \(\mathbf{x}^{(1)} = (1, 1, -1)^\top\) 與 \(\mathbf{x}^{(2)} = (-1, 1, 1)^\top\) , \(\eta = 1\) :
現在輸入殘缺版 \(\mathbf{v} = (1, 0, -1)^\top\) (第二位遺失):
遺失的位元被補回來了——網路「想起」了模式一。
歷史典故#
- 1949 年 Hebb 學習規則:見卷宗 ../1949-Hebb學習規則.md——一句「cells that fire together, wire together」改寫了學習理論。
- 1890 年 William James 的聯想主義:見 ../1890-WilliamJames聯想主義.md——Hebb 律的心理學前身,早了 59 年。
- Hebb 律的成熟應用(Hopfield 網路)將在第 04.1 節正式登場。
習題#
- 用 Hebb 律儲存 \(\mathbf{x}^{(1)} = (1,-1,1)\) 與 \(\mathbf{x}^{(2)} = (1,1,-1)\) ,寫出 \(W\) ,並驗證輸入 \((0,-1,1)\) 能回憶出哪個模式。
- 證明:若所有模式兩兩正交( \(\mathbf{x}^{(\mu)\top}\mathbf{x}^{(\nu)} = 0\) ),則雜訊項恰為零。
- 討論:為什麼 Hebb 律「只會加強、不會減弱」在生物上與數學上各有什麼問題?(提示:權重會無界增長。)
補充#
1. 數學推導證明#
證明(習題 2):兩兩正交時雜訊項恰為零。
設 \(W = \sum_{\mu=1}^{M} \mathbf{x}^{(\mu)}\mathbf{x}^{(\mu)\top}\) ,對固定的 \(\nu\) :
第二項(cross-talk 雜訊項)逐項為零,故取符號後 \(\mathrm{sgn}(W\mathbf{x}^{(\nu)}) = \mathbf{x}^{(\nu)}\) ——正交模式是 Hebb 儲存的不動點,回憶零誤差。 \(\blacksquare\)
證明(習題 1 的手算): 儲存 \(\mathbf{x}^{(1)} = (1,-1,1)^\top\) 、 \(\mathbf{x}^{(2)} = (1,1,-1)^\top\) :
輸入殘缺版 \(\mathbf{v} = (0,-1,1)^\top\) (第一位遺失,約定 \(0\) 表示未知):
(第一位 \(0 \to +1\) :實作上把 \(0\) 判為 \(+1\) ,即「無意見時偏向正」。)網路補回遺失位元,想起模式一。 \(\blacksquare\)
說明(習題 3):無界增長。 每次共放電 \(W \leftarrow W + \eta\,\mathbf{x}\mathbf{x}^\top\) ,取 Frobenius 範數: \(\|W\|_F\) 每步至少增加約 \(\eta n\) (同向累加、無衰減項)。生物上突觸強度有飽和上限;數學上權重發散會讓動力學(如 04.1 節能量)數值不穩。解法是加衰減/正規化(如 Oja 律 \(w \leftarrow w + \eta y(x - yw)\) ),把增長箝住。
2. 簡易範例#
範例一:本章例子的程式重現。 _code/01.2-hebb-associative-memory.py 用 numpy 實現 hebb_store(外積和)與 recall(反覆 \(W\mathbf{v}\) 取符號)。輸出與手算一致: \(W = [[2,0,-2],[0,2,0],[-2,0,2]]\) ,輸入 \((1,0,-1)\) 回憶出 \((1,1,-1)\) ——遺失位元被補回。
範例二:正交模式零雜訊的數值驗證。 程式取 \(4 \times 4\) Hadamard 矩陣的四列(兩兩正交的 \(\pm 1\) 模式),印出 \(HH^\top/4 = I\) ,並逐個驗證 \(W\mathbf{x} = 4\mathbf{x}\) (斷言全過)——數值印證上面的證明:正交時交叉干涉恰為零。