趙 偉
( 集美大學(xué) 誠(chéng)毅學(xué)院, 福建 廈門(mén) 361021 )
癲癇是由腦部神經(jīng)元突發(fā)性異常放電所致短暫的大腦功能失調(diào)的一種慢性神經(jīng)系統(tǒng)疾病[1]。腦電圖(electroencephalography, EEG)信號(hào)是由大腦神經(jīng)元自發(fā)性電位活動(dòng)產(chǎn)生的, 蘊(yùn)含著大量的生理和病理信息, 是臨床上診斷和治療癲癇的重要依據(jù)[2]。 傳統(tǒng)的癲癇診斷主要依靠經(jīng)驗(yàn)豐富的醫(yī)師通過(guò)肉眼判讀EEG[3]。 然而EEG 數(shù)據(jù)量巨大, 該方法耗時(shí)費(fèi)勁。 因此研究基于EEG的癲癇自動(dòng)分析方法具有重要的臨床意義。
近年來(lái), 國(guó)內(nèi)外科研人員在癲癇自動(dòng)識(shí)別技術(shù)方面做了大量的研究工作。 這些研究工作可大致分為基于傳統(tǒng)的識(shí)別方法和基于深度學(xué)習(xí)的方法。 基于傳統(tǒng)的識(shí)別方法首先采用信號(hào)分析技術(shù)來(lái)提取癲癇EEG 的特征, 再結(jié)合人工經(jīng)驗(yàn)進(jìn)行特征選擇, 最后訓(xùn)練機(jī)器學(xué)習(xí)的分類(lèi)器實(shí)現(xiàn)癲癇自動(dòng)識(shí)別[4-6]。 深度學(xué)習(xí)可以自主學(xué)習(xí)數(shù)據(jù)的內(nèi)在特征, 并根據(jù)分類(lèi)任務(wù)自主選擇特征。 2018年Acharya 等首次將卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)模型應(yīng)用于癲癇EEG 信號(hào)識(shí)別, 其識(shí)別正常、 癲癇發(fā)作間期和癲癇發(fā)作期EEG 信號(hào)的準(zhǔn)確率達(dá)到了88.7%[7]。 Rubén 等將傅里葉變換(Fourier transform,F(xiàn)T)與CNN 相結(jié)合, 研究了多個(gè)分類(lèi)任務(wù)下的癲癇EEG 信號(hào)識(shí)別問(wèn)題[8]。 Abbasi 等提出了一種基于長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory network, LSTM)的癲癇EEG 信號(hào)自動(dòng)識(shí)別模型, 其識(shí)別正常和癲癇發(fā)作期EEG 的準(zhǔn)確率達(dá)到了99.2%[9]。CNN 具有良好的局部特征提取能力, LSTM 具有較強(qiáng)的長(zhǎng)期依賴學(xué)習(xí)能力, 因此筆者提出了一種結(jié)合CNN 與LSTM 的新模型(CNN-LSTM 模型)用于癲癇EEG 信號(hào)自動(dòng)識(shí)別。
CNN-LSTM 模型結(jié)構(gòu)如圖1 所示。 該模型可劃分為特征提取和分類(lèi)識(shí)別兩個(gè)階段。 特征提取階段采用CNN 與LSTM 相結(jié)合的網(wǎng)絡(luò)結(jié)構(gòu), 其中CNN 部分包含3 個(gè)卷積塊, 每個(gè)卷積塊包含5層結(jié)構(gòu), 依次為卷積層、 批歸一化(batch normalization, BN)層、 ReLU 激活層、 丟棄(Dropout)層和池化(Pooling)層; LSTM 部分由3 層LSTM 堆疊而成。 分類(lèi)器采用3 個(gè)全連接(fully connected, FC)塊, 并結(jié)合Softmax 激活函數(shù)來(lái)實(shí)現(xiàn)各種分類(lèi)任務(wù)下的癲癇EEG 信號(hào)自動(dòng)識(shí)別。
圖1 CNN-LSTM 模型結(jié)構(gòu)圖
CNN 是一種包含卷積計(jì)算且具有局部連接和權(quán)值共享特點(diǎn)的前饋神經(jīng)網(wǎng)絡(luò)。 它能自主學(xué)習(xí)數(shù)據(jù)的內(nèi)在特征, 并且取得較高的識(shí)別率, 在生物醫(yī)學(xué)信號(hào)處理領(lǐng)域已有較多應(yīng)用[10-11]。 CNNLSTM 模型中, 卷積塊依次包含如下5 層結(jié)構(gòu)。
(1)卷積層。 卷積層采用若干個(gè)卷積核對(duì)輸入的EEG 序列進(jìn)行特征提取。 卷積操作將卷積核與EEG 序列中對(duì)應(yīng)元素相乘, 并不斷移動(dòng)卷積核繼續(xù)進(jìn)行計(jì)算。 采用誤差反向傳播算法可學(xué)習(xí)到卷積核的參數(shù)。 一維卷積操作可表示為:
其中,x為EEG 序列,w為卷積核,a為卷積核的大小,s(t) 為t時(shí)刻的卷積運(yùn)算結(jié)果。
(2)BN 層。 在CNN 中添加BN 操作可減少內(nèi)部協(xié)變量轉(zhuǎn)移, 達(dá)到加快訓(xùn)練速度和提高模型泛化能力的目的。 BN 操作主要計(jì)算公式如下:
其中,xl為第l個(gè)BN層的輸入向量,μ和σ2為其均值和方差,zl為標(biāo)準(zhǔn)化后的向量,ε為一個(gè)小數(shù)值的常數(shù),yl為第l個(gè)BN 層的輸出向量,γ和β分別為可學(xué)習(xí)的縮放系數(shù)和偏移量。
(3)ReLU 激活層。 為了提高網(wǎng)絡(luò)的表達(dá)能力, 通常在每個(gè)BN 層之后應(yīng)用一個(gè)激活函數(shù)。ReLU 函數(shù)是CNN 中比較常用的一種激活函數(shù),它可以將非線性和稀疏性應(yīng)用到網(wǎng)絡(luò)結(jié)構(gòu)中, 并防止梯度消失, 其表達(dá)式如下:
(4)Dropout 層。 為了進(jìn)一步提高模型的泛化能力以適應(yīng)各種不同的分類(lèi)任務(wù), 在卷積塊中添加Dropout 層。 Dropout 操作在網(wǎng)絡(luò)訓(xùn)練過(guò)程中, 以一定的概率將網(wǎng)絡(luò)中的神經(jīng)元“丟棄”;在測(cè)試過(guò)程中, 則使用所有的神經(jīng)元。 其主要計(jì)算公式如下:
其中,B表示伯努利分布函數(shù),為第l層第j個(gè)神經(jīng)元以概率p生成的伯努利隨機(jī)變量,yl為第l層Dropout 的輸入向量,為訓(xùn)練過(guò)程中使用的神經(jīng)元。
(5) 池化層。 池化技術(shù)是對(duì)數(shù)據(jù)進(jìn)行降維,用于保留主要特征和減少網(wǎng)絡(luò)的訓(xùn)練參數(shù)量, 同時(shí)可以減小過(guò)擬合。 CNN-LSTM 模型采用最大池化(max pooling) 進(jìn)行下采樣。 它只取局部接受域中值最大的點(diǎn), 其公式如下:
其中,表示第l層第i通道第t個(gè)神經(jīng)元的值;S表示池化核的尺寸;表示第l層第i個(gè)通道第j個(gè)神經(jīng)元的輸出值。
LSTM 是Hochreiter 和Schmidhuber 針對(duì)傳統(tǒng)RNN 網(wǎng)絡(luò)模型在處理長(zhǎng)序列數(shù)據(jù)時(shí)出現(xiàn)的梯度消失問(wèn)題而提出的一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)[12]。LSTM 已廣泛應(yīng)用于癲癇識(shí)別[13]。 LSTM 引入門(mén)機(jī)制來(lái)控制特征的流通和損失。 LSTM 單元核心由遺忘門(mén)ft、 輸入門(mén)it和輸出門(mén)ot構(gòu)成, 其原理圖如圖2 所示。 首先, 遺忘門(mén)用于控制輸入xt和上一個(gè)隱藏狀態(tài)ht-1被遺忘的程度; 接著, 輸入門(mén)用于控制何時(shí)將數(shù)據(jù)讀入記憶元Ct; 最后, 輸出門(mén)控制當(dāng)前記憶元的信息輸出。 具體表達(dá)式如下:
圖2 LSTM 原理圖
其中,σ為sigmoid 函數(shù),W為權(quán)重參數(shù),b為偏置參數(shù),為候選記憶元, ☉為哈達(dá)瑪積運(yùn)算符,ht為t時(shí)刻的隱藏狀態(tài)。
CNN 通常采用具有Softmax 激活函數(shù)的全連接神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)分類(lèi)。 CNN-LSTM 模型的分類(lèi)器包含3 個(gè)FC 塊。 其中, 前兩個(gè)FC 塊包含3層結(jié)構(gòu), 依次為FC 層、 ReLU 激活層和Dropout層; 最后一個(gè)FC 塊包含F(xiàn)C 層和Softmax 激活層。 Softmax 激活函數(shù)用于輸出EEG 信號(hào)屬于各個(gè)類(lèi)別的概率, 其表達(dá)式如下:
其中,zi為Softmax 激活前的FC 層的輸出,i表示類(lèi)別序號(hào),N為類(lèi)別總數(shù)。
本研究的實(shí)驗(yàn)數(shù)據(jù)來(lái)自德國(guó)波恩大學(xué)癲癇研究室的癲癇數(shù)據(jù)庫(kù)[14]。 該數(shù)據(jù)庫(kù)采集自5 名健康志愿者和5 名癲癇患者。 該數(shù)據(jù)庫(kù)已被廣泛應(yīng)用于癲癇EEG 識(shí)別研究。 數(shù)據(jù)庫(kù)由5 種類(lèi)別的EEG 組成, 分別記為A、 B、 C、 D、 E。 其中,A 和B 分別為健康志愿者睜眼和閉眼時(shí)的EEG;C 和D 分別為癲癇患者發(fā)作間期大腦病灶對(duì)側(cè)區(qū)域和致癇區(qū)內(nèi)的EEG; E 為癲癇患者發(fā)作期的EEG。 每種類(lèi)別數(shù)據(jù)集包含100 個(gè)信號(hào)片段, 每個(gè)信號(hào)片段記錄23.6s 的EEG, 采樣率為173.61Hz。為提高數(shù)據(jù)量將每個(gè)信號(hào)片段不重疊地切割為23份, 每份樣本包含178 個(gè)數(shù)據(jù)點(diǎn), 每種類(lèi)別包含2300個(gè)樣本。 不同類(lèi)別的EEG 參見(jiàn)圖3。
圖3 不同類(lèi)別的EEG
為了評(píng)估CNN-LSTM 模型的性能, 實(shí)驗(yàn)采用十折交叉驗(yàn)證, 結(jié)果取其平均值。 模型性能的評(píng)價(jià)指標(biāo)選用準(zhǔn)確率(accuracy,Acc)、 陽(yáng)性預(yù)測(cè)值(positive predictive value,PPV)和靈敏度(sensitivity,Sen), 其公式定義如下:
其中TP表示預(yù)測(cè)為正類(lèi)的正樣本數(shù),TN表示預(yù)測(cè)為負(fù)類(lèi)的負(fù)樣本數(shù),F(xiàn)P表示預(yù)測(cè)為正類(lèi)的負(fù)樣本數(shù),F(xiàn)N表示預(yù)測(cè)為負(fù)類(lèi)的正樣本數(shù)。
實(shí)驗(yàn)在Windows10 操作系統(tǒng)下使用開(kāi)源深度學(xué)習(xí)框架PyTorch 進(jìn)行。 模型采用Adam 優(yōu)化器,其學(xué)習(xí)率、β1和β2分別設(shè)置為0.0005、 0.900 和0.999; 損失函數(shù)選用交叉熵; 丟棄概率設(shè)置為20%; 批次大小設(shè)置為128, 總共對(duì)模型進(jìn)行300 次迭代訓(xùn)練。
圖1 中, 所用卷積層均采用大小為7 的一維卷積核, 步長(zhǎng)為1; 所有池化層采用大小為2、步長(zhǎng)為2、 填充為1 的最大池化操作; 卷積塊1、卷積塊2 和卷積塊3 的通道數(shù)分別設(shè)置為40、80 和150。 LSTM 層數(shù)為3, 每層包含300 個(gè)隱藏單元。 前2 個(gè)FC 層的神經(jīng)元個(gè)數(shù)為1 024, 最后一個(gè)FC 層的神經(jīng)元個(gè)數(shù)為分類(lèi)任務(wù)的類(lèi)別總數(shù)。
采用波恩大學(xué)癲癇數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行了二分類(lèi)和三分類(lèi)實(shí)驗(yàn)。 二分類(lèi)用于識(shí)別癲癇是否發(fā)作; 三分類(lèi)用于識(shí)別處于正常、 癲癇發(fā)作間期或癲癇發(fā)作期的EEG 信號(hào)。 實(shí)驗(yàn)結(jié)果如表1 所示??梢钥闯觯?CNN-LSTM 模型在二分類(lèi)任務(wù)A\ E、B \ E 和AB \ E 中, 準(zhǔn)確率分別為99.9%、99.7%和99.9%; 在三分類(lèi)任務(wù)A \ D \ E 和B\ D\ E中準(zhǔn)確率分別達(dá)到97.4%和98.8%。 5個(gè)分類(lèi)任務(wù)的平均準(zhǔn)確率、 陽(yáng)性預(yù)測(cè)值和靈敏度分別為99.1%、 99.2%和99.0%。
表1 CNN-LSTM 模型性能表 %
為進(jìn)一步分析CNN-LSTM 模型的性能, 將CNN-LSTM 模型的識(shí)別準(zhǔn)確率與使用同一數(shù)據(jù)庫(kù)測(cè)試的CNN 模型、 LSTM 模型和CNN+LSTM 混合模型的識(shí)別準(zhǔn)確率進(jìn)行對(duì)比, 結(jié)果如表2 所示。 分析表2 中數(shù)據(jù)可知, 在大部分的癲癇EEG 信號(hào)識(shí)別任務(wù)中, CNN-LSTM 模型的識(shí)別準(zhǔn)確率優(yōu)于其他模型。
表2 CNN-LSTM 模型與現(xiàn)有模型的性能對(duì)比表
本文提出了一種基于CNN-LSTM 模型的癲癇EEG 信號(hào)自動(dòng)識(shí)別方法。 CNN-LSTM 模型充分利用了CNN 的局部特征學(xué)習(xí)能力和LSTM 的長(zhǎng)期依賴學(xué)習(xí)能力。 采用德國(guó)波恩大學(xué)癲癇研究室的癲癇數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行多個(gè)分類(lèi)任務(wù)實(shí)驗(yàn), CNN-LSTM 模型平均準(zhǔn)確率達(dá)到99.1%。 實(shí)驗(yàn)結(jié)果表明本文提出的方法在大部分的癲癇識(shí)別任務(wù)中表現(xiàn)較佳, 具有一定的臨床應(yīng)用潛力。