G2.1 有了方向之後,下一層要怎麼共享規則?
本篇重用1 篇
下一層該看哪個方向的鄰居?
在一個路口看見向東的道路時,我們可能想同時看「左轉九十度的道路」是不是也存在。把整張地圖轉過去,向東變向北,但「左轉九十度」這個相對關係沒有改變。
因此下一層應該共享的,不是「方向零永遠用某組權重」,而是:相對於目前方向,偏轉多少,使用哪個權重。
先暫時忽略位置,只看四個方向的數值 。讓輸出方向 參考所有方向 ,並讓權重只依賴 :
索引都 modulo 。輸入 cyclic-shift 後,;令 ,
所以這層的輸出仍按同一個方式 shift。這是最小的 group convolution 例子。
位置與方向,可以一起寫嗎?
把「移到哪裡、轉到哪裡」合成一個 group element 。在正方格點上的整數平移加九十度旋轉,形成常用的 group;它的組合規則就是 G1.1 算過的旋轉與平移組合。
Feature 現在附在每個 pose 上。 是想產生輸出的位置與方向, 是我們參考的輸入 pose。兩者的相對關係是 。
用這個相對關係決定權重:
這裡採 correlation 的慣例,與 CNN 一樣常被合稱 group convolution。有限 可以直接對全部四個元素求和;無限格點的 實作則通常只使用有限支撐的局部 kernel。
Cohen 與 Welling [1] 用這種 G-correlation 建立 G-CNN。它不是把普通 channel 任意混合,而是依據 feature 所在的 group 座標共享。
為什麼同時平移、旋轉仍成立?
令整體變換為 ,group feature 的 left action 是
這是在新 pose 讀取搬動前的 pose 。將它代入,
令 ,得到 。Group 的乘法讓
因此
我們用到的是操作可組合、可取 inverse,以及 action 讓索引一一對應。這也解釋為什麼前面要先建立 group,而不是隻列一串 augmentation。
通道、bias 與 activation 怎麼接?
如果每個 group element 上有多個 scalar channels,可以對 input channels 加總、產生多個 output channels;同一套 kernel 仍在所有 重用。Bias 也要在 上共享。
Group action 只重排這些 的索引,所以同樣的 pointwise ReLU 仍可交換。用 G1.3 的組合證明,整個網路就能保留這個 action。
但四個方向 channel 和二維向量的兩個分量不同。前者的旋轉是重排,後者是矩陣混合。接下來我們要把 feature 的型態講清楚,才能知道哪些操作真的可以沿用。
課堂提問
只要把四個方向當成四個一般 channels,任意使用 dense channel mixing,還會保證 cyclic-shift equivariance 嗎?
先想一想,再展開看整理後的答案
不一定。方向 mixing 的權重也必須只依賴相對方向,或滿足同一個交換條件。任意矩陣可能讓特定絕對方向有不同待遇。
動手看一次
選擇方向 group correlation,再切換旋轉。下一層使用相對方向共享權重,因此仍能按相同規則搬動四個 channels。