Toy Models of Superposition:神經網路的特徵壓縮術

🌏 Read this article in English

打開 IDE。檔案名稱:model_weights.bin

你透過 hook 觀察隱藏層的單一神經元。它同時響應了 ‘Python’ 和 ‘錯誤處理’。

你的直覺告訴你這應該是混亂的。在部分可解釋性分析的便利假設中,一個神經元該對應一個概念。現在兩個不相關的概念擠在同一個維度裡,看起來像是模型壞掉了——我們稱之為「多義性」(Polysemanticity)。

但如果你換個視角看:這不是 bug,這是特徵層面的壓縮(而非參數或檔案大小的壓縮)。

Anthropic 的 Toy Models 研究揭示了一個反直覺的事實:這並非設計缺陷,而是模型在特定稀疏度與容量瓶頸下,學到的一種容許有限干擾的非正交表示策略。我們稱之為「疊加」(Superposition)。

理解這個機制,是解開黑盒子的一把鑰匙。

為什麼你的神經網路會「塞爆」?

維度瓶頸強迫模型必須捨棄,而特徵稀疏性給了模型繞過限制的空間。

在傳統的線性代數觀念中,如果你只有 N 個維度(神經元),你最多只能正交地儲存 N 個獨立的特徵。就像一個有 10 個抽屜的櫃子,每個抽屜只能放一件物品,放第 11 件時就沒地方了。

但模型不是整理師。它是壓縮軟體。它不在乎你怎麼分類,它在乎的是「佔用空間」。

當特徵在數據中呈現稀疏性(Sparsity)——也就是說,在任何給定時刻,只有少數特徵被激活時——模型可以透過「疊加」來儲存超過 N 個特徵。這不像整理檔案夾,更像是在高密度硬碟上進行位元壓縮。多個低共現特徵以非正交方向編碼;共同激活時才產生交叉干擾。只要資料不同時讀取,多個檔案可以佔據同一個磁區。

然而,這種壓縮是有代價的。當兩個特徵被壓在同一個空間時,它們會產生「干擾」(Interference)。模型必須依賴非線性激活函數(如 ReLU)來過濾這些干擾,否則輸出就會變得混亂。

疊加不是 bug。它是模型在容量受限下的高效壓縮策略。這讓模型能以 m 維的代價,表示多於 m 個稀疏特徵。

核心機制:從線性到非線性的相變

要理解疊加如何發生,我們必須看模型是如何學習的。研究人員使用了一個簡單的 Toy Model:輸入層接收特徵,隱藏層透過權重矩陣轉換,最後輸出預測值。

關鍵在於ReLU 激活函數的引入。

在純線性瓶頸自編碼器(Linear Bottleneck Autoencoder)的設定下,若損失函數為平方重建誤差,模型的最優解僅能儲存主成分(Principal Components),無法區分個別特徵。但一旦加入 ReLU(x′ = ReLU(WTh+b)),情況就發生了「相變」(Phase Change)。

研究發現,在特定 toy model、損失函數及稀疏度/重要性掃描下,最優解可能在以下三種配置間離散切換

  1. 不學習:特徵太不重要,直接被忽略。
  2. 疊加學習:多個特徵被壓縮到同一個或幾個神經元中,透過幾何結構互相區分。
  3. 專屬維度:對於極其重要或密集的特徵,模型會分配專屬的神經元。

這個轉變不是漸進的,而是尖銳的。就像水在 0 度結冰一樣,當稀疏性達到某個臨界點,模型會突然切換到疊加模式。

ReLU 是開關。它允許模型在非正交的空間中儲存特徵。透過非線性濾鏡,截斷部分負干擾——雖然不會消除干擾,但足以讓模型在有限的維度裡運作。

幾何之美:為什麼是規則多面體?

這是最令人驚訝的部分。當多個特徵被壓縮在低維空間時,它們並非隨機分佈,而是組織成特定的幾何結構。

研究人員發現,這些結構對應於**均勻多胞形(Uniform Polytopes)**的幾何配置。例如:

  • 二維空間:兩個特徵會形成「對跖點」(Antipodal pairs),即方向相反;五邊形則涉及更複雜的二維投影。
  • 三維空間:四個特徵可能形成四面體(Tetrahedron);方形反稜柱(Square antiprism)則出現在更高維度的投影中。

這種幾何排列看似優雅,實則危險。就像在狹窄的巷子裡並排停車,看起來整齊,但任何一點微小的擾動都會讓整排車連鎖撞擊。幾何結構越緊湊,干擾的代價越高。

真正重要的發現:能量階躍與對抗脆弱性

除了幾何結構,研究還揭示了兩個對實務有重大影響的現象。

首先是離散的能量階躍(Discrete Energy Level Jumps)。在參數掃描或訓練過程中,特徵的維度分配不是連續變化的,而是突然跳躍。模型會在不同的幾何配置之間切換,就像電子在原子軌道間跳遷一樣。這解釋了為什麼在某些階段,我們觀察到特徵維度在訓練中離散跳換。

其次是對抗攻擊的脆弱性(Adversarial Vulnerability)。研究發現,當模型進入疊加狀態時,其對對抗樣本(Adversarial Examples)的抵抗力會急劇下降。具體數據顯示,在疊加形成後,脆弱性增加了超過 3 倍。這是因為疊加引入了特徵間的干擾,使得微小的輸入擾動能透過幾何結構放大,導致錯誤的輸出。

疊加狀態下的模型對對抗攻擊更敏感(脆弱性增加 >3x)。這意味著高壓縮率可能伴隨著安全性的代價,這是設計高可靠性系統時必須考慮的取捨。

注意:這個 >3x 的結果來自特定 toy model,且攻擊上限為平均輸入 L2 norm 的 0.1。真實模型的外推仍需審慎評估。

你的判斷:何時該擔心疊加?

理解疊加不是為了恐懼它,而是為了更好地利用或緩解它。

適合的情境

  • 特徵稀疏且多樣:如果你的任務涉及大量不常同時出現的概念(如自然語言處理),疊加是模型高效運作的基礎。
  • 解釋性需求中等:雖然疊加讓單神經元難以解釋,但透過分析幾何結構和激活模式,我們仍能解碼部分行為。

不適合的情境

  • 特徵高度相關且密集:如果特徵經常同時出現,疊加的干擾會導致嚴重錯誤。此時模型可能更傾向於專屬維度或主成分分析(PCA)。實務上,我們應透過 SAE 等工具進行「展開」,而非試圖消滅疊加本身。
  • 高安全要求:如前所述,疊加狀態下的模型對對抗攻擊更脆弱。在醫療或金融等領域,可能需要額外的防禦機制或選擇不同架構。

這是一個權衡。疊加是神經網路效率與可解釋性之間的天然張力。

下一步:從黑盒子到透視鏡

Anthropic 的這項研究為機制可解釋性(mechanistic interpretability)奠定了堅實的基礎。它告訴我們,神經網路的內部並非混沌,而是充滿數學規律。

這為工程師提供了幾個值得探索的方向:

  1. 實測疊加:在你的模型中引入稀疏特徵,觀察隱藏層激活的幾何結構。
  2. 評估干擾:測量不同特徵組合下的輸出干擾程度,識別高風險的特徵對。
  3. 探索 SAE:嘗試將稀疏自編碼器應用於你的模型,看看能否提升可解釋性而不顯著犧牲效能。

如果你的模型在稀疏數據上表現良好且可解釋性需求不高,讓它保持疊加。如果需要高安全標準,考慮引入 SAE 作為『解壓縮器』。這不是對錯的問題,是選擇的問題。

所以,下次看到混亂的激活向量,別急著除錯。先問自己:這是噪音,還是壓縮?如果是壓縮,你準備好為這份效率支付什麼代價了?

Sources