手機轉了,模型該不該跟著轉?
「Invariance and Equivariance」系列第 5 篇。前兩篇把地圖改成 set 與 graph;現在回到影像分支,處理一般 CNN 尚未保證的旋轉。
回到手機地圖。你把手機轉了 30 度,羅斯福路不再水平,新生南路不再垂直,台大總圖在畫面中的座標也轉到另一個方向。對人來說,這仍然是同一段城市結構;對一般 CNN 來說,這卻不一定是同一個 pattern。
上一篇的 convolution 保證的是:畫面平移時,feature map 跟著平移。但旋轉不是平移。把一條水平道路旋成斜線後,普通 filter 不會自動知道「這是同一種道路,只是方向變了」。
這篇只追一個問題:
平移等變只告訴模型如何處理位置改變;旋轉等變還需要模型知道 feature 的方向、型別,以及輸出空間如何隨旋轉改變。
如果你只說「我要 rotation invariant」,可能會把方向資訊抹掉;如果你說「我要 rotation equivariant」,你又必須說清楚:哪個輸出要旋轉?哪個 feature 是 scalar?哪個 feature 是 vector?哪個 feature 是 orientation channel?
回到那支旋轉中的手機
上一篇把平移寫成 :
現在把手機旋轉,記作 。如果任務是 segmentation,我們會希望
也就是輸入影像旋轉後,輸出的 mask 也跟著旋轉。
如果任務是地點分類,則希望
同一個旋轉,對不同輸出有不同要求。這是第 1 篇的核心判斷再次出現:先看 output space,再決定 invariance 或 equivariance。
把平移、旋轉、反射以及它們的組合放在一起,就得到一個 group 。Group-equivariant CNN 想問的是:
對一整組 transformations ,模型能不能穩定滿足 ?
下面的 demo 只允許 四個方向。普通單一 filter 的 response 會隨道路方向忽高忽低;group feature 則把 response 在四個 orientation channels 間循環搬動。被保留的不是某一格數值,而是整個有結構的 feature。
先別急著說 steerable:從四個方向盒子開始
想像我們做了一組道路偵測器:一個偵測水平道路,一個偵測 30 度道路,一個偵測 60 度道路,一個偵測垂直道路。當手機地圖旋轉時,原本落在「水平道路 channel」的訊號,可能會跑到「30 度道路 channel」。
這個畫面非常重要。旋轉不只移動 spatial location,也可能在 feature channels 之間搬動資訊。
普通 CNN 的 feature map 主要標記「哪裡有某種 feature」。Group convolution 的 feature map 更像標記:
這個 pattern 在哪個位置、以哪個 group element 或 orientation 出現?
所以 feature 不再只住在平面位置 上,也可能住在 上,其中 表示某個離散方向或 group element。旋轉輸入時,feature 會同時改變位置與 orientation index。
這就是 group convolution 的直覺入口:filter 不只在不同位置上滑動,也在不同 orientation 或 group elements 上比較。
三種「看過旋轉」不是同一件事
在進入正式架構前,先分清楚三種常被混在一起的方法。
Data augmentation:訓練時把地圖旋轉很多角度,讓模型看過更多方向。這可以鼓勵模型學到旋轉 robustness,但它不保證每一層都滿足 exact equivariance。
Test-time averaging:推論時把同一張圖旋轉多次,分別預測,再把結果平均或投票。這可以讓 classification output 更穩定,但成本較高,而且通常只處理最後輸出,不一定給你結構化的 equivariant feature。
Architectural equivariance:直接設計 layer,使它在數學上滿足
這是 group-equivariant CNN 的目標。它不是靠模型自己碰巧學會,而是把 symmetry 寫進運算。
三者都可能有用,但不是同一件事。Augmentation 是資料策略,test-time averaging 是推論策略,architectural equivariance 是模型設計。
Feature 自己也有型別
Steerable features 最容易被講得像魔法。其實它先問一個很日常的問題:feature 自己是什麼型別?
回到台北地圖:
- 「這個 patch 有沒有建築物」比較像 scalar feature。旋轉座標時,數值本身不需要旋轉。
- 「這條道路的方向」比較像 vector feature。旋轉手機時,方向也要旋轉。
- 「某個 pattern 以哪個角度出現」可以表示成 orientation channels。旋轉輸入時,channel index 會循環移動。
- 更高階的 geometric feature 可能不是普通 scalar 或 vector,而需要更一般的 representation。
用 representation 的語言說,feature space 也帶著 group action。當輸入被 作用,feature 不只是重新排列 spatial locations,也會在 feature channels 內依照某個 變換。
所以 steerable CNN 的精神不是「讓 filter 自己旋轉很酷」。更準確地說,它是把不同 feature type 對 transformation 的反應方式寫清楚,讓 layer 在這些型別之間做一致的 equivariant mapping。Cohen & Welling (2017) 把這件事表達成一套 feature type system:不同 representation 決定 feature 在 symmetry 下如何混合。
把 filter 從平面搬到 group 上
普通 convolution 可以被看成在 translation group 上滑動 filter:把 filter 放到每個位置,比對輸入 patch。
Group convolution 則把「滑動」推廣到更大的 group 上。若 包含平移與離散旋轉,filter 會在不同位置與不同方向上被應用。輸出 feature 因此可以記錄「某個 pattern 在哪裡、以哪個方向出現」。
對離散 group,group convolution 的一個標準寫法是
這裡 是定義在 group 上的 feature, 是 filter, 是我們要計算輸出的位置或 orientation, 掃過 group elements。關鍵的 表示:比較 filter 與輸入時,要用相對 transformation,而不是絕對名稱。這個相對結構使 left action 與 group convolution commute;Cohen & Welling (2016) 用它建立 G-CNN。
在方形 pixel grid 上,常見的 p4 包含整數平移與 旋轉;p4m 再加入反射。它們適合 demo 裡這種四方向世界,卻不等於連續任意角度的旋轉。從離散 orientation channels 走向更一般 feature types,才會接到 steerable CNN。
這對手機地圖很自然。道路、河流、建築邊界、路口形狀不會因為地圖旋轉就失去意義;但方向仍然可能是任務需要的資訊。Group-equivariant CNN 的目標,是不要在旋轉後從頭學另一套 filter,也不要把方向粗暴平均掉。
不過這裡也有保守界線:G-CNN 常處理離散旋轉或有限 group;連續旋轉、插值、邊界、grid discretization 都會帶來實作上的近似。這些問題會在最後一篇回到 exact vs approximate symmetry。
幾個容易想歪的地方
這怎麼接到論文?
Cohen & Welling 的 Group Equivariant CNNs 把 convolution 從平移推廣到更一般的離散 group,例如旋轉與反射。直覺上,它讓 filter 在 group 上共享,讓 feature map 對更大的 transformation family 保持等變。
Steerable CNNs 進一步把 feature type 說清楚:feature 不一定只是 scalar channel。不同 feature type 對旋轉有不同 transformation law,而 representation theory 提供了一套語言描述這些 transformation law。這不是為了把數學變難,而是為了避免把向量、方向、orientation channel 都當成普通 scalar feature。
研究上,真正要問的不是「能不能做 rotation equivariance」,而是:
- 這個任務真的需要 exact rotation equivariance 嗎?
- 輸出是 invariant label,還是 equivariant mask/vector/field?
- Feature type 是 scalar、vector、orientation channel,還是更高階 representation?
- 用離散 group 夠不夠,還是需要連續旋轉或 3D geometry?
如果地圖永遠 north-up,硬塞 rotation equivariance 可能沒有必要;如果是顯微影像、天文影像、分子或 3D 場,旋轉 symmetry 可能就是核心結構。
下一步:從影像方向走到空間向量
到目前為止,地圖都被我們當成影像。但地圖也可以不是 pixel grid。下一篇把它改寫成一堆點:建築物中心、路口、GPS samples。這時最先冒出的 symmetry,不是旋轉,而是點的輸入順序根本不該重要。