G1.0 同一張地圖換個方向,答案應該怎麼變?
手機轉過去,哪一個答案要跟著轉?
想像你在台大附近找總圖。手機地圖本來朝北,現在你把畫面轉了九十度。總圖還是總圖,但它在螢幕上的座標變了;「往右走」這支導航箭頭也不能留在原來的方向。
所以,在問模型能不能認出同一個地方之前,我們應該先問:這個任務到底要輸出什麼? 如果答案只是「這是台大」,轉動地圖不該改變它;如果答案是總圖的座標,答案就必須一起轉。
這是 Geometric Deep Learning 的起點:利用資料的幾何結構,要求模型用正確的方式回應變換。Bronstein、Bruna、Cohen 與 Veličković [1] 用這個觀點連起格點、集合、graph 與幾何資料;我們先從可以親手轉動的地圖開始。
把「一起變」寫下來
用 表示整張地圖,用 表示模型的答案。 是一次指定的變換,例如旋轉九十度; 表示變換後的輸入。這裡的 是模型輸入,不一定是某個地點的二維座標。
對地點分類,我們想要求
這叫 invariance(不變性):輸入改了,任務要求的答案沒有改。它不是說影像相同,而是說模型應忽略這個任務不需要的變化。
但定位總圖時,右邊不能仍是原來的座標。我們需要另一個動作 ,說明答案如何變換:
這叫 equivariance(等變性)。左邊先改輸入,再請模型回答;右邊先讓模型回答,再用正確規則改答案。兩條做法應該得到同一個結果。
接下來,我們不先給出架構,再問它有沒有這個性質,而是從這條要求出發:它會限制哪些運算?還需要加入哪些設計假設,才能建立一個可用的模型? 例如先選線性層或局部處理,再看同一個規則該如何共享。
這是我們構造 CNN、集合模型、Transformer 與 GNN 的共同方法。Symmetry 限制答案如何回應變換,不會單獨指定整個架構;invariance 則是其中「答案不用變」的情況。
座標與箭頭,真的用不同規則
假設地圖上的座標 經過旋轉矩陣 與平移 ,變成
如果模型輸出的是總圖座標,就要遵守這個規則。但箭頭 描述的是兩個位置的差,不是某個位置本身。把箭頭的頭尾都變換後,
平移被減掉了,所以向量只需要旋轉,不需要再加上 。把位置與向量用同一條 affine transformation 處理,導航就會出錯。
| 任務 | 輸出 | 畫面旋轉、平移後 |
|---|---|---|
| 這是不是台大? | 地點 label | 保持不變 |
| 總圖在哪裡? | 座標 | |
| 往哪裡走? | 向量 | |
| 哪些像素是建築? | mask | 建築區域一起移動 |
Mask 的每個值可以是 scalar,但它們所在的位置仍要一起變。Scalar 不等於所有情況都 invariant;先看它是一個全局答案,還是附在每個位置上的答案。
補充Invariance 是輸出 action 為 identity 的特例
若 對所有答案都成立,equivariance 的式子就退回 invariance。兩者不是誰比較高階,而是同一種一致性要求對應不同輸出。
不是所有影像變化,都能當成對稱
把同一塊城市完整轉過去,和把總圖裁出畫面,是兩件事。後者真的移除了資訊;看不到總圖時,模型不一定還能回答它在哪裡。
因此,我們先把對稱的討論限制在:變換保留任務需要的資訊,且輸出的變換規則可以說清楚。 有限螢幕、裁切與缺失資料會在後面另外處理,不能直接用理想等式略過。
也不能只靠 equivariance 就保證答案正確。一個永遠輸出零向量的模型可以 rotation-equivariant,卻完全不會導航。架構的一致性要求與 task error,從一開始就要分開。
課堂提問
如果導航箭頭做得 rotation-invariant,每次轉動地圖後都輸出同一支螢幕方向的箭頭,這是我們想要的嗎?
先想一想,再展開看整理後的答案
不是。目的地沒變,但座標系改了。箭頭是向量,必須乘上同一個旋轉矩陣;保持原方向反而破壞輸入與答案的關係。
動手看一次
轉動地圖後,切換 label、座標與方向。這個 demo 是輸出變換規則的示意,不是神經網路的預測。注意箭頭跟著轉,但不把平移量當成箭頭的一部分。