搜尋課程與筆記

搜尋筆記

輸入主題、關鍵字或單元編號,例如 Flow Matching、U4。

    按 Esc 關閉 · ⌘ / Ctrl K 開啟搜尋

    G1.2 6 分鐘閱讀 2026年10月

    G1.2 同一個偵測規則,為什麼要在每個位置重用?

    本篇重用1 篇

    道路移到隔壁,偵測器還需要重新學一次嗎?

    假設我們想找地圖裡的道路邊界。某個位置出現一條直線,模型會偵測;同一條直線向右移三格,我們希望同一個判斷也能在新位置發生。

    最直接的想法是:在每個位置使用同一套偵測規則。 但這和一般線性 layer 的權重有什麼關係?我們先在一維把它算出來,再回到影像。

    我們先選線性層作為起點。這不是平移對稱要求所有模型都線性,而是先在這個容易逐項比較的類別裡,找出權重受到什麼限制。令輸入 x(u)x(u) 是位置 uu 的訊號,輸出為

    f(x)(u)=∑vWu,vx(v).f(x)(u)=\sum_v W_{u,v}x(v).

    Wu,vW_{u,v} 表示讀取輸入位置 vv,對輸出位置 uu 產生多少影響。一般 dense layer 可以替每個 (u,v)(u,v) 都指定不同權重。

    一起平移輸入與輸出,對權重造成什麼限制?

    平移 action 是 [T(a)x](u)=x(u−a)[T(a)x](u)=x(u-a)。要求 f(T(a)x)=T(a)f(x)f(T(a)x)=T(a)f(x),左邊在 uu 的值為

    ∑vWu,vx(v−a)=∑wWu,w+ax(w).\sum_v W_{u,v}x(v-a) =\sum_w W_{u,w+a}x(w).

    這裡令 w=v−aw=v-a。右邊則是先算輸出,再讀取它在 u−au-a 的值:

    f(x)(u−a)=∑wWu−a,wx(w).f(x)(u-a)=\sum_w W_{u-a,w}x(w).

    兩邊要對每一個輸入 xx 相等,就不能只靠某張圖片剛好抵消;每個 x(w)x(w) 的係數都要相同:

    Wu,w+a=Wu−a,w.W_{u,w+a}=W_{u-a,w}.

    換個索引寫,就是 Wu+a,v+a=Wu,vW_{u+a,v+a}=W_{u,v}。它說:輸入與輸出位置一起移動,兩者之間的影響不變。

    固定相對位移 r=v−ur=v-u,所有 Wu,u+rW_{u,u+r} 因而共享同一個數值,記成 k(r)k(r)。線性 layer 就變成

    f(x)(u)=∑rk(r)x(u+r).f(x)(u)=\sum_r k(r)x(u+r).

    這是深度學習常用的 cross-correlation;套件通常把它叫 convolution。嚴格數學的 convolution 會寫 x(u−r)x(u-r),兩者只差 kernel 的翻轉,平移一致性的推理相同。二維時 u,ru,r 都是二維索引,做法沒有改變。

    回頭檢查它真的有效

    現在直接變換輸入:

    f(T(a)x)(u)=∑rk(r)x(u+r−a)=f(x)(u−a)=[T(a)f(x)](u).\begin{aligned} f(T(a)x)(u) &=\sum_r k(r)x(u+r-a)\\ &=f(x)(u-a)\\ &=[T(a)f(x)](u). \end{aligned}

    第一行只是把平移後的輸入代入;第二行是原來的偵測公式在新位置 u−au-a 的值。這個證明與 kernel 的具體數值無關,所以共享本身就給出一致性,不必等訓練學會。

    Cohen 與 Welling [1] 把這種共享規則推廣到更多 group。這一篇我們先看到最熟悉的版本:convolution 不只是少用參數,也把「同一條道路在哪裡都用同樣規則偵測」寫進架構。

    共享權重,還不等於只看附近

    上面的限制只說 kk 依賴相對位移,沒有說遠方的 k(r)k(r) 一定要是零。我們另外選小 kernel,才加入 locality(局部性):每次先看附近,再用多層擴大觀察範圍。

    共享與局部性是兩件事。前者來自線性層的平移要求,後者對應我們認為附近的像素比較適合先組成局部圖形。不要把這兩件事都簡稱成「CNN 的對稱性」。

    若加上 bias,平移要求也會限制它:每個位置必須使用同一個 channel bias,不能替左上角和右下角指定不同常數。

    補充這個等式先在沒有裁切的格點,或 circular boundary 上成立

    上面的換索引假設求和範圍能一起平移,例如整個無限格點,或首尾相接的有限週期格點。一般影像的邊界、zero padding 與 stride 會改變這個假設;我們會在 G1.4 逐一檢查。

    共享 kernel 來自相對位置:W(u+a,v+a)=W(u,v),因此每個位置重用同一個偵測規則。
    共享 kernel 來自相對位置:W(u+a,v+a)=W(u,v),因此每個位置重用同一個偵測規則。

    課堂提問

    假設一層使用一個非常大的共享 kernel,覆蓋整張週期影像。它就不再 translation-equivariant 了嗎?

    先想一想,再展開看整理後的答案

    仍然可以 equivariant。證明只用到 kernel 不隨絕對位置改變,沒有用到 kernel 很小。小範圍是額外的 locality 假設。

    動手看一次

    保持 circular boundary 與 stride=1,改變平移格數。下方藍線先平移再做差分,橘線先做差分再平移;共享 kernel 應讓兩者重合。

    快速回顧一下

    想一想平移一致性限制哪一件事?

    想一想平移共享是否保證 kernel 很小?

    想一想為什麼係數必須逐項相同?

    參考文獻

    1. Cohen 與 Welling(2016),Group Equivariant Convolutional Networks
    2. Bronstein、Bruna、Cohen 與 Veličković(2021),Geometric Deep Learning