趙 麗郭芳青邊 琰李嘉瑩
(天津市信息傳感與智能控制重點實驗室 天津職業技術師范大學,天津 300222)
BP神經網絡(Back Propagation Neural Network,BPNN)模型作為訓練能力強、適合解決非線性問題[1]的分類器被廣泛應用于腦電信號(electroencephalography,EEG)的識別處理當中[2]。目前,眾多研究者致力于探究多維度的腦電特征與分類模型結合的性能提升問題。進行反復的運動想象(motor imagery,MI)可以刺激大腦的運動區域表現出明顯特征變化[3],經過特征提取和分析識別后可以被編碼成計算機語言從而建立大腦與其他設備之間交流的通路[4],為醫療康復訓練、人機交互等領域提供技術型幫助。但腦電信號存在個體差異性,經典BP算法其局部尋優性能受自身特性限制[5],不容易取得較好的分類效果。因此,為加強BP神經網絡對于不同輸入的適應能力,許多人都提出了有針對性的改進方法。Melgani[6]將粒子群優化(Particle Swarm Optimization,PSO)應用于生理信號的分類上,提出了一種基于粒子群優化的新型分類系統,在一定程度上提高了分類器的泛化性能;劉[7]提出PSO優化和生物地理學優化(Biogeography-Based Optimization,BBO)融合確定網絡的權值和偏置,識別精度為83.16%,她的方法在保證分類性能同時也提升了分類效率;Liu[8]同樣針對傳統BP算法權值下降問題使用優化算法進行了訓練,性能提升了約10個百分點。Wang[9]研究了一種基于BP神經網絡改進的心電信號分類方法,收斂速度快,樣本分類準確率達到98.4%;王清杰[10]提出了基于單形進化算法的BP神經網絡優化,對MI信號的分類準確度達到87.14%。以上對于傳統分類方法的優化能夠有效提升算法的運行效率以及求解精度,但是輸出與目標誤差最小化過程中存在容易陷入局部最優的問題,在BP神經網絡針對非線性信號的自身適應性能提升方面,仍然需要更多新思路,新方法的產生與應用。有研究結合蝙蝠算法[11](Bat Algorithm,BA)利用其局部啟發式特點進行BP神經網絡參數的尋優,一定程度上平衡了收斂速度的提升和全局最優的搜索[12],抑制局部最優出現的可能性,從而提升準確識別效果。
本文嘗試了用粒子群優化算法與蝙蝠算法改進BP神經網絡的分類效果,將改進后的分類模型分別應用于2008年BCI競賽數據和實驗室采集MI數據的分類實驗中。使用經典BP神經網絡對經過特征提取的所有運動想象腦電信號特征矩陣進行分類實驗,再結合粒子群與蝙蝠優化算法實現原始神經網絡的權值、閾值尋優與更新,實驗結果表明粒子群優化BP神經網絡(PSO-BP)算法與蝙蝠優化BP神經網絡(BA-BP)算法提升了迭代效率與分類準確精度,兩種基于BP的改進方法具有一定有效性與可用性。
實驗數據Ⅰ來源于奧地利科技大學提供的2008年BCI競賽數據,分為訓練集和測試集,其中包含9位被試,受試者通過屏幕提示進行左手、右手、腳與舌頭四類動作想象,每個數據集包含單個動作想象72次,共288次單次實驗。單個實驗范式時序過程如圖1所示:準備過程為第0~2 s,提示為第2 s~3 s,動作想象為第3 s~6 s,休息階段為第6.0 s~7.5 s。數據采集選擇22個AgCl電極以耳垂作為參考點,采樣頻率為250 Hz,通過0.5 Hz~100 Hz帶通濾波以及50 Hz陷波濾波。

圖1 數據組Ⅰ范式時間圖示
實驗數據Ⅱ來自本課題組實驗室采集的10名被試想象下肢運動時的真實腦電數據,每位被試根據屏幕指令進行共80次想象左右腳的任務,左與右的指令各隨機出現40次。單個實驗范式過程如圖2,被試在0 s~2 s準備,2 s~4 s屏幕出現方向提示,4 s~9 s進行下肢的運動想象任務,9 s~11 s被試休息。采集過程選用10-20的國際電極標準的64導電極帽以CZ點為參考電位,采樣頻率為1 000 Hz,經過降采樣、濾波、去眼電、去偽跡等預處理。

圖2 數據組Ⅱ范式時間圖示
被試在進行下肢MI任務時,相應的腦電信號會在α頻段(8 Hz~13 Hz)和β頻段(14 Hz~25 Hz)產生較為明顯的事件相關去同步(Event Related Desychronization,ERD)現象[13],我們對實驗數據Ⅱ與下肢運動相關的CZ導聯信號能量變化作了研究分析,功率譜(PSD)曲線如圖3、4所示:0時刻開始被試進行時長5s的左右腳運動想象任務,CZ導聯的PSD值在5 s內出現明顯的下降情況,說明在此時間段內,試者腦區CZ位置產生了相應的ERD現象。

圖3 下肢α頻段PSD曲線

圖4 下肢β頻段PSD曲線
為了研究經典BP神經網絡與改進的BP神經網絡算法對運動想象腦電信號分類效果的差異,本文使用幅值包絡作為信號處理與特征提取的目標樣本,提取包絡特征的具體步驟為:使用MATLAB中的Hilbert函數對經過預處理后的兩組數據信號分別作希爾波特變換得到信號包絡,在不改變信號原有的頻譜、幅度的基礎上,獲取解析信號的包絡幅值后,經過歸一化,再以目標設定輸出維數,對獲得的包絡曲線進行插值處理。做插值操作的目的是為了對多間斷點非平滑特征數據作平滑處理,去除干擾噪聲,最后得到腦電數據每個導聯信號幅值的包絡特征數據。
粒子群算法的中心思想是單個粒子個體運動軌跡模擬鳥群覓食行為過程在N維搜索空間尋找和調整最優位置[14]。PSO-BP神經網絡算法的設計通過實數編碼獲取每個粒子的位置矢量,對應各個維度的決策變量,使用相應的解碼方法計算目標函數值,經過不斷更新速度和位置矢量,完成目標函數的優化。
BP神經網絡主要通過對多個輸入正向傳遞進行不同權重的求和,得到輸出與真實值的誤差后反向推算前導層誤差,經過反復的傳遞修正各個單元權重,最終得到一個誤差較小的判斷模型[15]。其基本結構如圖5所示:

圖5 BP神經網絡基本結構模型
BP神經網絡的計算原理是通過循環不斷減小期望輸出與實際輸出之間的誤差,誤差達到滿足要求的數值后,迭代結束,粒子群優化的BP神經網絡算法運行流程如圖6所示:

圖6 PSO-BP神經網絡算法運行流程
由數量為i的粒子組成的群體對Q維(每個粒子的維數)空間進行搜索,其中單個粒子位置表示為:xi=(xi(1),xi(2),…xi(Q)),每個粒子對應的速度[16]表示為vi=(vi(1),vi(2),…vi(Q))。每個粒子在搜索時要考慮單個搜索歷史最優值和全部粒子的最優值兩個因素。
粒子的速度更新公式[17]:

粒子的位置更新公式[17]:

上述公式中k表示迭代的次數,表示為第i個粒子在第d維空間的速度,為第i個粒子在第d維空間的位置,為第i個粒子第d維的個體最優位置,為粒子群第d維的全局最優位置。ω為慣性權重,是保持原來速度的系數。c1是粒子跟蹤自己歷史最優值的權重系數,代表粒子的自身屬性;c2表示粒子跟蹤整個群體最優值的權重系數,代表粒子對當前整個群體屬性認知。通常情況下c1、c2設定為常數2,本文算例設置c1為1.7,c2為1.8能夠取得較好的解析。ξ和η是[0,1]區間內均勻分布的隨機數。
將PSO算法當中的粒子編碼按照對應關系直接賦值給BP神經網絡的權值和閾值矩陣,以神經網絡的預測結果與實際值之間的誤差平方和作為目標函數,誤差值取得最小時粒子尋優停止。
蝙蝠算法是基于迭代優化技術,從初始化的隨機解中搜尋最優解并對最優解局部產生的新解加強搜索的方法[18]。傳統的BP神經網絡雖然具有較好的規律逼近效能,但容易陷入局部最優而無法得到好的預測效果。蝙蝠算法模擬蝙蝠的回聲定位應用至最優解的確定以實現對BP神經網絡權重和閥值優化,抑制原神經網絡訓練結果局部最優出現,進而得到更能正確識別數據類別的BP神經網絡分類模型。
對于設定的目標函數minf(x),目標變量為X=(x1,x2,…,xd)T的優化問題,首先在空間中擴散分布一組初始解的相關脈沖音量,最大值設為A0,最大脈沖率為R0,搜索脈沖的頻率fi范圍在fmin到fmax之間,脈沖響度的衰減系數為α,搜索頻率的增強系數為γ,設定搜索精度ε以及最大迭代次數。算法運行流程如下:
①設定初始狀態的蝙蝠位置xi,根據目標值的趨近程度尋找當前誤差最小解X*。
②更新蝙蝠的搜索脈沖頻率、速度和位置:

③生成均勻分布隨機數rand∈[0,1],若rand>脈沖發射率ri,對當前最優解進行隨機擾動,新解作越界處理;如果rand<脈沖響度Ai,且f(xi)<f(X*),接受新解并按如下公式對響度和脈沖率和進行更新:

④按適應度值對更新位置和速度進行排序,確定目前的誤差最小值,循環直至滿足設定的最優解條件或者達到最大迭代次數后輸出全局最優值和最優解。
算法運行流程如圖7所示:

圖7 BA-BP神經網絡算法運行流程
脈沖音量的衰減系數α與搜索頻率的增強系數γ對算法得到的結果影響非常大[19],α以及γ的數值可以通過仿真不斷調整,最終目的是有效地平衡算法尋優精度和收斂速度,從而提升算法運行性能與準確程度。
算法當中的編碼參數設定依據BP神經網絡的拓撲結構[20]n-p-q,需編碼的所有粒子總和為輸入層節點數與隱含層節點數的乘積+隱含層節點數+隱含層節點數與輸出層節點數的乘積+輸出層節點數,輸入層的節點個數為EEG信號特征維數n,隱含層節點數p,輸出層節點數q為信號類別數量,即:

以實驗數據Ⅰ為例輸入的維度為10,輸入節點數為10,輸出分類為4,因此輸出層節點數為4,隱含層節點數需大于輸入節點,因此本文設定為12,最終編碼總和為184。
改進方案的簡要設計流程如下:
①使用經典BP神經網絡對經過特征提取的所有MI信號特征矩陣進行分類實驗,按照規則設置訓練集與測試集的比例、大小。在算法運行完成后,保存神經網絡輸入層與隱含層、隱含層與輸出層之間的權值以及每個隱含層的閾值,對保存的權值與閾值按照上述提出的編碼方案進行順序編碼操作,得到權值閾值初始數據的編碼。
②使用PSO優化算法對初始編碼序列進行尋優,按照其算法的尋優準則最終得到一組新的數據編碼,將經過粒子群優化算法優化獲得的權值閾值序列進行反向解碼分別放置到經典BP神經網絡的相應位置中,進而實現對原始神經網絡的權值與閾值的更新。
③同樣使用BA對經典BP網絡原始編碼序列尋優,將得到的新數據編碼反向解碼,經蝙蝠算法優化后的權值閾值序列再放回至原始BP神經網絡相應的位置以實現參數的更新。
對實驗數據I進行包絡特征提取,得到每個導聯的包絡特征向量,提取的特征向量組維數為9×288×10。隨機選取了總特征數據集合中的4(左手、右手、腳、舌頭)×10組數據作為BP神經網絡分類模型的測試集,其余數據全部輸入訓練集當中。經典BP的分類結果為45.63%,經過PSO參數尋優改進的BP神經網絡對左手、右手、腳、舌頭4類的平均分類準確率為88.75%,經過BA優化的BP四分類平均結果為96.25%。
通過數據組Ⅰ的實驗結果,發現BA改進的BP神經網絡分類效果要好于PSO改進的BP神經網絡。為進一步驗證,選取本課題組采集的腦電數據作為實驗數據Ⅱ,同樣經過預處理以及提取相應的包絡特征后,數據大小為10×80×130。將單人80個左右腳MI任務試次分為訓練集和測試集各40試次,每個集合包含左腳20次,右腳20次,10位被試的兩種改進分類模型準確率如表1。

表1 實驗數據Ⅱ準確率結果
數據組Ⅱ的實驗結果表明,經典BP神經網絡對于MI腦電信號的分類準確精度并不理想,而BABP對2種類別的識別準確率基本在85%以上,與PSO-BP的分類效果相比,后者識別準確率還存在一定差距。對PSO-BP與BA-BP兩種改進方法的分類結果進行T檢驗,P(=0.000 000 841)<0.05,說明這兩種分類準確率之間具有明顯的差異。
將兩組實驗數據的平均分類結果進行比較,從圖8可以觀察到兩組數據下經典BP的分類準確率僅有46%左右,經過PSO算法尋優后的經典BP神經網絡分類對數據組Ⅰ的4種類別判別正確率為88.75%,對數據組Ⅱ的2種類別分類準確率為71.75%;BA算法改進下BP分類模型的4分類準確率達到96.25%,數據組Ⅱ分類準確率為89.25%。實驗結果表明經過PSO和BA優化后的BP神經網絡分類能力有較為明顯的提升。

圖8 兩組數據平均分類結果
PSO算法的尋優計算過程一定程度上依賴于輸入數據的網絡結構,因此兩組數據的平均分類略低于BA-BP。BA方法針對BP神經網絡的權重、閾值訓練對于分類結果影響相對明顯,這兩種不同算法改進的BP分類實驗驗證了本文提出的PSO-BP分類模型與BA-BP分類模型運用于求解MI腦電信號分類問題的可行性。
除了識別準確率,兩種優化算法改進的BP分類效率也有一定的差異。圖9表示兩種改進的BP算法在同組數據下得到穩定的目標函數最小誤差的迭代次數,PSO-BP神經網絡模型得到較為穩定的目標值時的次數在約400次后,而BA-BP神經網絡模型在迭代將近200次左右就呈現出對最佳目標值的收斂狀態。經過與PSO算法的比較分析,認為BA算法的小范圍搜索能力強得益于其算法自身結構簡單,參數較少,因此有較快的局部搜索速度。這種使用調諧技術控制蝙蝠種群的動態行為用于平衡調整分類模型的相關參數更為合適,因此在MI腦電信號的訓練過程中能夠在更少的迭代次數后接近目標值,收斂速度較快,能夠取得更優于PSO-BP的分類效果。

圖9 兩種改進的BP算法迭代次數
本文對經典BP神經網絡分別使用粒子群算法和蝙蝠算法進行參數優化,后續為驗證算法的可用性,對BCI競賽數據集與實驗采集數據集分別進行了分類實驗。實驗結果表明,經過改進的BP神經網絡在運動想象腦電信號的分類識別方面得到了明顯提升。驗證了PSO-BP算法和BA-BP算法應用于運動想象腦電信號識別的可行性與高效性,并且BA算法優化后的BP神經網絡模型的分類準確率與迭代效率較PSO-BP方法有明顯提升,分類精度提升了約24%,迭代效率提高了約50%。也說明了智能優化算法的應用可以在一定程度上改善經典分類模型的性能,為腦電信號多分類識別問題的解決提供了一種新途徑。