搜尋課程與筆記

搜尋筆記

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

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

    G3.0 5 分鐘閱讀 2026年10月

    G3.0 地標換個排列,為什麼答案不該變?

    本篇重用1 篇

    地標名單換順序,城市沒有換

    前兩個單元一直在移動或旋轉影像。現在我們不給整張地圖,只給幾個地標:台大正門、總圖、公館站,各有自己的位置與屬性。

    朋友把同一份名單重新排序,總圖從第二列移到第一列,它真的在城市裡移動了嗎? 沒有。改變的只是存資料的方法,不是地理事實。

    這種輸入叫 set(集合):元素本身有意義,排列順序沒有。若同一元素能重複出現,我們更精確地稱為 multiset;本單元會讓重複與點數也有機會影響答案,不默默把它們刪掉。

    把資料表的 row 重排寫下來

    有 nn 個點,每個點有 dd 個特徵,把它們寫成矩陣

    X=[x1⊤⋮xn⊤]∈Rn×d.X=\begin{bmatrix}x_1^\top\\ \vdots\\x_n^\top\end{bmatrix}\in\mathbb R^{n\times d}.

    xix_i 可以含座標與地標型別。令 PP 是 n×nn\times n 的 permutation matrix(置換矩陣):每列與每欄恰好有一個 11,其餘為零。左乘 PP 就選出新的 row 順序。

    例如

    P=[010001100]⟹PX=[x2⊤x3⊤x1⊤].P=\begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix} \quad\Longrightarrow\quad PX=\begin{bmatrix}x_2^\top\\x_3^\top\\x_1^\top\end{bmatrix}.

    注意,PP 沒有旋轉 xix_i 的座標。它只是把整列連同所有屬性一起搬動。若 label、mask 或邊的索引也依賴這些點,就要一起更新,不能只改一半。

    這個任務要一個答案,還是每個點一個答案?

    若問「這群地標是不是台大附近」,模型輸出一個全局類別:

    f(PX)=f(X).f(PX)=f(X).

    這是 permutation invariance。全局答案沒有 row index,所以不應因名單排列改變。

    若問「每個點是道路、建築,還是捷運站」,輸出 Y=F(X)Y=F(X) 的第 ii 列對應第 ii 個點。重排輸入後,答案也必須重排:

    F(PX)=PF(X).F(PX)=PF(X).

    這是 permutation equivariance。答案不是整份保持原排列,而是繼續跟著自己的點。和 G1 的座標、箭頭一樣,要先看輸出型態,再決定合理 action。

    Flatten 為什麼會偷偷加入順序?

    先只讓每個點有一個 scalar 值。一般線性 readout 可以是

    f(X)=w1x1+⋯+wnxn.f(X)=w_1x_1+\cdots+w_nx_n.

    交換前兩列後,差值為

    f(PX)−f(X)=(w1−w2)(x2−x1).f(PX)-f(X)=(w_1-w_2)(x_2-x_1).

    除非 w1=w2w_1=w_2,或這一次資料剛好相同,答案就會變。對所有交換都 invariant,要求每個 row 使用相同權重。

    這是另一種共享:CNN 沿著位置共享,集合模型沿著元素共享。兩者對應不同 action,但「不要因為表示方式改了,就換一套規則」的主線相同。

    Zaheer 等人 [1] 的 Deep Sets 與 Qi 等人 [2] 的 PointNet 會給出兩種常用做法。下一篇先問:每個點使用同一個函數,再把結果加起來,是否就能處理集合?

    補充Permutation invariance 不代表 rotation invariance

    一群點可以被重新排序而不影響答案,但把所有座標旋轉後,MLP 仍可能給出不同特徵。忽略排列只解決存資料的順序;座標的幾何 action 留到 G6 處理。

    同一組地標只是換 row:全局答案不變,逐點答案則用同一個 permutation 搬動。
    同一組地標只是換 row:全局答案不變,逐點答案則用同一個 permutation 搬動。

    課堂提問

    逐點分類時,重新排列輸入卻要求輸出的 row 完全不動,會出什麼問題?

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

    同一列已經換成另一個點,原答案會對到錯誤的地標。正確要求是輸出跟著同一個 permutation 重排,而不是整份輸出保持原排列。

    動手看一次

    按下 shuffle,只重排資料列。比較全局 sum 與使用 row index 的加權和;開啟逐點 label,確認標籤始終跟著同一個地標。

    快速回顧一下

    想一想P 左乘 X 改了什麼?

    想一想逐點答案需要哪種性質?

    想一想順序 invariant 是否保證旋轉 invariant?

    參考文獻

    1. Zaheer 等人(2017),Deep Sets
    2. Qi、Su、Mo 與 Guibas(2017),PointNet