G1.3 一層會跟著動,整個網路也會嗎?
本篇重用1 篇
同一條規則接很多次,還會一致嗎?
上一篇讓道路偵測結果隨輸入一起平移。但分類模型不只做一次偵測,它還會把邊界組成路口、把路口組成街區,最後回答是哪個地方。
我們先不必猜整個網路,而是問:如果每一步都用正確規則回應變換,接起來是不是仍然正確? 就像轉寄一份重新編號的名單,只要每一位處理者都用同一套編號規則,最後不該突然把資料對錯人。
組合時,夾在中間的 action 要對得上
設第一層 的輸入與輸出 action 分別是 ,第二層 的輸入與輸出 action 是 。我們知道
令 ,逐步代入:
第一步使用第一層的性質,第二步使用第二層的性質。這說明組合仍 equivariant。重要條件不是兩層都貼著同一個架構名稱,而是第一層輸出的變換,確實是第二層懂得處理的變換。
Activation 會不會破壞它?
對普通 CNN feature map,平移只是在搬動位置,不會混合每個位置裡的 scalar channel。若 在每個位置都用同一個函數,例如 ReLU,
所以同一個 pointwise activation 可以放在中間。相同道理也適用於重排位置的 permutation action。
但這不是「任何 activation 都和任何 action 可交換」。如果 feature 是旋轉向量,旋轉會混合分量,逐分量 ReLU 就不一定成立;G2.2 會算一個反例。
Residual connection 也要對型態:如果兩個分支都以同一個線性 action 變換,則 。若一邊是 scalar、另一邊是 vector,沒有先定義怎麼對齊,就不能直接相加。
最後要分類,為什麼可以把位置加掉?
現在 已經跟著輸入移動。但我們只想回答「是不是台大」,不想讓全局 label 隨位置變動。一個自然做法是把每個位置找到的資訊加總:
若位置集合在變換下只是重排,例如 circular grid 上的平移,令 ,便得到
這個操作叫 global pooling。它把 equivariant feature 轉成 invariant summary,再交給一個分類函數 , 就得到 invariant 分類輸出。
固定位置數量下,mean pooling 只是 sum 除以數量,也具有同樣性質。Max pooling 則利用「重排不改變最大值」,也可得到 invariant summary;這些操作保留的資訊卻不相同。
位置真的可以丟掉嗎?
想像偵測到一棟建築,把它向右移三格。全局加總不變,分類很方便,但從這個數字無法知道它現在在左邊還是右邊。
如果任務是 segmentation 或定位,就不能在最後把所有位置都加掉。這時應保留 equivariant feature map,讓每個位置都有一個對應答案。
我們不是越 invariant 越好,而是在任務需要的地方才消除變換資訊。 中間的 feature 保留位置,分類 head 才消除位置;定位 head 則把位置留下來。
課堂提問
如果把 segmentation 網路的最後一張 feature map 做 global average pooling,能靠這一步保留每個建築的位置嗎?
先想一想,再展開看整理後的答案
不能。相同內容出現在不同位置時,全局平均可能完全相同。Pooling 保證的是全局摘要的 invariance,不是可以恢復原來的位置。
動手看一次
在 circular boundary 與 stride=1 下,觀察局部輸出如何移動,再比較全局 ReLU mean。前者跟著平移,後者則把位置資訊加總成不變的答案。