處理到模型復(fù)現(xiàn))
簡介基于卷積神經(jīng)網(wǎng)絡(luò)的腦電信號上肢運動意圖識別論文PDF面向腦機(jī)交互、深度學(xué)習(xí)及生物信號處理研究者。該研究針對傳統(tǒng)模式識別中手動提取特征容易導(dǎo)致信息損失的問題利用CNN自動學(xué)習(xí)腦電特征并與BP神經(jīng)網(wǎng)絡(luò)兩種特征提取方法進(jìn)行對比實驗。資源共1個PDF文件大小約4.36MB為浙江大學(xué)2017年發(fā)表于《浙江大學(xué)學(xué)報工學(xué)版》的完整論文內(nèi)容包含研究背景、CNN模型構(gòu)建、左右手二分類和單手三分類實驗設(shè)計及結(jié)果分析實驗顯示CNN相比BP網(wǎng)絡(luò)識別精度分別提升約4%和8%增強(qiáng)了動作預(yù)測的可靠性。讀者可據(jù)此掌握CNN在腦電信號意圖識別中的落地流程加深對腦機(jī)交互控制與中樞神經(jīng)信號手部動作關(guān)系的理解適用于機(jī)器學(xué)習(xí)、數(shù)據(jù)建模及運動意圖識別等方向。目前已有206人學(xué)習(xí)適合相關(guān)領(lǐng)域研究人員、學(xué)生及工程師參考。1. 基于卷積神經(jīng)網(wǎng)絡(luò)的腦電信號上肢運動意圖識別不是看熱鬧的論文把“基于卷積神經(jīng)網(wǎng)絡(luò)的腦電信號上肢運動意圖識別”這個標(biāo)題拆開看說白了是一件事EEG信號太弱、太容易混入偽跡傳統(tǒng)做法要先手動抽特征再分類這一抽信息就損失一塊。這篇2017年發(fā)表在《浙江大學(xué)學(xué)報工學(xué)版》上的論文直接拿卷積神經(jīng)網(wǎng)絡(luò)對著腦電矩陣做分類把傳統(tǒng)“手動特征BP神經(jīng)網(wǎng)絡(luò)”的識別精度在左右手2分類上拉高了約4%在單手3分類上拉高了8%。我讀它不是因為算法多潮而是因為它把實驗范式、21個通道選位、21×80輸入矩陣、兩層卷積核參數(shù)全寫透了完全可以照著搭一套自己的上肢運動意圖識別流程。下面按復(fù)現(xiàn)順序拆解。2. 實驗設(shè)計與EEG預(yù)處理21通道取舍與128ms滑動窗里的ERD計算2.1 設(shè)備與電極選位64導(dǎo)系統(tǒng)為什么只算21導(dǎo)整篇論文的采集平臺是荷蘭BioSemi公司的ActiveTwo 64通道腦電系統(tǒng)采樣率1024Hz右耳垂做參考電極接地電極由CMS和DRL兩個獨立電極替代。實驗招募了5位神經(jīng)健康的志愿者平均年齡26.3±7.2歲實驗前24小時內(nèi)沒有劇烈運動開始實測之前對所有運動流程做了完整訓(xùn)練并簽署知情同意書。采是用64導(dǎo)采的最終只選了21個通道參與分析。這21個通道按國際10-20標(biāo)準(zhǔn)電極安放法布置覆蓋運動感知功能區(qū)的核心區(qū)域區(qū)域電極名稱數(shù)量額區(qū)FC5、FC3、FC1、FCz、FC2、FC4、FC67中央?yún)^(qū)C5、C3、C1、Cz、C2、C4、C67中央頂區(qū)CP5、CP3、CP1、CPz、CP2、CP4、CP67選位邏輯很清楚運動想象的ERD/ERS現(xiàn)象主要出現(xiàn)在初級感覺運動皮層附近額區(qū)、中央?yún)^(qū)、中央頂區(qū)正是這個功能區(qū)投影到頭皮的位置。單側(cè)手部運動或想象運動時對側(cè)運動皮層出現(xiàn)α和β節(jié)律的幅度下降也就是事件相關(guān)去同步通道離運動皮層太遠(yuǎn)這類特征會被其他腦區(qū)的自發(fā)活動淹沒。對復(fù)現(xiàn)者來說通道數(shù)不是越多越好關(guān)鍵是覆蓋對側(cè)運動皮層。如果手里只有32通道甚至8通道的便攜腦電帽優(yōu)先保留C3、C4、Cz及周圍的FC、CP電極遠(yuǎn)顳區(qū)和枕區(qū)的通道在這個任務(wù)里貢獻(xiàn)有限砍掉不影響大局。另外CMS/DRL的主動電極接地方式要注意——它替代的是傳統(tǒng)接地電極采集時不能省否則共模抑制會明顯下降工頻干擾直接灌進(jìn)信號里。2.2 單次試驗10秒時間軸真正進(jìn)模型的只是2.5秒實驗分成兩部分左右手動作2分類和右手動作3分類。左右手實驗分別做左手、右手的屈肘運動單手實驗做三種上肢運動——屈肘、屈腕和腕外旋。每種動作各執(zhí)行50次每位受試者完成250次試驗。動作為什么選這三個論文引用了一個觀察物理行為最相似的2類任務(wù)之間錯誤分類率最高比如屈腕與腕內(nèi)旋、伸腕與腕外旋所以特意選了行為差異較大的肘關(guān)節(jié)和腕關(guān)節(jié)運動。時間段階段被試要求02s休息思想盡量放松不作過多思考第3s起2s準(zhǔn)備想象根據(jù)語音提示進(jìn)入準(zhǔn)備狀態(tài)58s運動想象集中注意力想象即將執(zhí)行的動作810s運動執(zhí)行勻速轉(zhuǎn)動關(guān)節(jié)至任意角度實驗用E-Prime軟件控制語音和視覺提示。復(fù)現(xiàn)時數(shù)據(jù)記錄一定要同步打事件標(biāo)記——后面那2.5秒的輸入窗口就是靠運動起始點對齊切出來的。數(shù)據(jù)截取范圍是運動前2s至運動后0.5s共2.5秒運動執(zhí)行階段只留0.5s是考慮到被試存在反應(yīng)延遲。如果直接拿第5s到第8s的運動想象段來訓(xùn)練丟掉的是運動執(zhí)行前最關(guān)鍵的“意圖形成”信息。運動想象和運動執(zhí)行都能在皮層產(chǎn)生相似波形但意圖識別研究的重點在想象段執(zhí)行段的腦電混入感覺反饋和肌電成分反而會干擾分類。2.3 預(yù)處理鏈路低通、陷波、CAR、帶通原始EEG經(jīng)歷三道預(yù)處理96Hz低通濾波去掉高頻分量50Hz陷波去掉線路頻率空間濾波提升信噪比??臻g濾波選的是共平均參考CAR即每個電極的電位減去所有21個電極電位的平均值。CAR在幾種常見空間濾波方案中信噪比表現(xiàn)最好尤其適合電極數(shù)量較多的采集配置。計算可以寫成V_CAR[i] V_RAW[i] - (1/N) × Σ V_RAW[j]其中N21。CAR的操作含義是假設(shè)所有電極共享一個全局噪聲源平均電位近似代表這個噪聲減去它等于把全體電極共同噪聲從單通道里摳掉。實測中這套濾波對工頻干擾和皮膚電位漂移的壓制都很明顯。空間濾波之后還要對信號做帶通濾波隔離α/β頻率分量。論文用的是Matlab濾波器工具箱里的10階Butterworth帶通濾波器頻率范圍8-30Hz。為什么選這個范圍α頻帶8-13Hz、β頻帶13-30Hz這兩個頻帶的ERD/ERS被證實直接反映肢體運動。低于8Hz的慢波多為漂移和眼電高于30Hz的成分里肌電占比上升都不適合做運動意圖分類。兩個容易踩的參數(shù)坑提前說第一50Hz陷波帶寬不能太寬常規(guī)做法只陷49-51Hz如果陷得范圍太大20Hz以上信號相位會被拖累第二10階Butterworth的相位延遲在離線分析里可以容忍但要做在線腦機(jī)接口時建議改用零相位濾波不然實時處理會產(chǎn)生明顯的群延遲動作預(yù)測窗口就廢了。2.4 ERD量化128ms窗口算出來的百分比ERD的物理含義是運動想象引起的腦電節(jié)律幅度抑制。論文對濾波后的EEG數(shù)據(jù)加一個長度128ms、間隔1個采樣點的滑動時間窗逐個數(shù)據(jù)點求當(dāng)前時間窗相對參考時段的平均功率變化得到能量百分比的ERD時程變化。參考時段的平均功率設(shè)為R當(dāng)前窗功率設(shè)為A則ERD(R-A)/R×100%。這個量是負(fù)向的ERD絕對值越大說明節(jié)律抑制越強(qiáng)運動意圖越明顯。128ms的窗口長度恰好在α/β的2個周期以上既能平滑波動又不會把細(xì)節(jié)抹掉1個采樣點的滑動步長讓曲線保持高分辨率。實際計算時按實驗序號逐段求值最后對所有重復(fù)試驗做疊加平均消除自發(fā)電位等隨機(jī)成分。這一節(jié)對復(fù)現(xiàn)很關(guān)鍵因為C3、C4通道的ERD時程曲線和腦地形圖是論文驗證數(shù)據(jù)質(zhì)量的第一道憑證。右手運動想象對側(cè)的C3通道該出現(xiàn)明顯能量下降對照側(cè)C4變化小得多左手運動想象則鏡像反轉(zhuǎn)。復(fù)現(xiàn)時如果你的預(yù)處理數(shù)據(jù)畫不出這個對側(cè)性后面分類結(jié)果再好看也要懷疑數(shù)據(jù)本身有偏差。3. 把腦電矩陣喂給CNN21×80輸入與兩層卷積核的網(wǎng)絡(luò)設(shè)計3.1 為什么要換掉“手動特征分類器”的模式傳統(tǒng)生物信號模式識別模型的流程是預(yù)處理→手動特征提取→分類器。手動特征提取最大的軟肋是信息損失腦電里大量成分沒有明確生理意義你不知道該提取哪幾個統(tǒng)計量才算完備降維和篩選過程中一部分對分類有用的信息就被丟掉了。CNN用卷積層加反向傳播自動學(xué)特征把特征提取和分類收斂到同一個訓(xùn)練過程里相當(dāng)于用數(shù)據(jù)驅(qū)動替代了專家經(jīng)驗。對比一下就能看出差別傳統(tǒng)法里小波變換、CSP都是固定算法分類器訓(xùn)練只發(fā)生在BP那一步CNN里每個卷積核都在訓(xùn)練中自動調(diào)節(jié)雖然訓(xùn)練成本更高但換來的是4%和8%的精度增益以及更可靠的動作預(yù)測。對這個場景來說CNN的權(quán)值共享結(jié)構(gòu)也比較貼合腦電——每個通道在空間上的含義相對固定同一個卷積核掃過不同電極位置時學(xué)到的模式是可以遷移的。想系統(tǒng)補卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)的話這篇論文的2.2節(jié)其實可以當(dāng)速查卡用它比一般教科書簡潔直接把局部連接、權(quán)值共享、卷積層、降采樣層每個算子的數(shù)學(xué)表達(dá)式列全了。3.2 輸入矩陣怎么擺21×80不是隨便給的輸入矩陣形式是N×TN是電極通道數(shù)21T是每個通道的時間采樣點分段數(shù)。具體計算采樣段2.5s乘以1024Hz采樣率一共2560個采樣點數(shù)據(jù)段窗口長度定為32點2560÷3280因此輸入矩陣為21×80。這里“窗口長度32”扮演的角色是分組單元而非卷積核。對原始2560個采樣點按32點一組做聚合等效于一次降采樣讓后續(xù)卷積有合理的時間尺度。如果直接把21×2560的矩陣喂進(jìn)去第一層計算量會膨脹幾十倍參數(shù)也指數(shù)級增長小樣本下很難收斂。復(fù)現(xiàn)時如果改了采樣率先按比例調(diào)整窗口長度別讓T的值離譜。輸入?yún)?shù)數(shù)值說明采樣率1024HzBioSemi系統(tǒng)截取段時長2.5s運動前2s至運動后0.5s總采樣點數(shù)25602.5×1024數(shù)據(jù)段窗口長度32點時間分組單位時間幀數(shù)T802560÷32通道數(shù)N2110-20系統(tǒng)輸入矩陣21×80通道行×?xí)r間幀列另一點容易被忽略的是標(biāo)準(zhǔn)化。論文說在把數(shù)據(jù)導(dǎo)入CNN之前將每位受試者的EEG信號標(biāo)準(zhǔn)化。這一步很重要不同通道的阻抗殘差不一樣幅值差異可達(dá)十幾倍若不做標(biāo)準(zhǔn)化第一層卷積核學(xué)出來的權(quán)重會被大尺度通道主導(dǎo)真正攜帶ERD信息但幅值較小的通道反而被忽略。標(biāo)準(zhǔn)化的統(tǒng)計量按通道獨立計算保留各通道在時間上的相對起伏同時抹掉通道間的幅值量級差異。3.3 網(wǎng)絡(luò)結(jié)構(gòu)對照表兩層卷積的模型其實很克制論文構(gòu)建的網(wǎng)絡(luò)一共5層輸入層、卷積層1、卷積層2含降采樣、全連接層、輸出層。參數(shù)對照如下結(jié)構(gòu)卷積核濾波器數(shù)輸出特征圖尺寸說明輸入層--21×80逐受試者標(biāo)準(zhǔn)化卷積層121×177張1×80通道維空間卷積降采樣最大值池化-每張減半尺度2無可學(xué)習(xí)參數(shù)卷積層21×8535張1×10時間維短窗卷積降采樣最大值池化-每張減半輸出特征圖長度減半全連接層--120神經(jīng)元全連接上一層輸出層RBF單元-2或3個每類對應(yīng)一個RBF單元第一層卷積核21×1很關(guān)鍵它把21個通道的位置關(guān)系壓進(jìn)一個標(biāo)量輸出特征圖里的第n個點對應(yīng)第n個時間幀的空間模式卷積核在時間維移動時相當(dāng)于在80個幀之間建立聯(lián)系。第二層1×8則是在時間維上做短窗口卷積8個時間點對應(yīng)大約1/4秒的波形長度能捕捉ERD的短時起伏。論文特意說明用的是1D卷積這樣卷積后特征里不會混入空間和時間兩類信息降低網(wǎng)絡(luò)復(fù)雜度也避免兩種特征互相干擾。降采樣采用最大值采樣每隔2個點取最大值輸出特征圖長度減半。池化神經(jīng)元不承擔(dān)學(xué)習(xí)功能沒有可學(xué)習(xí)的權(quán)重和閾值它提供的是平移和縮放不變性。要理解這里為什么敢用最大池化而不是平均池化ERD特征是一種幅值抑制現(xiàn)象最大值采樣能更敏銳地保留“節(jié)律振蕩仍然活躍的時段”對后續(xù)分類更有效。激活函數(shù)全部采用拉伸的雙曲正切f(a)A·tanh(S·a)參數(shù)A1.7159、S2/3。這兩個值值得記下來A把輸出范圍壓到±1.7159之間S讓激活在接近0的區(qū)域斜率近似線性反向傳播時梯度不容易飽和。如果換成ReLU在這個小樣本任務(wù)里容易出現(xiàn)部分神經(jīng)元死亡尤其是數(shù)據(jù)分布隨受試者變化較快的時候。3.4 訓(xùn)練與交叉驗證歸一化參數(shù)只能從訓(xùn)練集里出訓(xùn)練采用5折交叉驗證法將樣本隨機(jī)分成5組輪流4組作為訓(xùn)練集、1組作為測試集取5次結(jié)果的平均值作為識別率。論文還顯式提到“先將訓(xùn)練集和測試集均進(jìn)行歸一化處理再送入網(wǎng)絡(luò)運行”。這里藏著一個關(guān)鍵紀(jì)律歸一化統(tǒng)計參數(shù)只允許從訓(xùn)練集算出來測試集復(fù)用訓(xùn)練集的均值和方差。如果交叉驗證代碼里把歸一化和數(shù)據(jù)切分寫反了——先全量歸一化再切折——測試時數(shù)據(jù)分布信息已經(jīng)泄漏到訓(xùn)練側(cè)得到的精度不是模型真實水平是樂觀偏差后的假精度。很多初次復(fù)現(xiàn)的人看到模型在訓(xùn)練集上99%、測試集也99%高興半天后來發(fā)現(xiàn)歸一化泄漏重跑直接掉十個百分點。按折來做歸一化是必須的。樣本量上看每人每動作50次左右5折下每折約40個訓(xùn)練樣本。這樣的數(shù)據(jù)量對現(xiàn)在動輒幾十層的深度學(xué)習(xí)模型完全不夠用論文選5層結(jié)構(gòu)、120個全連接神經(jīng)元、RBF輸出是克制而合理的選擇。想在當(dāng)前GPU環(huán)境下復(fù)現(xiàn)并放大結(jié)果方向應(yīng)該是進(jìn)一步減少參數(shù)量或增加數(shù)據(jù)增廣而不是把網(wǎng)絡(luò)變深。4. 和“手動特征BP”硬碰硬4%和8%的精度差是怎么驗證的4.1 兩類傳統(tǒng)特征提取方案CSP專門打二分類DWT才進(jìn)多分類為了給CNN找參照論文選了當(dāng)時最常用的兩套特征提取方法。公共空間模式CSP被公認(rèn)為是提取ERD信號的有效方法之一它通過同時對角化兩類任務(wù)的協(xié)方差矩陣找到一組空間濾波方向使兩類信號在該方向上的方差差異最大由此得到區(qū)分特征。CSP在兩類問題里效果不錯但核心約束就是“兩類別”左右手2分類很合適到單手3分類、多自由度關(guān)節(jié)運動時就需要擴(kuò)展成多類CSP或引入決策樹復(fù)雜度直線上升。所以論文里CSP只參與左右手2分類對比。離散小波變換DWT的適用范圍更寬。它用“母小波”函數(shù)構(gòu)造基函數(shù)與只用正弦函數(shù)的傅里葉變換不同DWT在時域和頻域都有定位能力適合EEG這種微弱非平穩(wěn)信號。論文選DB10小波基通過Mallat快速算法把256點信號分解到第3層。分解后得到D132-64Hz、D216-32Hz、D38-16Hz、A30-8Hz只取出位于α和β波段的D2和D3做分析。每個通道取兩個子頻帶的能量均值、方差、相關(guān)系數(shù)作為統(tǒng)計特征標(biāo)準(zhǔn)化后輸入BP神經(jīng)網(wǎng)絡(luò)。單手3分類實驗里特征維度就是21通道×2頻帶×3統(tǒng)計量126維。有一個細(xì)節(jié)提醒一下原文公式里的符號偶爾有筆誤小波變換表達(dá)式在正文里寫成離散形式復(fù)現(xiàn)時以Mallat算法標(biāo)準(zhǔn)形式為準(zhǔn)不要按連續(xù)小波變換去實現(xiàn)??拷Y(jié)果反推用DWT時你只需要關(guān)心D2和D3的統(tǒng)計量是否和運動想象對應(yīng)的α/β頻率吻合。4.2 BP神經(jīng)網(wǎng)絡(luò)的分類器配置BP神經(jīng)網(wǎng)絡(luò)按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練多層前饋網(wǎng)絡(luò)。輸入層設(shè)16個節(jié)點代表從EEG時間序列里選取的特征隱藏層節(jié)點數(shù)設(shè)為20用Levenberg-Marquardt算法訓(xùn)練輸出層對應(yīng)動作種類設(shè)2個或3個節(jié)點。兩個任務(wù)的訓(xùn)練集和測試集劃分方式及交叉驗證方法與CNN完全相同。這里的一致性不是走過場。對比實驗最怕兩邊數(shù)據(jù)口徑不同CNN輸入21×80原始片段BP那邊輸入16維特征如果訓(xùn)練集劃分也不同最后差出來的精度就沒有意義。論文在兩種方法上套同一套5折交叉驗證保證每折里看到的樣本一樣CNN比BP漲出來的4%、8%才站得住。自己復(fù)現(xiàn)時建議先用同一個數(shù)據(jù)切分腳本導(dǎo)出兩種方法的輸入再分別訓(xùn)練。這是“公平對比”的底線。16個輸入節(jié)點這個數(shù)字也側(cè)面暴露了傳統(tǒng)方法的局限16維特征是從126維統(tǒng)計量里再壓縮而來的壓縮過程必然進(jìn)一步丟細(xì)節(jié)。CNN那邊輸入是21×80共1680個數(shù)值信息量天然比16維大一個量級哪怕卷積層做得樸素起點也高。4.3 評價指標(biāo)三件套總體精度、混淆矩陣、Kappa值論文對分類結(jié)果的評價沒有只看一個總精度。先統(tǒng)計所有實驗結(jié)果的混淆矩陣矩陣每個非對角元素都代表著一類動作被錯判成另一類的個數(shù)再計算總體分類精度即正確分類數(shù)與總數(shù)的比值最后算Kappa統(tǒng)計量用來衡量分類與完全隨機(jī)分類相比減少了多少錯誤。Kappa值能反映多個受試者執(zhí)行同一動作時結(jié)果的一致性避免個別受試者數(shù)據(jù)分布異常造成誤判。對左右手2分類混淆矩陣只有兩類結(jié)構(gòu)簡單真正難的是單手3分類3個動作激活大致相同的皮層區(qū)域混淆矩陣?yán)锬悴拍芸闯瞿膬蓚€動作最容易互錯。ERD特征接近的兩個動作比如屈腕和腕外旋錯分率往往最高總精度會被它們拖低。只報總精度你就不知道模型卡在哪。論文結(jié)果給的兩個數(shù)字很樸素CNN在左右手2分類中提高識別精度約4%在單手3分類中約8%。4%和8%都不是天上掉下來的性能飛躍但說明了識別精度離極限還有距離CNN拿走的正是手動提取特征時丟掉的那部分信息。解讀這兩個數(shù)字時要克制論文樣本量小、被試只有5人統(tǒng)計顯著性有限把它當(dāng)作從CSP/DWT方案升級到CNN的參考理由別過度外推。4.4 生理層面的驗證C3/C4的ERD與Morlet小波時頻圖論文還做了一層可視化的生理驗證。提取C3、C4通道的ERD信息——這兩個位置對應(yīng)手部感知運動功能區(qū)是所有通道里采集手部運動EEG的最佳位置。對所有試驗的C3和C4通道信號計算ERD后疊加平均發(fā)現(xiàn)受試者想象右手運動時對側(cè)C3電極信號能量明顯減少ERD出現(xiàn)在-2到-0.5s區(qū)間想象左手時C4電極出現(xiàn)同樣現(xiàn)象。這正好對應(yīng)單側(cè)肢體運動的對側(cè)ERD規(guī)律。時頻分析用Morlet小波變換構(gòu)建了3個動作的時頻圖目的是確認(rèn)3類動作在頻域上確實存在可分信息。結(jié)果顯示運動想象階段屈肘動作的能量最大處集中在10Hz附近兩個腕部動作在運動想象時引發(fā)的20-28Hz成分更明顯在一定時間范圍內(nèi)移到了相對高頻區(qū)域。這說明雖然3個動作激活區(qū)域大致相同但它們攜帶不同頻域特征分類是有物理依據(jù)的。給復(fù)現(xiàn)者的意義很直接跑通CNN之后用同樣的方式生成C3/C4的ERD時序圖和Morlet時頻圖。如果對側(cè)ERD消失或者3個動作的時頻重心全部重疊在同一頻段大概率是數(shù)據(jù)采集或預(yù)處理環(huán)節(jié)出了偏差。這時候先別急著優(yōu)化模型回去查數(shù)據(jù)。5. 復(fù)現(xiàn)避坑指南五個直接讓精度縮水的典型問題5.1 時間窗截偏了精度直接掉兩個點現(xiàn)象訓(xùn)練損失下降很漂亮但驗證集結(jié)果一直不穩(wěn)時好時壞總體精度總比論文里的結(jié)果低幾個百分點。原因大概率是事件標(biāo)記沒有對齊運動起始點。數(shù)據(jù)截取范圍是運動前2s到運動后0.5s如果你的標(biāo)記按語音提示或采集設(shè)備自己的硬觸發(fā)設(shè)定前后偏差半秒落在截取窗口里的就不再是純粹的意圖階段混入了休息段或者運動執(zhí)行段的肌電。解決重放原始數(shù)據(jù)人工逐一檢查每個試次的標(biāo)記時間與運動起始點是否一致有條件的話用肌電通道或加速度計輔助定位運動起始時刻以它為原點重新截取[-2.0s, 0.5s]。我一般會把每個試次的截取起點繪圖輸出一眼就能看出標(biāo)記漂移的程度。這件事不做完后面所有的訓(xùn)練和調(diào)參都是在錯誤數(shù)據(jù)上打轉(zhuǎn)。5.2 50Hz陷波把自己也陷了現(xiàn)象預(yù)處理后24Hz附近信號的幅值明顯減小原本該在20-28Hz出現(xiàn)的手腕動作特征不見了分類精度怎么調(diào)都上不去。原因陷波器帶寬設(shè)得太寬常見是把49-51Hz之外的頻率也一起衰減了或者用了一個低階IIR陷波器頻響在20-30Hz區(qū)域就開始提前衰減。10階Butterworth帶通濾波器本身也有過渡帶兩個濾波器疊加后高頻成分被壓制得更厲害。解決陷波器用窄帶中心頻率50Hz處只衰減±1Hz以內(nèi)預(yù)處理結(jié)束之后把8-30Hz帶通的頻響曲線打印出來看24Hz附近有沒有異常下跌。若確實下跌換更高質(zhì)量的陷波器或者直接用窄帶IIR陷波做50Hz單點清理不要用寬阻帶。5.3 卷積核當(dāng)成圖像來設(shè)通道和時間混到一起現(xiàn)象把輸入矩陣當(dāng)成圖像仿照圖像分類用3×3或5×5的二維卷積核訓(xùn)練也能收斂但特征圖可視化時發(fā)現(xiàn)沒有明確的空間含義分類精度也不如預(yù)期。原因EEG矩陣的兩個維度不是同構(gòu)的。通道維是空間離散電極位置時間維是連續(xù)波形二維卷積把這兩個維度同樣處理而電極在頭皮上的實際拓?fù)浜途仃嚴(yán)锏男辛许樞虿⒉煌耆恢聫?qiáng)行做二維卷積容易引入不存在的空間關(guān)聯(lián)。解決堅持論文的做法——第一層卷積核21×1只做通道維空間卷積第二層1×8只做時間維卷積。后面如果希望兩個維度同時建模先用空間卷積把21個通道壓縮到低維特征圖再沿時間維度做循環(huán)網(wǎng)絡(luò)或注意力機(jī)制不要一開始就上二維卷積。5.4 樣本量小加深網(wǎng)絡(luò)只能換來過擬合現(xiàn)象訓(xùn)練集精度95%以上測試集只有60-70%兩條損失曲線越拉越開一增加網(wǎng)絡(luò)參數(shù)差距反而更大。原因每類動作只有50次左右試驗對深度學(xué)習(xí)來說屬于極小樣本。此時讓網(wǎng)絡(luò)變深、卷積核變多只會讓模型在訓(xùn)練集上過擬合把噪聲當(dāng)成特征死記硬背下來。這是這類EEG小樣本任務(wù)里最容易翻車的點。解決先照搬論文結(jié)構(gòu)5層、120全連接節(jié)點、第一層7個濾波器和第二層5個濾波器不要自行加層。如果確實想擴(kuò)容用128ms窗口在時間軸上做重疊切片形成更多訓(xùn)練樣本但切分必須保證訓(xùn)練集和測試集不相交最好按試驗維度做分組而不是按連續(xù)塊混洗否則會造成信息泄漏驗證精度虛高。5.5 Kappa值比精度低不一定是你模型錯了現(xiàn)象總體精度和BP相比只差2-3個百分點但Kappa值反而更低心里一慌以為模型出了大問題。原因Kappa值對類別分布比總精度更敏感錯分越集中Kappa被扣得越多。如果模型把某個動作大面積誤判成另一個動作Kappa會比總精度更直觀地反映出類別層面的區(qū)分力不足。解決先看混淆矩陣定位錯分最集中的那對類別再依據(jù)第4章的做法畫出那兩類動作的時頻圖。如果頻域重疊明顯意味著問題不是分類器而是特征本身的可分性差。這時候該考慮的是增加特征來源——比如加入更多通道、細(xì)分頻帶、做多尺度時頻融合而不是盲目加大網(wǎng)絡(luò)。6. 從這篇論文到你的腦機(jī)交互項目復(fù)現(xiàn)完成后的三層驗證第一層驗證數(shù)據(jù)質(zhì)量。把C3、C4通道的ERD時程曲線畫出來確認(rèn)左右手運動想象的對側(cè)效應(yīng)是否成立再把3個動作的Morlet小波時頻圖做出來確認(rèn)屈肘能量集中在10Hz附近、腕部動作在20-28Hz更明顯。這兩張圖過關(guān)數(shù)據(jù)鏈路才算建立。如果ERD方向反了或者時頻重心全部疊在一起問題在采集或預(yù)處理不在模型。第二層驗證CNN復(fù)現(xiàn)。將左右手2分類和右手3分類的5折交叉驗證結(jié)果與論文對比以4%和8%的增量作為基準(zhǔn)。如果CNN不如BP先別急著改網(wǎng)絡(luò)結(jié)構(gòu)回到第一層的圖去找數(shù)據(jù)問題。同時對比混淆矩陣?yán)锏腻e分位置看是否集中在屈腕和腕外旋這類物理行為相近的動作上判斷特征是否真的可分。第三層驗證在線可用性。論文做的是離線分析腦機(jī)交互的實時場景要求更嚴(yán)苛。在線推理時滑動窗的ERD更新方式必須和離線計算一致延遲時間要控制在被試動作響應(yīng)的閾值以內(nèi)。我習(xí)慣的做法是用訓(xùn)練好的網(wǎng)絡(luò)參數(shù)做固定時間窗的逐幀推理每一幀輸出類別概率同時把在線輸入特征與離線特征庫做余弦相似度校驗確認(rèn)輸入分布沒有漂移。如果相似度一路走低說明電極狀態(tài)或受試者狀態(tài)變了需要重新校準(zhǔn)。我第一次復(fù)現(xiàn)這篇論文時卡在時間窗對齊上整整兩天后來把每個試次的起始點圖全打出來才發(fā)現(xiàn)標(biāo)記漂移了約200ms。從那以后我每次跑EEG分類實驗都強(qiáng)制先做數(shù)據(jù)質(zhì)量檢查把ERD時程圖、時頻圖、事件標(biāo)記對齊情況三張圖掛出來看模型訓(xùn)練反而是最后一步。這個習(xí)慣讓后面幾乎所有的復(fù)現(xiàn)工作都少走了大半彎路。希望幫到你。本文還有配套的精品資源點擊獲取