Grokking:在記憶之後很久才泛化
在一個演算法任務上(模算術是經典例子)訓練一個小網路,盯著兩條曲線看。訓練準確度很快達到 100%——模型已經背下來了。測試準確度長時間停在隨機猜測的水準……然後,幾千步之後,在配方毫無改變的情況下,它突然跳到完美。這個延遲的相變就是 grokking,它最生動地證明了:擬合訓練集與理解任務,是兩件不同的事。
逐漸成形的解釋把 grokking 連到第 3 篇的隱式偏好與場中的正則化器:存在一個記憶解(高範數、找得快)與一個泛化解(低範數、有結構——網路真的學到一個類傅立葉的電路來做模加法)。權重衰減(weight decay)緩慢地把記憶解的範數抽乾,直到隱式與顯式正則化把天平倒向有結構的那個解。Grokking 是雙下降在時間上的表親:被戲劇性延遲的第二次下降。
权重衰减加入范数惩罚,于是低范数的泛化解最终胜过快速找到的高范数记忆解——这正是顿悟(grokking)背后的机制。
學習的資訊瓶頸觀點
另一個框架問的是:一個表徵保留了什麼、丟棄了什麼。資訊瓶頸理論(information bottleneck theory)把某層的表徵 T 模型化為在兩個量之間權衡:它記得多少關於輸入 X 的資訊,對比它告訴你多少關於標籤 Y 的資訊。好的表徵是一個最小充分統計量——關於 Y 的資訊最大、關於 X 的資訊最小。在這個觀點下,訓練有兩個階段:一個快速的擬合階段抓取標籤資訊,接著一個緩慢的壓縮階段遺忘無關的輸入細節。
信息瓶颈目标:压缩输入(让 I(X;T) 变小),同时保留对标签有用的信息(让 I(T;Y) 变大),二者由 β 权衡。
這是個美麗而有爭議的故事。把它連到泛化是直覺的——一個遺忘輸入雜訊的表徵,應該能把留存的訊號遷移出去——而它自然地以資訊熵(entropy)與 KL 散度(KL divergence)作為本位貨幣。但它的實證主張受到質疑:壓縮階段高度依賴你如何估計互資訊,以及依賴激活函數,而且並非總會出現。把資訊瓶頸當成一個磨利了領域問題的、富生成力的假說,而非已成定論的事實。
為何深度——可被證明地
從動力學跨到表達能力:為什麼要深,而不只是寬?深度分離(depth separation)的結果把這件事說精確了。存在某些函數,深度網路只用適量單元就能表示,而任何淺層網路都需要指數多的單元才能逼近——非線性的複合以一種寬度無法廉價複製的方式摺疊了空間。經典例子構造出高度震盪的函數,其線性區域數量隨深度指數成長,卻只隨寬度多項式成長。
输入层经过加权连接传入两个隐藏层和一个输出层。
把這個對照第 2 篇的萬能逼近:單一個寬層可以逼近任何函數,但定理對成本隻字未提。深度分離補上了缺失的經濟學——對於組合式、階層式的目標,深度買到指數級的參數效率,而這正是自然資料的結構。它是「深度學習」中「深度」二字背後的理論支柱,也解釋了為何網路所建立的階層表徵(hierarchical representations)不是奢侈品,而是其效率的來源。
為何古典界限至今仍幫不上忙
對嚴格泛化理論的現狀,值得直白以對,因為它界定了前沿在哪裡。古典的複雜度量測——VC 維度(VC dimension)、Rademacher 複雜度(Rademacher complexity)——隨參數量增長,因此對現代網路給出大於 1 的泛化界限:完全空洞。它們甚至無法排除記憶解。各種改進有幫助,但尚未填平這道落差。
经典 VC 界:真实风险 ≤ 经验风险加上一个与 d_VC/n 有关的复杂度项——对于 d_VC ≫ n 的过参数化网络,这个界毫无意义。
- 基於間隔的界限:以間隔(margin)做正規化,而非計算參數——容量關乎「多有信心」,而非「有多少個」。
- PAC-Bayes 界限:PAC-Bayes 量測與先驗的距離,給出真實網路少數幾個非空洞的界限——平坦極小值在此以「對寬先驗的低 KL」之姿重新出現。
- 基於範數與資料的量測:把容量綁到訓練後的權重與真實資料譜上,呼應第 1 篇良性過度擬合的故事。
退一步看,這個領域的輪廓就清楚了。還沒有任何單一理論能解釋深度學習;取而代之的是一群局部結果——核、隱式偏好、地景幾何、資訊、深度、精煉的界限——各自照亮一個面向。誠實的前沿是統一:把這些相容卻分立的故事,化為一套能量化「某個網路何時、以及泛化得多好」的說法。正是這個開放問題,使它成為一個研究領域,而非一個已闔上的篇章。