尺度的難題:點雲沒有固定的拓撲
透過本級先前的導引,你已經能把一筆離散取樣轉成單純複形,並讀出它的單純同調與貝蒂數。於是對資料的自然構想是:給定從某個未知形狀取樣而得的有限點集 X,X 落在 R^n 中,把相近的點連起來、建出一個複形、再算出它的洞。麻煩出在「相近」這個詞。挑一個半徑 epsilon,只要兩點距離小於 epsilon 就連起來,那麼每個 epsilon 都給你一個不同的複形——也就給出一個不同的拓撲答案。
想像沿一個圓、帶點抖動取樣出的四十個點。當 epsilon 接近零時,每個點都是孤立的:四十個連通分量,沒有任何圈。把 epsilon 稍微調大,鄰近的點融成弧段;不久弧段閉合成一個環,於是一個一維的洞出現了——正是我們希望偵測到的圓。再把 epsilon 推得更高,圓盤被填滿:圈被三角形封住,洞就此消失。因此「這筆資料有沒有洞?」的誠實答案不是是或否,而是在哪些尺度上有;而單一一個 epsilon 把這個資訊丟掉了。
過濾與維托里斯–里普斯複形
解法是同時保留所有尺度。當 epsilon 由 0 增到無窮,複形只會不斷獲得單純形——一條在尺度 epsilon_0 出現的邊,在每個更大的尺度上仍然存在。於是這個族是一條巢狀的鏈 K_0 包含於 K_1 包含於 ... 包含於 K_m,稱為過濾。對點雲而言,標準的構造是維托里斯–里普斯複形:在尺度 epsilon 處,當一組點兩兩之間的距離都不超過 epsilon 時,就把它們所張的單純形納入。舉例來說,一個三角形只要它三條邊都到齊,就立刻加入。
里普斯複形之所以便宜,是因為它完全由兩兩距離決定——你從不檢查更高階的幾何,只看邊——這正是它在實務上稱霸的原因。它的近親切赫複形則是記錄:以各點為心、半徑 epsilon/2 的球何時真的有共同交集;而由下一篇的神經定理可知,這個切赫複形與這些球的聯集同倫等價,所以它的同調確實就是加厚後點雲的拓撲。里普斯是切赫的一個易於計算的逼近,被夾在兩個切赫尺度之間;它是主力,而非標準答案。
誕生、死亡與持續條碼
現在對整條鏈一次施加同調。包含 K_i 包含於 K_j 在同調上誘導一個線性映射 H_k(K_i) -> H_k(K_j),於是一個同調類——一個洞——可以隨 epsilon 增大而被追蹤。持續同調為每個獨立的洞記錄兩個數:它的誕生,即此類首次出現的尺度;以及它的死亡,即此類併入某個更老的類、或被填補掉的尺度。一個活在區間 [誕生, 死亡) 上的洞就是一根條。把所有維度上的所有條收集起來,就得到持續條碼。
回到帶雜訊的圓。在零維(連通分量)你一開始有四十根短條,每點一根;隨著 epsilon 增大它們合併,於是其中三十九根很快死去,恰好留下一根延伸到無窮的條——資料所構成的那唯一一個連通分量。在一維(圈)有一根長條:當環首次閉合時誕生,直到三角形把圓盤填滿才死亡;在它旁邊還躺著幾根來自抖動的微小短條。那根長的 H_1 條就是圓;短條則是雜訊。持續性本身並不告訴你哪根是哪根——它把兩者都呈現給你,讓條的長度自己說話。
noisy circle, Rips filtration -- schematic barcode
H_0: |==================================== (1 component, lives forever)
|== |= |== |= (39 short bars: points merging)
H_1: |==============================| (the circle: long bar)
|= |== (jitter: short bars)
eps=0 ------------------------------> eps grows
birth death為什麼它是良定義的:結構定理
誕生–死亡配對居然是良定義的,這一點並不顯然;憑什麼一個洞會有一個無歧義的死亡時刻?理由是代數的。在體係數下運作(通常取 Z/2,以躲開符號與撓的頭痛),整條過濾組裝成單一物件:一個持續模,即一列向量空間 H_k(K_0) -> H_k(K_1) -> ...,由包含所誘導的映射串接。它是多項式環 F[t] 上的一個模,其中乘以 t 意味著「在過濾中前進一步」。
在體上,F[t] 是主理想整環,於是有限生成模的結構定理可以套用:持續模唯一地分解成若干區間模之直和,每個區間模都是一個在單一區間 [誕生, 死亡) 上存活的特徵。這個分解恰恰就是條碼,而唯一性正是條碼之所以是真正不變量、而非記帳法所製造的假象的原因。深刻的拓撲設定,最終歸結為抽象代數中一條古典定理——這是你一路扛上這道階梯的代數,一個令人滿意的回報。
同一份資料也常改畫成持續圖:每根條 [b, d) 變成對角線上方的一個點 (b, d),而條的長度變成到對角線的距離。條碼與圖攜帶完全相同的資訊;依受眾選擇即可。在這一切底下有一個誠實的提醒:結構定理乾淨地需要體係數——在整數上,撓會破壞唯一的區間分解,這正是為什麼嚴謹的敘述總會註明「在體係數下」,也是為什麼 Z/2 是實務者的預設選擇。
穩定性:為什麼條碼值得信賴
從帶雜訊資料算出的統計量,除非隨資料連續變化,否則一文不值。持續同調靠持續穩定性定理證明自己的價值。用瓶頸距離來衡量兩條條碼相差多遠:把一個圖配到另一個圖所需移動點的最小總量(其中容許一個死亡滑到對角線上,亦即一根條縮到無——消失)。定理說:若一個空間上的兩個函數在上確界範數下相差至多 delta,則它們的持續圖在瓶頸距離下相差至多 delta。
請慢慢讀,因為這正是你想要的保證。輸入的微小擾動——量測抖動、重新取樣的幾個點、感測器雜訊——只能讓條碼在瓶頸距離下被擾動相當小的幅度。具體而言,這意味著長條保持長、短條保持短:一個小的擺動絕不可能把一根雜訊條變成特徵條,反之亦然。「長條是訊號、短條是雜訊」之所以不只是民間傳說,正是在這個精確的意義下——穩定性定理讓這個讀法穩健可靠。
- 計算點雲 X 的兩兩距離,並固定你關心的同調維度(通常是 0 與 1)。
- 建出維托里斯–里普斯過濾:列出每個單純形,連同它進入時的尺度 epsilon。
- 在 Z/2 上對邊界矩陣做一次約化(單一次矩陣約化即可回復所有尺度上的每一對誕生–死亡)。
- 讀出條碼;依長度排序各條,把長條視為候選特徵、短條視為雜訊——這背後有穩定性定理撐腰。
誠實的限制,以及拓撲資料分析究竟交付了什麼
別被炒作牽著走。拓撲資料分析並不會神奇地還原高維資料的真實形狀;它萃取的是無座標、對形變不變的摘要——連通分量、圈、空腔——這些摘要能熬過雜訊、且不需要選定任何嵌入。這是一個真實而少見的優點,但也是個狹窄的優點。一條條碼告訴你某些尺度上存在一個圈;它不告訴你這個圈在哪裡、代表什麼,也不告訴你你的取樣是否密到足以信任一維以上的維度。
有三點值得明白地說出來。第一,計算成本:里普斯複形在組合上會爆炸,所以高維度或大點雲都需要謹慎修剪。第二,稀疏取樣會悄悄毀掉特徵——一個取樣太稀的圈永遠閉合不起來,因此沒有條並不等於沒有洞。第三,對條碼做統計推論(信賴帶、假設檢定)是一個活躍的研究領域,而非已解決的問題;穩定性界定了最壞情形,但它本身並不直接交給你一個 p 值。
放在本級的脈絡裡,持續同調正是離散機器轉而向外的時刻。先前的導引在一個已知的網格上離散化曲率與形式;而在這裡,過濾複形的組合結構本身,成了一具量測儀器,用來丈量你事先並不知道其形狀的資料。它的力量恰恰在於它的謙遜:它計算持續同調——一個可證明穩定、無座標的不變量——並且誠實地不多計算任何其他東西。