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