平移等變性
平移等變性的意思是:如果你把輸入平移,輸出也會以同樣方式平移。把影像中的一隻貓往右移兩個像素,那麼每一張對這隻貓有反應的特徵圖也都會往右移兩個像素——回應內容不變,只是換了位置。這正是「卷積不在乎東西在哪裡」的精確意義:它在每個地方都計算相同的局部函數,因此對某個圖樣的偵測會隨圖樣一起移動。它有別於平移不變性(translation invariance)——後者是指輸出在平移之下完全不變。
精確地說,若對任意平移都有 f(shift(x)) = shift(f(x)),則運算 f 是平移等變的。卷積具有此性質,因為它在每個位置都以完全相同的方式套用同一個共享的卷積核(這正是權重共享所換來的)。等變性正是讓 CNN 省資料的原因:網路不需要在每一個可能的位置都看過貓,就能在各處辨識它,因為在一個位置學到的偵測器會自動在所有位置運作。接著池化與全域平均池化在 head 把這份等變性轉換成近似的不變性,使最終的類別預測對「物體位於何處」是穩定的。
實務上,這份等變性只是近似的,而其落差很有啟發性。零填補在邊界附近破壞了它(邊界是一個特殊位置),而任何由步幅或池化造成的降採樣,會因混疊(aliasing)而對「小於一個步幅」的平移破壞它——Azulay 與 Weiss(2019)證明 CNN 的預測可能在一個像素的平移下翻轉,而 Zhang(2019)藉由在降採樣前插入抗混疊的模糊,找回了大部分失去的等變性。卷積也只對平移等變,而非對旋轉或縮放等變;要達到那些需要特殊設計(群等變 CNN、可操控濾波器 steerable filters),而視覺 Transformer 則完全沒有內建的平移等變性,改為從資料與資料增強中學出近似的平移容忍度。
為何重要:等變性與不變性是常見的混淆。卷積是等變的(特徵隨輸入移動);而分類 head 應該是不變的(標籤在平移下不變)。好的架構在主體保持等變、只在最後才變得不變——太早讓它變得不變(例如把所有位置都池化掉)會摧毀「定位物體」所需的資訊。