崔麗麗鄭 赟孟小飛馬玉良*
(1.杭州電子科技大學采購中心,浙江 杭州 310018;2.杭州電子科技大學自動化學院,浙江 杭州 310018)
腦機接口(Brain-Computer Interface,BCI)是一種特殊的人機交互接口,它可以在大腦與計算機等外部設備之間建立一條可靠的通信鏈路,通過采集與處理腦電信號以實現人體與周圍環境的交流。 在眾多的腦電信號中,P300 信號憑借其良好的特性,受到了越來越多研究人員的青睞[1]。
P300 信號是由小概率事件誘發的腦電信號,它是一種內源性的事件相關電位(Event-Related Potential,ERP),與大腦的認知功能相關。 P300 信號和外部刺激之間具有嚴格的鎖時性,在刺激發生后約300 ms 時刻會產生一個正電位波形,因此可以作為BCI 系統的控制信號[2]。 腦機接口中一般使用oddball 實驗范式(一項實驗中對同一感覺通道施加兩種刺激,兩種刺激出現的概率差異極大)來誘發用戶產生P300 信號[3]。 許多學者對P300 信號在字符拼寫、命令輸出等BCI 系統中的應用進行了積極的探索,并取得了一定的成果[4-6]。 但由于P300信號具有非線性、非平穩性及個體差異性等特點,大部分研究仍處于實驗階段。 如何高效地對P300 信號進行特征提取和分類識別是人們在研究腦機接口系統時最關注的問題。
現有的P300 信號識別技術大部分是基于支持向量機[7-8]的,特征提取的方法主要有小波包分解[9]、獨立分量分析[10]、主分量分析[11]以及小波變換[12]等。 傳統“特征提取+分類器”的框架將信號的特征提取和分類識別過程分離,增加了運算復雜度,降低了算法運行速度,但也舍棄了許多重要的特征信息。 卷積神經網絡(Convolutional Neural Network,CNN)[13]是近些年發展起來的、一種非常高效的識別方法,可以直接在網絡內部自動實現最優化的特征提取和分類,不需要人工選擇腦電信號特征。 相比于傳統的神經網絡,CNN 不僅可以提取出更抽象、更具有區分度的特征信息,還能自發地從訓練數據中學習已得到的特征模式,從而獲得更好的識別效果。 例如,Cecotti[14]首次使用CNN 實現了對P300 信號的分類,獲得了很好的字符識別準確率,證明了深度學習算法在腦電信號識別中的可行性。 Liu 等人[15]開發了一種新的卷積神經網絡用于提高P300 拼寫系統中的字符識別性能。 Li 等人[16]通過在簡單貝葉斯卷積神經網絡,有效地提高了網絡對P300 信號的識別準確率。
本文在前人的基礎上,改進了CNN 的網絡結構,并根據P300 腦電信號的時頻特性,選擇經驗模態分解(Empirical Mode Decomposition,EMD)算法和小波包分解(Wavelet Packet decomposition,WP)算法對原始腦電信號進行濾波處理,提出了一種基于EMD-WP 和卷積神經網絡的P300 混合分類方法,記作T-CNN。 其中,EMD 算法用于將原始腦電信號分解為若干個本征模函數(Intrinsic Mode Function,IMF)分量,WP 算法用于對這些IMF 分量進行濾波處理,卷積神經網絡用來自動提取重構信號的特征并進行分類。 本文在國際BCI 競賽數據集上評估了所提出的基于EMD-WP 和卷積神經網絡的P300 混合分類方法。 結果表明,該方法相比于傳統算法顯著提高了P300 信號的識別準確率。
本研究所用數據來自第三次國際BCI 競賽所提供的P300 拼寫器實驗[17]。 實驗中要求被試集中精力,注視圖1(a)中由字母和數字組成的6x6 矩陣,并預先選擇一個目標字符。 字符矩陣中所有的行和列隨機閃爍100 ms(即該行或列的亮度加強),每次閃爍間隔75 ms。 12個行列分別閃爍一次即為完成一次實驗,周期為2.4 s。 每個字符進行15 次重復試驗,然后進行下一個字符的測試。 當目標字符所在的行和列被加亮時,被試者需要在心中默記加亮的次數,其他行列被加亮時,被試者不需要做出反應。 這樣,當加亮的行或列中包含目標字符時,便會誘發P300信號。 一次實驗中,只有2個行列含有P300 信號,其余10個行列不包含P300 信號。 信號數據采集自64個電極,位置如圖1(b)所示,采樣頻率為240 Hz 且經過0.1 Hz~60 Hz 的低通濾波器及信號放大器。 這樣,每次刺激都會產生240×64 大小的樣本數據。

圖1 實驗數據采集
有兩名被試參與了本實驗,編號分別為A、B,將他們產生的P300 電位數據分別處理成12×15×240×16×85 的五維張量,其中,12 表示字符矩陣每行(列)的編號,15 表示實驗重復的次數,240 表示信號采樣點數,16 表示選取的導聯數目,85 表示目標字符數。本文選用枕葉區的16 導聯數據進行研究,編號分別為32、34、36、41、9、11、13、42、47、49、51、53、55、56、60、62。 以被試A 為例,選取其產生的前55個字符數據作為訓練集,后30個字符數據作為驗證集,對原始數據作15 次疊加平均處理[18]。 其訓練集和驗證集包含的樣本如表1 所示。

表1 每位受試者的訓練集和驗證集
1.2.1 經驗模態分解
EMD 算法是黃鍔等人[19]在1998 年提出的一種自適應信號處理方法,它可以將一個復雜信號分解成若干個具有不同特征尺度的IMF 分量和殘差信號。分解得到的IMF 分量有以下兩個特征:①在整個數據范圍內,極值點和過零點的數目相等或者差值至多為1;②在任意點處,由極大值點形成的包絡線和由極小值點形成的包絡線的平均值為零。
EMD 分解過程描述如下:
①找到信號x 的所有極值點,利用三次樣條算法分別連接所有的極大值點、極小值點,得到兩條上下包絡線和Umin。
③檢查得到的h1是否是固有模態函數,若是,則將h1作為第一個IMF 分量;否則將h1作為輸入信號即x=h1,重復步驟①~③。
④在得到一個IMF 分量后,將之前的輸入信號變為x=x-h1,并重復①~ ④步驟,直到Recall =變成一個單調函數信號。最終得到N個IMF 分量和一個殘差序列。
1.2.2 小波包分解
小波包分解是對小波變換的延伸和推廣,它可以對小波變換中沒有細分的高頻部分進行有效分解,并根據被分析信號的特征,自適應地選擇相應頻段,從而提高時頻分辨率[20-21]。
小波包分解得到的是二叉樹結構,將二叉樹節點記為(j,i),j是分解層數,i是該層節點個數,則信號在第j層第k個節點的小波包分解系數為:

經過小波包分解后,信號被劃分為若干個頻段,每個頻段的頻率區間為fs/2j+1Hz,fs為采樣頻率。第j+1 層第k個節點的小波包分解系數重構公式為:

1.2.3 改進的卷積神經網絡
卷積神經網絡是一種具有特殊拓撲結構的多層感知器,它具有獨特的權值共享和局部感知特性,極大地簡化了訓練參數,降低了網絡的復雜程度;同時能夠充分利用信號本身所包含的局部特征。 CNN網絡結構一般包括輸入層、卷積層、下采樣層、全連接層及輸出層。 其中,卷積層用來提取信號特征,下采樣層的主要作用是對輸入的特征圖降維,通常用在卷積層后面,全連接層的輸入是CNN 的輸出特征。
傳統的卷積神經網絡在識別腦電信號時不僅耗費時間長,而且分類的準確率也不盡人意[14]。 本文提出了一種改進的CNN 模型用于腦電信號的識別。該模型將卷積層中的卷積核設置為向量而非矩陣,使其只提取同一維度的特征,在保證分類準確率的基礎上大幅減少程序運行時間,模型結構如圖2所示。

圖2 改進的卷進神經網絡結構
改進卷積神經網絡結構由5 層構成。 具體描述如下:
第一層L0 是輸入層,輸入數據為經過處理后的P300 信號,每個輸入樣本的維度為50×16,其中50是每個通道中的采樣點數,16 是選擇的通道數;
第二層L1 是卷積層,在此層中對輸入樣本進行空間濾波和卷積運算。 卷積核數目設為20,大小為1×16。 使用ReLU 函數激活神經元,得到了20個特征映射圖,大小為50×1。 在該層之后添加BN 技巧,對下采樣層輸入進行標準化;
第三層L2 是下采樣層,主要作用是降低特征維度。 采用步長為5 的均值池化方法,每個神經元與卷積層中相應特征圖的5×1 區域相連接,得到20個大小為10×1 的特征圖;
第四層L3 是全連接層,該層引入了Dropout 操作,在訓練過程中以0.6 的概率隨機地關掉部分神經元,以防止CNN 模型過擬合。 全連接層將各個神經元節點的特征信號轉換成向量信號,使用Softmax分類器判別輸入樣本的類別;
第五層L4 是輸出層,因為本研究的目的是識別輸入樣本是否為P300 信號,所以最終有兩種分類結果輸出:‘1’表示P300 信號,‘0’表示非P300信號。
卷積網絡的主要參數設置如表2 所示。

表2 CNN 的主要訓練參數
表2 中MaxEpochs 表示最多遍歷整個整個數據集50 次,MiniBatchSize 表示每次迭代時batch 塊的最小尺寸為64,InitialLearnRate 表示初始學習率為0.001。
腦電信號具有非線性、非平穩的特征,直接將原始腦電信號輸入CNN 網絡會帶來比較大的誤差。針對以上問題,本研究結合經驗模態分解算法、小波包分解算法和卷積神經網絡,提出了T-CNN 方法用于識別P300 信號。
該方法首先將P300 腦電信號進行EMD 分解,得到若干個IMF 分量,并根據腦電信號的有效頻率范圍,舍棄第一個IMF 分量;接著對剩余的IMF 分量分別進行小波包分解,保留0~30 Hz 范圍內的信號成分;然后將經過WP 濾波后的各個IMF 分量進行疊加,得到重構后的腦電信號;又因為P300 信號出現在刺激發生后約300 ms,所以將選取0~625 ms內的數據進行下采樣,采樣因子為3。 最后,將處理好的數據送入改進的CNN 模型中進行訓練和預測,以實現P300 腦電信號的識別。
T-CNN 方法的流程圖如圖3 所示。 圖3 中,IMF1,IMF2,…,IMFn表示EMD 分解得到的n個固有模態函數,IMF′1,…,IMF′n表示經過小波包分解算法濾波后的固有模態函數。

圖3 T-CNN 方法的流程圖
本文使用分類準確率對該方法識別P300 信號的能力進行評估。 分類準確率定義為正確分類的樣本數與樣本總數之比,計算公式為:

此外,還引入了如下指標評價P300 信號的識別結果,公式如下[22]:

Recall 表示召回率,Precision 表示精確率,F1-score 是識別率的延伸,結合了精確率和召回率。其中,TP 是分類為真實正例樣本的數目,TN 是分類為真實負例樣本的數目,FP 是錯分為正例樣本數目,FN 是錯分為負例樣本的數目。
本文在MATLAB R2018a 平臺上對訓練集和驗證集進行仿真實驗,使用6 折交叉驗證的平均結果以驗證T-CNN 方法在P300 信號檢測中的有效性。實驗中使用rng()函數控制隨機數的生成,設置其種子數為3,使得CNN 模型每次初始化參數時使用的隨機數保持一致。
為便于觀察,本研究隨機選取了被試A 在Cz通道內的一組P300 數據。 首先使用EMD 算法對P300 信號進行分解,得到5個固有模態函數,如圖4所示。 每個IMF 分量對應著不同的頻率成分,且不同的IMF 分量之間波形差異明顯,幅度也不同。

圖4 P300 信號的EMD 分解
再對每個IMF 分量進行頻譜分析,畫出對應的頻譜圖如圖5 所示。 可以看出第一個IMF 分量的頻率成分主要集中在40 Hz~80 Hz,而P300 信號的頻率范圍為0~30 Hz。 因此本文舍棄了第一個IMF分量,采用IMF2~IMF5這四個IMF 分量分別進行4層小波包分解,并以db4 小波作為小波基函數。 腦電信號的采樣頻率為240 Hz,由抽樣定理知,奈奎斯特頻率為120 Hz。 分解了4 層,最后一層有16個頻率段,則每個頻段的范圍是120/32 =7.5 Hz。 根據P300 信號的有效頻段和公式(3),選擇第四層的前4個小波包子帶重構腦電信號。 表3 給出了這4個子帶的頻率范圍。

圖5 IMF 分量對應的頻譜圖

表3 前4個小波包子帶對應的頻率范圍
將經過小波包分解后的各個IMF 分量疊加,重構P300 信號。 原始P300 信號與重構P300 信號的比較如圖6 所示:通過2個信號的波形可以看出重構的P300 信號保留了原始信號的大部分特征,為了定量分析該方法的消噪效果,本文將去除的IMF1 分量作為噪聲信號,并且使用信噪比作為評價標準。 經過計算,原始信號和重構信號的信噪比分別為2.07、6.82,說明重構信號消除了大量的隨機噪聲,EMD 算法和WP 算法的濾波效果是較為理想的。

圖6 原始P300 信號與重構P300 信號
同樣以受試者A 為例,將其訓練集輸入改進的卷積神經網絡,訓練準確率和損失函數曲線如圖7所示,橫坐標均表示迭代次數,縱坐標分別表示準確率和損失值。 訓練過程中遍歷數據集50 次,每次進行10 次迭代,每次迭代時batch 塊的最小尺寸為64,總共進行了500 次迭代。 從圖7 中可以看出,在迭代次數多于400 次以后,訓練準確率和損失值基本穩定,兩條曲線均趨于收斂。 可以認為網絡在第400 次時達到最好的訓練效果,此時訓練準確率為98.44%,損失值為0.071 5。

圖7 CNN 訓練過程中的訓練準確率曲線和loss 曲線
使用驗證集檢驗訓練好的模型,P300 信號的分類準確率為97.78%,證明了T-CNN 方法在P300 信號識別中的有效性。 被試A 在該模型下的召回率、精確率和F1-score 如表4 所示。

表4 P300 信號分類結果的召回率、精確率和F1-score
和文獻[15]相比,該方法得到了更高的召回率、精確率和F1-score,這意味著更好的分類表現。
為了更加客觀地評價本文提出的方法,本文將T-CNN 方法與其他P300 識別方法進行了比較,如圖8 所示。 支持向量機(Support Vector Machine,SVM)、線性差別分析(Linear Discriminant Analysis,LDA)和T-CNN 三種方法使用的輸入數據均經過EMD 算法和WP 算法處理,而tT-CNN 使用的輸入數據未經過WP 算法處理。 使用tT-CNN 方法和TCNN 方法分別對兩名受試者產生的P300 數據進行識別,得到的分類準確率均比傳統的支持向量機、線性判別分析方法要高,說明使用深度學習算法確實能夠更好地對P300 腦電信號進行分類。 而兩名受試者使用tT-CNN 方法得到的分類準確率分別為95%、94.17%,使用T-CNN 方法得到的分類準確率分別為97.78%、95.56%,說明相比于對只經過消噪的P300 數據進行分類的tT-CNN 方法,T-CNN 方法獲得了更高的分類準確率。

圖8 多種方法識別效果對比
針對P300 腦電信號非線性、非平穩的特性,本研究使用EMD 算法和WP 算法對信號進行濾波(圖4~圖6)。 實驗結果表明(圖8),與直接將信號送入改進的CNN 模型相比,使用WP 算法進行濾波使得兩名被試的分類準確率分別提高了2.78%、1.39%。 這說明同時使用小波包分解算法與改進的卷積神經網絡模型對P300 腦電信號進行二級特征提取與分類,能夠有效地改善信號的識別效果,獲得更高的分類準確率。 這表明通過EMD 得到的有效IMF 分量能準確分類P300 信號。 同時可以看到,相同算法在不同受試者產生的P300 數據上的分類表現存在差異,這進一步驗證了P300 腦電信號的個體差異性,提醒我們需要開發出一種具有普適性的腦電信號分類算法。 而在只使用EMD 或WP 算法的情況下,以受試者A 為例,P300 信號的分類準確率分別為91.25%、93.75%,均比同時使用時的準確率低。 這表明EMD 和WP 算法的組合有效地過濾了信號中的噪聲,同時也對信號中的特征進行了簡單提取,方便了后續卷積神經網絡對信號的分類。
腦電信號是一種具有時間特性和空間特性的信號,為了保證卷積運算后的特征中不會同時包含空間和時間信息,本研究對傳統的卷積神經網絡進行了改進,如圖2 所示。 在設計CNN 網絡結構時,本文只使用了一個卷積層。 卷積核設置為向量而非矩陣,保證了卷積層只能提取空間特征或時間特征。實驗結果如圖8 所示,改進的CNN 網絡模型,相比于普通的分類器能夠有效地改善P300 信號的識別準確率。 在實驗過程中,為了得到分類效果較好的CNN 模型,本文研究了不同參數設置的網絡。 結果表明,在樣本確定的情況下,模型的分類準確率和網絡的復雜度并沒有必然的聯系。 針對訓練過程中可能出現的過擬合現象,我們在CNN 網絡結構中添加了BN 和Dropout 技巧,在防止過擬合的同時還提高了識別準確率。
本研究的主要工作是對P300 腦電信號進行處理和分類,是在離線環境下進行的。 因此,雖然本文提出的方法有效改善了P300 信號的識別準確率,但要想開發出可以實時處理信號的在線BCI 系統,仍有很多問題需要解決。 由于目前在設置CNN 網絡參數時,主要還是依靠研究者的經驗及多次重復實驗,隨機性太大且缺乏理論依據,所以如何選擇合適的算法來確定CNN 網絡的參數將是筆者后續的研究內容。 而少量的受試者更是無法從統計學意義上說明本文提出方法的有效性,使用更多的數據集去驗證該方法也是必要的工作。
本文通過對P300 腦電信號的研究,提出了一種將經驗模態分解、小波包分解與改進的卷積神經網絡相結合的方法,實驗結果表明,該方法能夠有效地提高P300 信號的識別準確率,為基于P300 信號的腦機接口系統實現提供了一條新思路。