把承諾說清楚
在第一冊中,你認識了標準解碼流程:人工設計的特徵——頻帶功率、CSP 變異數、共變異數矩陣——餵給一個線性分類器。深度學習主張把整條鏈條收攏成單一個可微分函數 f_\theta,將原始訊號映射到意圖,並以梯度下降端到端地訓練。其吸引力在於表徵學習:不再由你挑選特徵,而是由最佳化器自行發現它們。
\hat\theta = \arg\min_{\theta}\; \frac{1}{N}\sum_{i=1}^{N} L\!\left(f_\theta(x_i),\, y_i\right) \;+\; \lambda\,\Omega(\theta)正則化的經驗風險最小化:擬合有標籤資料,同時以懲罰項 Omega 控制複雜度。
我們挑選能讓模型預測在平均上最貼近有標籤範例的參數 \theta,同時用一個懲罰項阻止模型變得太複雜。這是幾乎所有監督式學習背後的總配方,也包含正則化。
- \hat\theta
- 我們最終選出的最佳配適參數。
- L(f_\theta(x_i), y_i)
- 損失:預測 f_\theta(x_i) 相對於真實標籤 y_i 有多錯。
- \frac{1}{N}\sum_{i=1}^{N}
- 把損失對全部 N 個訓練範例取平均。
- \lambda\,\Omega(\theta)
- 複雜度懲罰;\lambda 決定我們多強力地抑制複雜模型。
當 \lambda = 0 時你會盡量緊貼資料(有過度配適的風險);把 \lambda 調大,解就被推向更簡單、更平滑的方向。
小樣本情境
深度 BCI 之所以困難,核心原因在於:有標籤的神經資料稀少且昂貴。一次運動想像場次或許只產生數百個試驗;一位臨床皮質內受試者是 n=1,橫跨數月的記錄時間也僅以小時計。相較之下,讓深度視覺奏效的是數以百萬計的有標籤影像。這就是小樣本情境,它改變了一切。
當模型有 p 個參數卻只有 N 個樣本時,偏差–變異權衡會變得殘酷:在 p \gg N 的情況下,靈活的網路會靠記憶雜訊把訓練誤差壓到零,於是主導測試誤差的是變異、而非偏差。這正是維度詛咒的實戰形式。
\mathbb{E}\big[(y - \hat f(x))^2\big] \;=\; \underbrace{\sigma^2}_{\text{irreducible}} \;+\; \underbrace{\big(\mathbb{E}[\hat f(x)] - f(x)\big)^2}_{\text{bias}^2} \;+\; \underbrace{\mathrm{Var}\big[\hat f(x)\big]}_{\text{variance}}古典流程注入了強力先驗(空間濾波器、共變異數幾何)以降低變異;而通用深度網路必須從它並不擁有的資料中學到這些先驗。
你在新資料上預期的誤差乾淨地拆成三部分:永遠去不掉的雜訊、模型太僵硬而抓不到真相的誤差(偏差),以及模型太浮動、連雜訊都追的誤差(變異)。好的學習是在後兩者間取得平衡。
- \sigma^2
- 不可約雜訊——任何模型都突破不了的誤差下限。
- \big(\mathbb{E}[\hat f(x)] - f(x)\big)^2
- 偏差平方:模型平均而言偏離真值多遠。
- \mathrm{Var}\big[\hat f(x)\big]
- 變異:配適出的模型在不同資料集之間擺動多少。
用直線去配彎曲的資料是高偏差、低變異;而扭來扭去的高次多項式則是低偏差、高變異。
非平穩性:分佈在你腳下移動
即使資料充足,神經訊號仍是非平穩的:電極阻抗漂移、組織微動改變你所見的單元、警覺與注意力起伏、大腦也會適應。訓練與測試的輸入來自不同分佈,而輸入到標籤的規則大致固定——這就是共變量偏移。
p_{\mathrm{tr}}(x) \neq p_{\mathrm{te}}(x), \quad p(y\mid x)\ \text{fixed} \;\Longrightarrow\; R_{\mathrm{te}} = \mathbb{E}_{p_{\mathrm{tr}}}\!\big[\, w(x)\,L(f(x),y)\,\big], \quad w(x) = \frac{p_{\mathrm{te}}(x)}{p_{\mathrm{tr}}(x)}在共變量偏移下,測試風險是重新加權後的訓練風險;一個在校準時凍結的解碼器,其實在默默最佳化錯誤的分佈。
若測試時的輸入分布與訓練時不同、但輸入到輸出的規則不變,真正的測試誤差就等於把每個範例依「它在測試時多常出現」重新加權後的訓練誤差。一個在校準時凍結的解碼器,其實在默默最佳化昨天的分布。
- p_{\mathrm{tr}}(x),\ p_{\mathrm{te}}(x)
- 訓練時與測試時的輸入分布。
- w(x) = \frac{p_{\mathrm{te}}(x)}{p_{\mathrm{tr}}(x)}
- 重要度權重:放大在測試時常見的輸入,壓低罕見的。
- R_{\mathrm{te}}
- 我們真正在意的測試風險。
在 BCI 中,腦訊號會在不同場次間漂移;一個校準時罕見、但今天常見的輸入會拿到很大的權重 w(x)。這就是共變量偏移。
這正是為何一個在同一場次內達 90% 的解碼器,跨場次或隔日就可能崩潰。這一點對深度模型尤其不利:參數愈多,抓住場次特有怪癖的途徑也愈多,因此一個過度參數化的網路對偏移可能更脆弱,不如一個良好正則化的線性模型——除非你明確地對它做自適應。第四與第五份指南將以遷移學習與領域自適應回到這個問題。
端到端究竟帶來什麼——一套決策程序
當資料充足且結構豐富時,深度學習便物有所值:高密度 ECoG 語音語料、大型多場次皮質內資料集,或那些關鍵特徵是頻帶功率根本無法表達的非線性時間樣態的問題。而在強受試者偏移下的微型單場次 EEG 上,它會落敗——因為古典先驗已近乎最佳,網路也無從學起。
- 在動用網路之前,先建立並回報一個古典基線(FBCSP+LDA 或黎曼切空間)。
- 估算你的有效樣本量——試驗數、受試者數、場次數——而非僅看原始樣本數。
- 若資料稀少,就為深度 BCI 的對策編列預算:資料增強、預訓練、遷移、重度正則化。
- 挑選歸納偏置與訊號相符的架構(震盪用卷積、軌跡用序列模型)。
- 以巢狀交叉驗證在受試者或場次獨立的切分上驗證,絕不倚賴單一漂亮數字。