MAEEG + BIOT:8 通道左右腳改良模型

文獻還原、450-fold CUDA 消融與最終判斷

固定條件:Fp1/Fp2/Fz/C3/C4/Pz/O1/O2、200 Hz、事件後 0–2 秒、每 trial 每通道 Z-score;十位正常人各自 left/right 五折分類,所有模式使用完全相同的 train/validation/test indices。
運算:30 位未標記資料 combined SSL 12,000 updates;9 個模式 × 10 subjects × 5 folds = 450 folds。

一、兩篇文獻真正做了什麼

MAEEG

MAEEG 以六層 CNN、八層 Transformer 從 masked latent 重建 raw EEG。其最重要結果是:少標籤時 75% 且單一長 mask 較好,但作者也明確指出模型主要重建慢變化,這對 100 秒睡眠訊號合理,未必適合 2 秒運動想像。論文沒有完整報告 band-pass 或一般波形 augmentation。

BIOT

BIOT 將 EEG 統一到 200 Hz、每通道以絕對振幅第 95 百分位正規化,再切成 1 秒、50% overlap 的逐通道頻譜 token。token 加 channel/position embedding 後用 linear Transformer 與 mean pooling。SSL 用 channel/token dropout 形成擾動視圖,以 L2-normalized InfoNCE 訓練。官方程式的公開 perturb 實際只隨機保留各通道 50–100% 時間 token,因此報告將論文描述與程式行為分開。

二、改良設計

三、濾波先驗檢查

先用固定 folds 的 log-bandpower logistic probe 檢查濾波。它只是方向探針,不是深度模型結果。

Filter probe

四、SSL 是否學到東西

validation total loss 從 0.5664 降至最佳 0.3344;external 四位為 0.3819。重建很早停在約 0.025,後續改善主要來自 InfoNCE。預訓練沒有 collapse,但 downstream 結果顯示「學到可辨識的無標記表徵」不等於「學到左右腳可用表徵」。

Pretraining losses

五、完整分類結果

Group accuracy
label n_subjects mean_accuracy std_accuracy mean_balanced_accuracy
BIOT 1-40 10 58.41% 9.30% 58.43%
MI-BIOT v1 1-40 no mirror 10 59.01% 11.51% 58.99%
MI-BIOT v1 1-40 + mirror 10 51.72% 5.34% 51.64%
MI-BIOT v1 SSL 10 53.22% 4.03% 53.20%
MI-BIOT v1 4-40 10 50.76% 1.74% 50.69%
MI-BIOT v2 scratch 10 58.12% 9.87% 58.12%
MI-BIOT v2 SSL 10 55.06% 8.50% 55.08%
BIOT 0.5-50 10 55.45% 8.69% 55.46%
MI-BIOT 0.5-50 no mirror 10 57.21% 8.93% 57.21%

單一受試者

Subject heatmap
subject_id BIOT 1-40 MI-BIOT v1 1-40 no mirror MI-BIOT v1 1-40 + mirror MI-BIOT v1 SSL MI-BIOT v1 4-40 MI-BIOT v2 scratch MI-BIOT v2 SSL BIOT 0.5-50 MI-BIOT 0.5-50 no mirror
sub1 62.63% 50.73% 50.73% 52.22% 50.73% 59.17% 62.11% 47.24% 49.24%
sub2 48.72% 49.76% 49.76% 52.20% 53.68% 49.76% 51.72% 54.16% 50.73%
sub3 59.50% 53.50% 47.00% 60.50% 51.00% 57.50% 57.50% 53.00% 54.00%
sub9 50.76% 48.26% 49.24% 52.27% 50.72% 49.26% 44.74% 54.65% 51.26%
sub10 54.50% 57.50% 52.50% 52.00% 53.00% 53.50% 52.00% 53.00% 64.50%
sub11 64.50% 70.00% 48.50% 50.50% 49.00% 68.50% 60.00% 71.00% 67.50%
sub12 71.72% 82.61% 66.20% 59.72% 47.76% 66.74% 58.74% 57.26% 70.63%
sub13 73.00% 71.00% 52.00% 53.00% 51.50% 77.50% 71.50% 70.00% 66.50%
sub14 49.00% 55.00% 50.00% 47.00% 50.00% 51.00% 46.00% 48.00% 50.00%
sub15 49.73% 51.71% 51.24% 52.76% 50.24% 48.26% 46.29% 46.20% 47.74%

六、統計與判斷

comparison mean_delta_pp bootstrap_ci_low_pp bootstrap_ci_high_pp wilcoxon_p_raw wilcoxon_p_holm a_better_subjects
dual-scale vs BIOT 0.60 -3.32 4.28 0.7695 1.0000 6
remove mirror 7.29 2.60 12.50 0.0251 0.1754 7
scratch vs SSL v1 5.79 -0.33 12.40 0.2754 1.0000 5
1-40 vs 4-40 8.24 1.48 16.22 0.0506 0.3037 7
1-40 vs 0.5-50 1.80 -1.20 4.89 0.3223 1.0000 6
v2 vs BIOT -0.29 -2.08 1.56 0.7695 1.0000 4
SSL vs scratch v2 -3.06 -5.35 -0.69 0.0506 0.3037 2

相對於 50% chance

model mean_accuracy subjects_above_chance wilcoxon_greater_than_0p5_p
BIOT 1-40 58.41% 7 0.0244
MI-BIOT v1 1-40 no mirror 59.01% 8 0.0098
MI-BIOT v1 1-40 + mirror 51.72% 5 0.2573
MI-BIOT v1 SSL 53.22% 9 0.0186
MI-BIOT v1 4-40 50.76% 7 0.0961
MI-BIOT v2 scratch 58.12% 7 0.0186
MI-BIOT v2 SSL 55.06% 7 0.0654
BIOT 0.5-50 55.45% 7 0.0244
MI-BIOT 0.5-50 no mirror 57.21% 7 0.0253

此處為每位受試者五折平均後的單尾 Wilcoxon,未校正九個模式的多重比較。最佳模型的 p=0.0098 是探索性結果,而且模型本身由同批結果挑出,不能視為獨立 confirmatory test。

最關鍵的負結果:
最佳 MI-BIOT 無鏡射為 59.01% ± 11.51%,只比單尺度 BIOT 的 58.41% ± 9.30% 高 0.60 pp,bootstrap 95% CI [-3.32, 4.28],沒有可靠優勢。加入鏡射後下降 7.29 pp;表示個體左右不對稱不能被視為可任意交換的標籤對稱。4–40 Hz 下降到 50.76%,說明 1–4 Hz 成分不宜直接刪除。combined SSL 與 V2 SSL 均低於對應 scratch,30 位靜息式無標記預訓練未對左右腳產生穩定 transfer。

七、模型是否合適

結論:架構可用,但不構成優於簡單基準的新主模型。
雙尺度無鏡射版本在 sub11–sub13 有明顯高點,但跨受試者不一致;V2 residual head 修復部分 collapse,群組平均仍只有 58.12%。在這份資料量下,單尺度 BIOT 的簡潔 inductive bias 已接近最合理複雜度。下一步不建議繼續增加 Transformer/SSL loss;較值得的是把可解釋的 1–4、Mu、beta bandpower 或 Riemannian covariance 作為顯式 side features,或取得與左右腳任務更接近的跨受試者標記資料做 supervised pretraining。

輸出檔案

chance_comparisons.csvfilter_probe.csvfold_results.csvgroup_summary.csvpaired_comparisons.csvpretrain_external_validation.csvpretrain_history.csvrun_config.jsonsmoke_test_cuda.jsonsubject_summary.csv