CSP 為之而生的問題
在運動想像中,想像左手相對於右手的動作,會壓抑對側半球的感覺運動 mu 節律——這是一種事件相關去同步,表現為頻帶功率的下降。因此判別訊號是一種變異數的空間型樣,而共同空間型樣(CSP)正是為此設計的最佳線性濾波器:它尋找一類變異數高、另一類變異數低的方向。
一個廣義特徵值問題
設 \Sigma_1 與 \Sigma_2 為兩類別經帶通濾波後的平均共變異數。CSP 尋找使變異數比值最大化的 \mathbf{w}——一個瑞利商。
J(\mathbf{w}) = \frac{\mathbf{w}^{\top}\Sigma_{1}\mathbf{w}}{\mathbf{w}^{\top}\Sigma_{2}\mathbf{w}} \qquad\Longrightarrow\qquad \Sigma_{1}\mathbf{w} = \lambda\,\Sigma_{2}\mathbf{w}最大化變異數比值就是一個廣義特徵值問題;特徵值接近 1 的濾波器通過類別 1,接近 0 的通過類別 2。
共同空間型樣(CSP)尋找能讓一類的變異數大、另一類的小的濾波器——最大化兩者之比。最大化該比值原來就是一個廣義特徵值問題;特徵值接近 1 偏向類別 1,接近 0 偏向類別 2。
- J(\mathbf{w})
- 被最大化的變異數比值(瑞利商)。
- \Sigma_1,\,\Sigma_2
- 兩類別的共變異數矩陣。
- \lambda
- 特徵值——某濾波器區分兩類的強度。
- \Sigma_1\mathbf{w}=\lambda\Sigma_2\mathbf{w}
- 解所滿足的廣義特徵值方程。
等價地,用合成共變異數 \Sigma_1+\Sigma_2 對資料作白化;能同時對角化兩類的特徵向量就是 CSP 濾波器。它們的特徵值總和為一,因此兩端的極端值最具判別力——保留最上與最下的 m 對即可。
# X1, X2: trials x channels x time, already band-pass filtered S1 = mean_cov(X1) # class-1 spatial covariance (C x C) S2 = mean_cov(X2) # class-2 spatial covariance # generalized eigendecomposition of the pencil (S1, S1 + S2) evals, W = eig(S1, S1 + S2) # columns of W are spatial filters order = argsort(evals) W = W[:, order] # sort by discriminability filt = hstack([W[:, :m], W[:, -m:]]) # m most extreme pairs each end feat = log(var(filt.T @ trial, axis=1)) # log-variance feature vector
從濾波器到特徵
你不會把濾波後的訊號直接餵給分類器,而是餵它的對數變異數。取對數既能穩定變異數(使其對 LDA 分類器而言更接近高斯),也能把 ERD 的乘性增益轉為加性特徵。
f_j = \log\!\left(\frac{\mathbf{w}_j^{\top}\Sigma\,\mathbf{w}_j}{\sum_{k}\mathbf{w}_k^{\top}\Sigma\,\mathbf{w}_k}\right)濾波器 j 在某試次共變異數 Σ 上的正規化對數變異數特徵——餵給 LDA 的經典 CSP 特徵。
CSP 給出濾波器後,每個試次以其濾波後變異數的對數(並跨濾波器歸一化)來概括。取對數使該特徵對線性分類器(如 LDA)更好處理。
- f_j
- 由濾波器 j 產生的特徵。
- \mathbf{w}_j^{\top}\Sigma\,\mathbf{w}_j
- 在此試次共變異數 \Sigma 上,該濾波器通過的變異數。
- \sum_k \mathbf{w}_k^{\top}\Sigma\,\mathbf{w}_k
- 跨所有濾波器的總和——正規化因子。
- \log
- 使特徵的分布更穩定。
為何原始 CSP 會過度擬合——以及如何修正
標準解方是在特徵分解前,把每一類的共變異數收縮向一個條件良好的目標——這就是空間濾波器正則化,而解析式的 Ledoit–Wolf 估計會替你選定收縮強度 \gamma。
\tilde{\Sigma} = (1-\gamma)\,\hat{\Sigma} + \gamma\,\frac{\operatorname{tr}(\hat{\Sigma})}{C}\,I, \qquad \gamma\in[0,1]收縮把共變異數拉向一個縮放的單位矩陣,馴服會拖垮 CSP 的最小特徵值。
試次少時,共變異數估計變得不可靠——其最小特徵值爆走並拖垮 CSP。收縮把雜亂的估計與一個乾淨、縮放過的單位矩陣混合,把極端值拉回安全範圍。\gamma 決定你正則化多少。
- \tilde{\Sigma}
- 收縮(正則化)後的共變異數。
- \hat{\Sigma}
- 原始樣本共變異數。
- \gamma
- 收縮強度——0 為原始,1 為完全拉向單位矩陣。
- \tfrac{\operatorname{tr}(\hat{\Sigma})}{C}\,I
- 它收縮所朝向的縮放單位矩陣目標。
FBCSP:加入頻率軸
普通 CSP 需要你事先選定一個頻帶,但具判別力的 mu/beta 頻帶因人而異。濾波器組 CSP(FBCSP)免去了這個猜測:在一組重疊頻帶內各自執行 CSP,再以互資訊挑選最具資訊量的「頻帶—濾波器」組合。這套幾乎無需調參的配方贏得了 BCI Competition IV,至今仍是 EEG 的參考基準。
- 把資料帶通濾波成一組重疊的子頻帶(例如 4–8、8–12、… Hz)。
- 在每個頻帶內擬合收縮式 CSP,並取其對數變異數特徵。
- 依與標籤的互資訊,跨所有頻帶挑選最佳特徵。
- 對挑選出的特徵作分類(LDA 是常見且穩健的選擇)。
xDAWN:ERP 的表親
CSP 分離的是變異數,但 P300 拼字器需要分離的是埋在持續 EEG 中的誘發波形。xDAWN 把廣義特徵值的想法帶進ERP解碼:它尋找能最大化誘發反應功率相對於總功率之比值的濾波器,在分類前強化 P300。在現代管線中,它的輸出會餵給ERP 共變異數表示,供黎曼分類器使用。
\mathbf{w}_{\mathrm{xDAWN}} = \arg\max_{\mathbf{w}} \frac{\mathbf{w}^{\top}\Sigma_{\mathrm{ERP}}\,\mathbf{w}}{\mathbf{w}^{\top}\Sigma_{X}\,\mathbf{w}}xDAWN 最大化誘發反應共變異數相對於總共變異數之比——同樣的瑞利商,換了分子。
xDAWN把同樣「最大化變異數比」的想法用到誘發反應(如 P300):找出能相對於總訊號放大可重複之誘發成分的濾波器。同樣的瑞利商,只是換了分子。
- \mathbf{w}_{\mathrm{xDAWN}}
- xDAWN 空間濾波器。
- \Sigma_{\mathrm{ERP}}
- 誘發(ERP)反應的共變異數。
- \Sigma_X
- 總訊號的共變異數。
- \arg\max
- 挑出使該比值最大、以增強 ERP 的濾波器。