為什麼要把寬度推到無限
有限網路是非線性、非凸且糾纏的。但隨著神經元數量增加,許多量會集中:許多獨立隨機貢獻的總和,經過適當縮放後,會表現得像它的平均值加上一個高斯擾動。無限寬度極限就是物理學家「取大 N 極限」的招數,用來把雜亂的系統變得精確可解。回報是兩個乾淨的物件——NNGP 核與神經正切核——它們把一個神經網路(neural network)化為線性代數。
兩種縮放給出兩種極限。NTK/懶惰縮放讓每層輸出維持 O(1),產生核行為;平均場縮放讓函數維持 O(1) 而允許個別神經元移動,產生真正的特徵學習。你採用哪種極限,是一個建模選擇,會給出非常不同的預測——兩者我們都會碰到。
一个多层感知器,包含输入层、两个隐藏层和输出层,由带权重的边相连。
NNGP:初始化時的網路就是一個高斯過程
拿一個權重隨機初始化(weight initialization)的深度網路,把它的輸出看成輸入的函數。當寬度趨於無限,中央極限定理在一層層之間生效:輸出是來自某個高斯過程(Gaussian process)的抽樣,其共變異數——NNGP 核——透過逐層的簡單遞迴算出。這就是神經網路高斯過程(neural-network Gaussian process)對應。用一個無限寬網路做貝氏推論,恰好等於用 NNGP 核做高斯過程回歸。
作为逐层递归的 NNGP 核:每一层的协方差是在上一层高斯分布下对激活值取期望。
K0 = x @ x.T # input covariance
for layer in range(depth):
K = activation_covariance(K0) # e.g. arccos kernel for ReLU
K0 = K
f_post = gp_posterior(K, X_train, y_train, X_test) # NNGP regressionNTK:訓練變成核回歸
現在來訓練。神經正切核(neural tangent kernel)是網路對其參數梯度的內積——由輸出對權重的雅可比矩陣(Jacobian)構成。無限寬度的關鍵事實是:隨著寬度增加,這個核在訓練過程中停止移動。權重幾乎不離開初始化(即「懶惰」區間),網路表現得像它的一階泰勒展開,而在平方損失上的梯度下降(gradient descent)恰好變成以固定 NTK 進行的核梯度流。
神经正切核:网络在两个输入处参数梯度的内积。
這是個了不起的禮物。一個線性常微分方程取代了非凸優化;收斂到零訓練損失有保證,而且你可以寫出測試預測的封閉形式。NTK 的特徵值甚至能預測目標的哪些成分學得快、哪些學得慢——直接預示了我們在第 3 篇會遇到的譜偏差。
平均場的另一條路:特徵真的會動的地方
NTK 區間同時也是對它自己的控訴:如果權重從不移動,網路就永遠學不到新特徵——它只是一台固定的核機器,其表達能力(expressive power)就只是初始核已有的能力。真實網路顯然會學特徵。神經網路的平均場理論(mean-field theory of neural networks)採取另一個極限:把雙層網路看成神經元上的一個分布,而訓練是該分布的梯度流(一個 Wasserstein 流)。神經元會遷移、會專精,核會演化——特徵學習是內建的。
平均场视角:网络输出成为对神经元分布的积分,而该分布在训练中确实会移动。
核圖像解釋了什麼,又遺漏了什麼
- 解釋了:過度參數化訓練的收斂保證、封閉形式的泛化,以及為什麼初始化尺度很重要。
- 遺漏了:在困難任務上,真實網路會勝過自己的 NTK——特徵學習帶來固定核達不到的可量測優勢。
- 遺漏了:遷移學習、表徵重用,以及第 5 篇的離散跳變,全都活在懶惰區間之外。
所以把無限寬度當成一個可解的模式生物:深度學習理論的大腸桿菌。它不是你訓練好的 ResNet,卻是第一個能讓你從頭到尾證明事情的場景,而每個更豐富的理論都以「它與現實之間的落差」來衡量。把那個落差——特徵學習——牢牢放在視野裡,接著我們轉向:有限、非懶惰的梯度下降,究竟偏好什麼。