共變異數的難題
無論你的特徵是頻帶功率向量、ERP 時間歷程,或本身就是共變異數矩陣,解碼器都需要一個特徵的共變異數來加權與白化它們。在 p 個特徵、n 個試次下,樣本估計 \hat\Sigma=\tfrac1n\sum_i (x_i-\bar x)(x_i-\bar x)^\top 的秩至多為 n-1。若 p\ge n 它就奇異;即使 p<n,其最大特徵值也被膨脹、最小特徵值被壓向零。
由於 LDA 需要 \Sigma^{-1},那些被壓扁的特徵值在反轉後會爆炸。解碼器最終最信任的,竟是噪聲方向——最小特徵值所估出的特徵向量。單憑這個事實,就能解釋教科書版 LDA 與能上線運作版之間的絕大多數落差。
正則化:把估計拉向簡單
正則化的意思是刻意讓估計產生偏差以降低其變異數——也就是在第 1 篇的偏差–變異數曲線上向左移動。對共變異數而言,最簡單的正則化是在反轉前加上一個脊項 \lambda I,把每個特徵值抬離零。這正是套用於白化步驟的 Tikhonov 正則化,以少許偏差換取變異數的大幅削減。
朝結構化目標收縮
收縮共變異數估計把含噪的樣本共變異數與一個低變異、高偏差的目標混合——通常是一個縮放後的單位矩陣,它保留平均變異數卻丟棄所有不可靠的非對角結構。
\hat\Sigma_{\gamma}=(1-\gamma)\,\hat\Sigma+\gamma\,\nu\,I,\qquad \nu=\tfrac{1}{p}\operatorname{tr}(\hat\Sigma),\quad \gamma\in[0,1]收縮估計量。\gamma=0 為原始樣本共變異數;\gamma=1 為一個球面。目標 \nu I 保留總變異數(跡)並抹除相關性中的取樣噪聲。
從幾何上看,收縮把過大的特徵值往下拉、過小的往上抬,趨向共同均值 \nu——恰好逆轉取樣的失真。與 LDA 結合即為「收縮 LDA」,在小型運動想像資料集上,它通常以可觀且可重現的幅度勝過裸 LDA。
Ledoit–Wolf:無需交叉驗證即可選定 γ
優雅之處在於你完全不必調 \gamma。Ledoit 與 Wolf 推導出使「與真實共變異數的期望 Frobenius 距離」最小化的 \gamma,其閉式解僅由資料本身決定。直覺是估計量之間的訊噪比:當樣本共變異數含噪時就多收縮,當它可信時就少收縮。
\gamma^{\star}=\frac{\sum_{i,j}\widehat{\operatorname{Var}}\big[\hat\Sigma_{ij}\big]}{\sum_{i,j}\big(\hat\Sigma_{ij}-T_{ij}\big)^2}最佳收縮強度(示意)。分子=樣本共變異數各元素有多含噪;分母=它們離目標 T 有多遠。兩者皆由同一份資料估得,故 \gamma^\star 是免費的。
你不必用猜的來決定 \gamma——Ledoit–Wolf 法則直接從資料算出最佳值:當共變異數各元素很含噪時就收縮得多,當它們早已遠離目標、明顯是真訊號時就收縮得少。
- \sum_{i,j}\widehat{\operatorname{Var}}[\hat\Sigma_{ij}]
- 分子:共變異數各元素中的總取樣噪聲。
- \sum_{i,j}(\hat\Sigma_{ij}-T_{ij})^2
- 分母:各元素離目標 T 有多遠。
- \gamma^{\star}
- 由此得出的最佳收縮強度,用同一份資料免費算得。
- T_{ij}
- 結構化收縮目標的一個元素。
非常含噪的元素把 \gamma^{\star} 推向 1;乾淨、估得好的元素把它拉向 0——完全不需交叉驗證。
# Shrinkage LDA for a C-class BCI
from sklearn.covariance import ledoit_wolf
S, gamma = ledoit_wolf(X_train) # regularized p x p covariance + auto gamma
Sinv = np.linalg.inv(S) # now safe to invert
for c in classes: # per-class linear discriminant
w[c] = Sinv @ mu[c]
b[c] = -0.5 * mu[c] @ Sinv @ mu[c] + np.log(prior[c])
y_hat = argmax_c(x @ w[c] + b[c]) # assign to top score選擇特徵,而不只是正則化它們
收縮保留所有特徵但加以馴服;特徵選擇則是移除特徵。兩者互補,但選擇很危險:任何偷看標籤的特徵排序都必須嚴格發生在訓練摺內,否則會悄悄洩漏測試資訊(第 3 篇)。在交叉驗證前對整個資料集跑單變量篩選,正是已發表的 BCI 準確率最終被證明是虛構的最常見途徑之一。