卷積神經網路

權重共享

權重共享的概念是:同一小組卷積核權重在每一個空間位置都被重複使用,而不是為每個位置學一組獨立的權重。全連接層把第 3 列第 5 欄的像素,視為與第 100 列第 200 欄的像素毫不相關、各擁有自己私有的權重。卷積層則持相反主張:垂直邊緣不論出現在哪裡都是垂直邊緣,那就讓一個偵測器——一組權重——掃過整張影像。共享編碼了一個先驗:有用的視覺圖樣到處都一樣。

精確地說,在卷積層中,單一個含 C_in 乘 k 乘 k 個權重的濾波器,被以完全相同的方式套用在全部 H 乘 W 個輸出位置。這正是為何參數量是 C_out 乘 C_in 乘 k 乘 k——與影像尺寸無關——而不是同樣這些像素若用全連接層所需的天文數字。對一張 224x224x3 的影像,一層全連接到 224x224 隱藏圖會需要數十億個權重;一個同樣通道數的 3x3 卷積只需要幾百個。因此權重共享是 CNN 在影像上「可行且省資料」的最大單一原因。

權重共享還有第二個深層後果:它正是賦予卷積「平移等變性」的根源。因為完全相同的運算在每個位置運行,把輸入平移就只是把輸出平移——沒有任何位置被特殊對待(邊界效應除外)。這是一個刻意設計、與自然影像統計性質相匹配的架構歸納偏置(inductive bias)。其取捨是:純粹的權重共享假設了空間穩定性(spatial stationarity),當位置確實重要時(例如人臉通常置中)可能並非最佳;需要時可用局部連接層(locally-connected layers)、CoordConv 或位置嵌入等變體來放鬆它。

為何重要:權重共享是把 CNN 與多層感知器(MLP)以及視覺 Transformer 區分開來的歸納偏置。ViT 並不以同樣方式共享空間權重,必須從大量資料與資料增強中學出局部性/等變性——這正是為何純 ViT 需要遠多於 CNN 的訓練資料才能達到相同準確率,也是為何混合式/卷積式 ViT 會重新引入部分共享。

又稱
parameter sharingtied weights