中榮 data v2 去雜訊:EEGNet、Shallow、Support-CSP 自身訓練

實驗邊界:每個 session 單獨隨機初始化、單獨 5-fold 評估。沒有使用 34 位正常人、既有 source checkpoint、跨 session 累積權重,或其他中榮 session 資料。

可採用的 v2 清理部分

1000 Hz continuous raw → 單步梯度 >200 的局部 despike → 4–32 Hz 四階 Butterworth SOS zero-phase IIR → session/channel Z-score → 200 Hz → event[-1,2] s → [-1,0] s mean baseline subtraction → task[0,2] s。濾波在連續訊號上完成,因此可避免 epoch 內濾波邊界效應。

三個模型在輸入時都再做 task window 的 trial/channel Z-score;訓練階段才做 0.95–1.05 gain 與 ±50 ms reflection shift。

重要審核結論

v2 的既有 61–72% 準確率不可直接當作嚴格結果。evaluate_clean_data.py 每個 epoch 都在 outer test fold 上算 accuracy,並保存 test accuracy 最高的 epoch;這等於用 test 選模型。此處改為 outer-train 的 80/20 validation 做 early stopping,outer test 只在模型固定後評估。另:說明文件提到 CAR/Laplacian,但 clean_pipeline.py 實際沒有套用這兩者。

整體結果

accuracy summary

三個模型均未見到穩定高於機率的改善。最高群組平均為 EEGNet 50.26% ± 5.65%(跨 9 段 session 的 mean±STD)。因此這套 v2 去雜訊可作為一個待改良的候選前處理,但目前不支持它能穩定提升左右腳判別。

Model9 session mean±STDBalanced accuracySessions
EEGNet50.26% ± 5.65%50.46%9
ShallowConvNet49.14% ± 8.35%48.98%9
Support-CSP44.81% ± 5.05%44.35%9

逐 session 結果

SessionModel5-fold held-out mean±fold STDBalanced accuracyParameters
s1_1EEGNet50.00% ± 25.00%50.00%1,618
s1_1ShallowConvNet57.50% ± 18.96%57.50%15,562
s1_1Support-CSP52.50% ± 16.30%52.50%105,190
s1_2EEGNet45.00% ± 11.18%45.00%1,618
s1_2ShallowConvNet55.00% ± 22.71%55.00%15,562
s1_2Support-CSP35.00% ± 27.10%35.00%105,190
s1_3EEGNet50.00% ± 12.50%50.00%1,618
s1_3ShallowConvNet45.00% ± 20.92%45.00%15,562
s1_3Support-CSP42.50% ± 14.25%42.50%105,190
s1_4EEGNet62.50% ± 15.31%62.50%1,618
s1_4ShallowConvNet52.50% ± 5.59%52.50%15,562
s1_4Support-CSP45.00% ± 18.96%45.00%105,190
s1_5EEGNet45.71% ± 9.58%45.00%1,618
s1_5ShallowConvNet61.43% ± 9.16%60.00%15,562
s1_5Support-CSP48.93% ± 7.10%48.33%105,190
s2_1EEGNet45.71% ± 21.19%49.17%1,618
s2_1ShallowConvNet40.00% ± 21.19%40.83%15,562
s2_1Support-CSP45.71% ± 11.95%45.83%105,190
s2_2EEGNet55.36% ± 7.36%55.83%1,618
s2_2ShallowConvNet36.07% ± 15.99%36.67%15,562
s2_2Support-CSP44.64% ± 7.36%41.67%105,190
s2_3EEGNet50.95% ± 13.53%50.00%1,618
s2_3ShallowConvNet44.76% ± 10.83%43.33%15,562
s2_3Support-CSP48.10% ± 8.81%46.67%105,190
s2_4EEGNet47.14% ± 11.95%46.67%1,618
s2_4ShallowConvNet50.00% ± 7.14%50.00%15,562
s2_4Support-CSP40.95% ± 10.96%41.67%105,190

資料快取驗證

SessionTrialsLeftRightEpoch shape
s1_1402020(40, 8, 600)
s1_2402020(40, 8, 600)
s1_3402020(40, 8, 600)
s1_4402020(40, 8, 600)
s1_5391920(39, 8, 600)
s2_1351718(35, 8, 600)
s2_2361818(36, 8, 600)
s2_3311516(31, 8, 600)
s2_4341618(34, 8, 600)

共 9 段有效 session;s3_1 與人工標記的 trial 已依 v2 規則排除。

Support-CSP 的隔離方式

每個 outer fold 的 shrinkage CSP(Mu 8–13、low beta 13–20、high beta 20–30 Hz)與 left/right prototype 都只用 inner-train 建立。inner-train 內 CSP feature 另做 cross-fitting;validation 與 outer-test 只套用 inner-train CSP,沒有以自身標籤參與 CSP/prototype fitting。

剩餘限制

v2 的 session-level Z-score 是從該 session 的整段連續資料估計,包含外層 test 時間點但不含標籤。這屬於未監督的 transductive normalization;若要做完全嚴格的離線 CV,應改成僅用 outer-train 或部署前 calibration 估計統計量。這不會解釋本頁的低結果,但會影響未來若想主張嚴格泛化的設定。

可重跑檔案

fold results · session summary · group summary · data manifest · run config
strict evaluator · v2 cleaning pipeline · v2 original evaluator (audit reference)