最近平均法(MDM)
最簡單的流形分類器直接得近乎令人難為情。訓練時,為每個類別算出一個平均共變異數。要分類一段新試次的共變異數時,就把它指派給 AIRM 距離最近的那個類別平均。這就是整個最近平均法(MDM)演算法——沒有空間濾波器要學、沒有特徵要挑、沒有正則化參數要網格搜尋。
\hat{y} = \arg\min_{k \in \{1,\dots,K\}} \; \delta_R\big( C, \, \bar{C}_k \big)MDM 決策規則:以黎曼距離下最近的類別平均共變異數為試次貼標籤。
最簡單的流形分類器:先各算一次每個類別的平均共變異數,再以新試次最接近哪個類別平均來貼標籤——用彎曲的黎曼距離來量。
- C
- 待分類試次的共變異數。
- \bar{C}_k
- 類別 k 的平均共變異數。
- \delta_R
- 用來判斷接近程度的黎曼距離。
- \hat{y}
- 預測出的類別標籤。
這個最小距離至平均規則,除了計算各類別平均外不需任何訓練。
因為 AIRM 是仿射不變的,MDM 便免費繼承了這份不變性:它不需要 CSP、不需要重新參考、不需要各場次的增益正規化。這正是為何裸的 MDM 作為基準如此難以超越,且對極小訓練集如此寬容——每個類別只要寥寥幾個試次,你就已能估出一個堪用的平均。
Fréchet(Karcher)平均
MDM 藏了一個真正微妙之處:一組共變異數矩陣的平均是什麼?不是算術平均(會膨脹、幾何錯誤)。正確的物件是 Fréchet 平均——它是使「到所有樣本之測地線距離平方和」最小的那個點。這是「最能代表這團點雲的位置」在流形上的版本。
\bar{C} = \arg\min_{C \succ 0} \; \sum_{i=1}^{N} \delta_R^2\big( C, \, C_i \big)Fréchet/Karcher 平均把質心推廣到 SPD 流形。一般沒有封閉形式(除非 N=2 或矩陣彼此可交換)。
彎曲空間上的「平均」共變異數,是使到所有試次的平方黎曼距離總和最小的那一點——就像普通平均使平方距離最小,只是這裡尊重幾何。通常靠迭代求得。
- C_i
- 被平均的各個試次共變異數。
- \bar{C}
- 它們在流形上的 Fréchet/Karcher 平均。
- \delta_R^2
- 被加總的平方黎曼距離。
Karcher 平均一般沒有封閉形式,除非只有兩個矩陣、或矩陣彼此可交換。
與平坦平均不同,這裡沒有封閉形式,但有一個簡單快速的定點迭代:反覆以目前估計白化、在(平坦的)切空間中平均樣本、再把結果映射回流形。它只需寥寥幾次迭代就收斂,因為 SPD 流形具非正曲率,保證了唯一的平均。
- 以共變異數的算術平均初始化平均值。
- 以目前平均把每個樣本白化並取矩陣對數——這些就是目前估計處的切向量。
- 平均這些切向量(既然它們已是平坦的,就是普通的歐氏平均)。
- 把平均後的切向量映射回流形(矩陣指數,再解白化)以更新平均值。
- 重複直到切空間步長的範數低於容忍值——通常只需幾輪。
def karcher_mean(Cs, tol=1e-9, max_iter=50):
Cbar = mean(Cs, axis=0) # arithmetic-mean init
for _ in range(max_iter):
E = sqrtm(Cbar); Einv = inv(E) # Cbar^{1/2}, Cbar^{-1/2}
# average the tangent vectors at Cbar
S = mean([logm(Einv @ Ci @ Einv) for Ci in Cs], axis=0)
Cbar = E @ expm(S) @ E # exp-map back to the manifold
if norm(S) < tol:
break
return Cbar切空間技巧
MDM 穩健但僵硬——它只比較到各平均的距離。要把線性分類器的完整武器庫(LDA、邏輯斯迴歸、SVM)帶到共變異數特徵上,我們利用一個觀察:彎曲流形放大來看是平的。挑一個參考點——所有訓練資料的 Fréchet 平均——把每個共變異數投影到那裡的平坦切空間。投影後的點又變回普通的歐氏向量,於是任何分類器都能上場。
\mathbf{s}_i = \operatorname{vech}_{\!*}\!\Big( \log\!\big( \bar{C}^{-1/2} C_i \, \bar{C}^{-1/2} \big) \Big) \; \in \; \mathbb{R}^{\,n(n+1)/2}在參考平均 C̄ 處的切空間投影:白化、取對數,再把上三角向量化(非對角元以 √2 加權以保持範數)。
把平均附近的彎曲流形攤平成一個普通的向量空間,如此就能接上 LDA 或 SVM 等標準分類器。以平均白化、取對數,再把矩陣展開成向量。
- \bar{C}^{-1/2} C_i \, \bar{C}^{-1/2}
- 以參考平均白化每個試次。
- \log(\cdot)
- 從彎曲流形映射到平坦的切空間。
- \operatorname{vech}_{\!*}
- 把上三角向量化,非對角元以 \sqrt{2} 加權以保持範數。
- \mathbf{s}_i
- 試次 i 由此得到的平坦特徵向量。
這個切空間投影讓你保有流形的好處,同時能用任何現成的分類器。
投影向量的維度是 n(n+1)/2——22 個通道就是 253 個特徵,對正則化邏輯斯迴歸或 收縮 LDA 而言是舒適的規模。這條「切空間+線性分類器」流程,常稱為切空間分類器,是黎曼 BCI 的準確度主力。線性化只在參考點附近準確,但這無妨:你的資料點雲就落在自身平均周圍,而第四篇的重新置中會讓每個場次都停靠在那裡。
MDM 還是切空間——如何選
一條務實的經驗法則。資料稀少、需要許多類別、可解釋性與穩健性比最後幾個百分點的準確度更重要、以及成本微不足道的線上使用場合,就用 MDM。當你有足夠試次來妥善擬合一個正則化線性模型、且追求最高準確度時,就用切空間分類器。介於兩者之間的是 Fisher 測地線 MDM(FgMDM),它插入一個測地線濾波/LDA 步驟以銳化類別分離,同時保留 MDM 的結構。