杜云梅, 黃 帥, 梁會營*
(1. 廣州商學院信息技術(shù)與工程學院, 廣州 510363; 2. 廣州醫(yī)科大學廣州市婦女兒童醫(yī)療中心, 廣州 510623)
腦電圖(EEG)是分析和解釋大腦疾病特征的最有效的醫(yī)學成像工具,有助于醫(yī)生診斷意識水平、睡眠障礙、癲癇、腫瘤和病變等[1-2],因其無創(chuàng)、設備成本低、時間分辨率高和使用簡便等獨特的優(yōu)勢而在探查大腦功能方面得到廣泛的使用[3].
目前,臨床上EEG的檢測仍然依賴于有經(jīng)驗的醫(yī)師視覺觀察多通道腦電圖,進而憑經(jīng)驗來識別其中是否包含異常的腦電波. 此方法枯燥、費時、效率低,且缺乏統(tǒng)一的客觀標準,容易造成誤判和漏判,并且評估者之間的一致性(IRA)較低[4]. 因此,需要研發(fā)自動化的EEG判讀工具. 而已有對EEG進行自動檢測的軟件,錯誤率非常高[4-5].
目前有關(guān)EEG自動診斷和檢測的研究方法主要分為2類:
第一類,進行啟發(fā)式手工特征設計和應用的傳統(tǒng)機器學習方法. 這類方法基于綜合領(lǐng)域知識,對原始信號進行傅立葉變換FT、小波變換WT或希爾伯特變換HT等基變換,從變換分解出來的系數(shù)中提取時間、頻率或能量等方面的特征,最后用SVM、KNN和樸素貝葉斯等傳統(tǒng)機器學習方法對腦電信號進行分類識別. 此類方法過程主觀,計算費時[6].
第二類,應用深度學習進行自動特征檢測、分層特征提取. 這類方法不進行手工方式的特征提取和選擇,而是利用網(wǎng)絡自動地學習特征并進行分類識別. 其中大部分研究采用淺層的網(wǎng)絡結(jié)構(gòu),不能充分提取EEG更高層的特征[7-8];部分研究采用小樣本量數(shù)據(jù)集,深度學習模型的訓練效果有限[2,6,9-10].
為了解決上述問題,本研究首先構(gòu)造一個較大的EEG數(shù)據(jù)集,用于模型訓練與測試;其次建立深度的卷積神經(jīng)網(wǎng)絡,以充分學習EEG信號數(shù)據(jù)的高層特征,從而形成具有較高準確率的EEG自動檢測模型.
頭皮表面記錄的腦電信號一般只有幾十至幾百微伏(μV),需要通過幾百萬倍的放大才能顯現(xiàn),EEG儀器的核心就是放大器,一個放大器構(gòu)成一個通道,放大器之間的連接有2種導聯(lián)方式,參考導聯(lián)反映的是單個記錄點的絕對電位,雙極導聯(lián)記錄的是兩點之間的電位差[11]. 電極的安放位置一般參考國際腦電圖學會建議的10-20系統(tǒng)或美國腦電圖協(xié)會的10%系統(tǒng)(圖1)[12].
本研究采集了多個異構(gòu)的EEG數(shù)據(jù)集[2,12-14],這些數(shù)據(jù)集來自不同機構(gòu),記錄數(shù)據(jù)的設備和標準都有所差異,將它們進行組合來訓練模型,能提高模型的泛化能力,降低過擬合的可能. 由于各個數(shù)據(jù)集的通道數(shù)不同(20~40個),采樣頻率也不同(250~512 Hz),電極的導聯(lián)方式也不同,所以,綜合數(shù)據(jù)的分布以及轉(zhuǎn)換的可能性,本研究通過插值或降采樣將數(shù)據(jù)進行重構(gòu),即把頻率統(tǒng)一為256 Hz,將通道數(shù)與導聯(lián)方式統(tǒng)一映射為22通道雙極導聯(lián)(表1). 具體方法是:首先,從EEG源文件讀取信號數(shù)據(jù)對應的通道名稱(表2);然后,根據(jù)通道名稱所代表的導聯(lián)方式以及各通道名稱在圖1中的電極位置確定通道映射關(guān)系(表3);最后,根據(jù)表3的映射關(guān)系,將32通道參考導聯(lián)數(shù)據(jù)重構(gòu)為22通道雙極導聯(lián)數(shù)據(jù).
圖1 電極名稱和位置[12]
表1 數(shù)據(jù)示例:22通道雙極導聯(lián)
續(xù)表1
注:如果EEG的采樣頻率是256 Hz,那么每秒就有256個采樣點,這里只列出了其中4個采樣點的數(shù)據(jù)作為示例. 表2同.
表2 數(shù)據(jù)示例:32通道參考導聯(lián)
首先,將重構(gòu)得到的二維結(jié)構(gòu)的數(shù)據(jù)經(jīng)過降噪,消除肌肉、眼睛、心臟活動、線路和電極等干擾[3].
然后,將降噪后的數(shù)據(jù)進一步處理為一維時間序列. 對EEG信號的每個時間點ti,把22個通道值疊加取平均作為這個時間點的樣本值Si,計算公式如下:
(1)
其中,j{0,1,2,…,21}表示22個通道的編號,Cj表示雙極導聯(lián)中的通道. 如表1的二維數(shù)據(jù)經(jīng)此步驟轉(zhuǎn)換為表4的一維結(jié)構(gòu).
表4 數(shù)據(jù)示例:二維數(shù)據(jù)轉(zhuǎn)換成一維時間序列
Table 4 The data example:converting two-dimensional data into one-dimensional time series
采樣點t1t2t3t4樣本值-3.50E-061.95E-071.95E-073.02E-07
最后,對一維數(shù)據(jù)進行歸一化,并劃分成長度為2 s的EEG片段,每個片段有512個數(shù)據(jù)點,只包含一種類型(正常/異常)的腦電信號. 為了獲得更多數(shù)據(jù),本研究沒有做精確切分,而是以2 s的時間窗、1 s的滑動步長,沿時間方向平移,截取EEG片段,去除邊界上不足2 s的情況.
全部數(shù)據(jù)集經(jīng)上述劃分共產(chǎn)生130 738個EEG信號片段,每個片段分別標注標簽(正常/異常),信號與標簽同步亂序之后,切分出沒有交集的訓練集(118 716個樣本)和測試集(12 022個樣本).
本研究使用一維卷積神經(jīng)網(wǎng)絡(1D CNN)來完成EEG的特征學習與分類任務. 1D CNN常用于時序數(shù)據(jù)建模,以在模型訓練過程中發(fā)現(xiàn)時序數(shù)據(jù)的局部特征;可有效地從整體數(shù)據(jù)集中較短的(固定長度)片段中獲得感興趣特征,且該特性在該數(shù)據(jù)片段中的位置不具有高度相關(guān)性[15].
深度學習網(wǎng)絡的深度對最后的分類和識別的效果有著很大的影響,本研究搭建了31層的深度卷積神經(jīng)網(wǎng)絡. 由于存在梯度消失和梯度爆炸的問題[16],深的網(wǎng)絡很難訓練,因此,本研究采用了殘差網(wǎng)絡架構(gòu)中的快捷連接[16],以使深層網(wǎng)絡更容易優(yōu)化訓練. 模型中基本殘差模塊(Unit)的結(jié)構(gòu)如圖2所示.
圖2 殘差模塊的結(jié)構(gòu)
Unit主路徑上包含2層一維卷積操作Covn1D,卷積之前都安排了批處理歸一化BN、校正線性激活ReLU和衰減Dropout. 圖2中MP表示“最大池化操作”,ZP代表“進行零擴展”.
以基本模塊Unit為單位搭建的整體網(wǎng)絡架構(gòu)如圖3所示. 為了匹配數(shù)據(jù)尺寸與模型深度,本模型沒有在每個殘差塊都進行池化操作,而是間隔進行,含MP的Unit塊代表需進行最大池化操作(MaxPool);在過濾器個數(shù)發(fā)生變化時,快捷連接上要進行零擴展以保持張量形狀的一致,含ZP的Unit塊代表需進行零擴展(Lambda). 過濾器的長度保持不變,過濾器個數(shù)從32個開始,每4個Unit殘差塊翻一倍,變化過程如括號中的數(shù)字所示. 512維的輸入數(shù)據(jù)經(jīng)過7次池化(MP)后變成4維,展平后經(jīng)全連接層應用SoftMax激活,最后給出每個EEG片段的正?;虍惓7诸惤Y(jié)果. 整個網(wǎng)絡包含1個獨立卷積層和15個殘差塊Unit,總共有31個卷積層.
圖3 整體網(wǎng)絡結(jié)構(gòu)
網(wǎng)絡模型采用Keras深度學習框架實現(xiàn),并從頭開始訓練. 經(jīng)過反復試探,模型最終使用“categori-cal_crossentropy”目標函數(shù)和“Adam”優(yōu)化器,學習率從0.001開始,并在驗證損失停止改善時將學習率降低10倍,Batch-size設為256,Epoch設為200.
用數(shù)據(jù)處理得到的訓練集對本研究得到的一維深度CNN模型進行訓練,用測試集對訓練結(jié)果進行評估,以找到最優(yōu)的預測模型.
為了找到合適的過濾器的長度,本研究開展了幾個對比實驗:保持訓練集、測試集、模型結(jié)構(gòu)(圖3)與其他參數(shù)不變,分別用不同長度(f=3,8,10,16)的過濾器進行實驗,測試結(jié)果顯示f=10的性能相對較好(表5).
表5 不同過濾器長度下的測試正確率
Table 5 The test accuracy under different filter lengths %
過濾器長度f=3f=8f=10f=16測試正確率93.6994.1494.3393.83
訓練過程中構(gòu)造了2個評價指標RMSE和AUC:
(1)RMSE用于衡量預測值ypred與真值ytrue之間的偏差:
(2)
(2)AUC為ROC曲線所覆蓋的區(qū)域面積,該值越大,表示分類器分類效果越好. 采用回調(diào)函數(shù)實現(xiàn),每個Epoch計算一次.
模型訓練中AUC與RMSE的變化過程如圖4所示. 訓練30代之后驗證集上的AUC穩(wěn)定在0.999 3左右,RMSE穩(wěn)定在0.056 9左右.
圖4 訓練過程中RMSE和AUC隨Epoch的變化
Figure 4 The changes of RMSE and AUC with Epoch during training
用上述訓練好的模型在獨立測試集上進行預測,由預測結(jié)果的混淆矩陣(表6)可以看出:96%的異常腦電圖信號被正確分類為異常,93%的正常腦電圖信號被正確分類為正常.
表6 測試集上的混淆矩陣
本文的目標是異常檢測,要在保證精確率的基礎上提升模型召回率. 由模型主要的分類評價指標(表7)可知:異常腦電圖的召回率高于精確率,即查全率高于查準率,測試結(jié)果與本文期望一致.
表7 每個類別主要分類指標的文本報告
以上測試結(jié)果表明在EEG信號通道均值上使用1D CNN模型的分類性能比較好,究其原因,主要是以下3個方面的設計:
第一,多個異構(gòu)數(shù)據(jù)源的重構(gòu)及預處理,增大了訓練與測試數(shù)據(jù)量,不僅能提高訓練與分類效果,還能提高模型的泛化能力與魯棒性,經(jīng)過訓練的模型在完全獨立的測試集上表現(xiàn)依然較好.
第二,取通道均值的數(shù)據(jù)處理方法,因為大腦神經(jīng)元異常放電,通常會導致相鄰的頭皮檢測點上都有異常的電位信號,通過取平均值,一定程度上強化了異常放電的程度,有些相關(guān)研究[4-5]只是取一個通道上的值進行學習和分類,就失去了相鄰檢查點的同步變化信息.
第三,使用一維深度卷積神經(jīng)網(wǎng)絡來進行自動學習化特征,學習到的主要是信號在時域上的動態(tài)變化,即頭皮檢測點上電位隨時間的變化特征,從而弱化了不同EEG基線之間的差異. 腦電信號的個體差異比較大,特別是兒童腦電圖和成人腦電圖有很大的區(qū)別,本研究采用的數(shù)據(jù)集中包含將近三分之一的兒童EEG和三分之二的成人EEG,因為模型弱化了基線差異,所以實驗中沒有對年齡段進行區(qū)分,僅使用時域方面的特征進行正常異常檢測已能取得較好的分類正確率.
為了進一步驗證神經(jīng)網(wǎng)絡的深度對模型性能的影響,本文從2個方面進行了研究:
首先,與已有研究成果進行對比. 選取了2個同樣采用1D CNN對EEG進行分類的研究[6,17]與本文的31層CNN模型(圖2,圖3)進行對比. 從模型準確率來看,本文的31層網(wǎng)絡的準確率高于文獻[17]的5層模型和文獻[6]的13層模型(表8).
其次,設計對照實驗進行驗證. 上述3個研究所使用的數(shù)據(jù)集、處理方法和參數(shù)都不相同,不能充分說明在EEG分類應用背景下深層模型與淺層模型的性能優(yōu)劣,為了進一步地進行驗證,本研究另外設計了不同深度的CNN模型(圖5),與本文的31層CNN模型(圖2、圖3)進行對照. 圖5A是5層卷積模型,卷積步長為2,“×4”表示循環(huán)4次;圖5B是15層卷積模型,卷積步長為1,每兩層卷積增加1個池化層;圖中“@”后的數(shù)字表示每次卷積操作的過濾器個數(shù). 對照模型的層次不是很深,所以沒有引入快捷連接. 用相同的數(shù)據(jù)集、卷積核和目標函數(shù)等參數(shù)進行模型訓練,并用相同的測試集進行模型驗證. 另外,也設計了比31層更深的模型進行實驗,發(fā)現(xiàn)過擬合的現(xiàn)象比較明顯,所以沒有將其引入對比實驗.
圖5 對照實驗的模型結(jié)構(gòu)
由實驗結(jié)果(表8)可知:模型的深度與最終分類正確率存在正相關(guān)的關(guān)系,隨著深度的增加,準確率有所提升.
表8 5個模型的分類正確率
本研究對多源異構(gòu)的腦電數(shù)據(jù)進行重構(gòu)和預處理,建立了31層一維卷積神經(jīng)網(wǎng)絡模型,自動提取特征進行腦電信號異常檢測. 分析結(jié)果表明:采用較深的卷積神經(jīng)網(wǎng)絡能取得較好的分類準確率.
經(jīng)過重構(gòu)與預處理的EEG數(shù)據(jù),在31層 1D CNN模型上進行訓練和測試,結(jié)果達到了94.33%的分類正確率和0.999 3的AUC. 可見只從時域上用一維深度CNN能對腦電信號進行高效的分類識別,可用于臨床輔助診療. 后續(xù)研究可考慮將時域特征與EEG通道空間關(guān)系特征相結(jié)合,以進一步提高對腦電信號進行自動檢測的正確率.