徐 晴,葛 成,蔡 標,陸 翼,常 珊
(江蘇理工學院電氣信息工程學院生物信息與醫(yī)藥工程研究所,常州 213001)
癲癇是一種慢性非傳染性的腦部疾病,是全球最常見的神經系統(tǒng)疾病之一。據(jù)世界衛(wèi)生組織報道,全球約超過5 000 萬人患有癲癇,在中國就有高達900 多萬的癲癇患者,而且日益年輕化[1]。癲癇發(fā)作可以從短暫的注意力喪失以及肌肉抽搐發(fā)展到嚴重且長時間的抽搐,癲癇發(fā)作的頻率也可能從一年一次發(fā)作發(fā)展為一天多次發(fā)作,這對癲癇預測造成了非常大的困難。而且由于癲癇發(fā)病的不確定性、突發(fā)性、反復性等,通常會導致患者對身體失去控制以及意識喪失,造成如摔倒、骨折、溺水或車禍等傷害[2]。腦電(Electroencephalographic,EEG)信號可以反映大腦神經元放電活動,具有較高的時間分辨率以及非侵入性等優(yōu)點,廣泛應用于監(jiān)測癲癇、帕金森、睡眠障礙、阿爾茨海默癥、情緒狀態(tài)以及認知負荷等[3-5]。由于在癲癇發(fā)作期的腦電信號比正常腦電信號更混亂,會呈現(xiàn)出快速劇烈的變化,出現(xiàn)尖波、棘波、棘慢綜合波等[6],這與非發(fā)作期時的信號相比差異較大,因此通過分析腦電信號可以實現(xiàn)癲癇發(fā)作檢測。
癲癇發(fā)作檢測在本質上是屬于腦電信號的二分類或多分類問題,通過對每一時刻的信號判斷其所屬狀態(tài)來實現(xiàn)發(fā)作檢測。癲癇腦電信號的分類研究主要由特征提取和分類兩部分組成,常用的特征提取方法主要有自回歸(Autoregressive,AR)模型、共空間模式(Common spatial pattern,CSP)、小波變換(Wavelet transform,WT)、功率譜密度(Power spectral density,PSD)估計、非線性動力學等[7]。迄今為止,在很多癲癇腦電信號的特征提取中應用了這些方法。Nassim 等[8]利用自回歸系數(shù)對EEG 信號進行分解,將提取特征參數(shù)通過多層感知機神經網絡進行分類,獲得了97.76%的最高準確率;Lu 等[9]選擇樣本熵和分形錐數(shù)兩個指標作為特征,并使用支持向量機對癲癇腦電信號進行自動分類,準確率達到了89.8%。劉倩倩等[10]使用多變量符號轉移熵對癲癇腦電信號進行研究分析,該實驗通過將原始信號符號化后進行數(shù)值分析,并對導聯(lián)信號、信號長度的選取以及穩(wěn)健性進行分析,結果表明該方法可以有效區(qū)分正常人與癲癇病人的腦電信號。劉偉楠等[11]則使用不同波段的絕對功率譜、相對功率譜和功率譜比值組成混合特征對睡眠中的癲癇發(fā)作進行預測。上述方法需要人工設計和提取信號特征再結合機器學習分類器進行分類,會存在特征提取不充分、適應性不強及準確率不高等問題。
與傳統(tǒng)方法相比,深度學習不需要特征處理,可以學習不同的信號特征,提高分類準確性。2018年,Rajendra 等[6]首次使用了1 個13 層的深度卷積神經網絡來檢測正常、發(fā)作前期和發(fā)作期的3 種類別,該模型的準確性、特異性和靈敏度分別為88.67%、90.00%和95.00%。George 等[12]將一維腦電數(shù)據(jù)轉換為二維腦電圖像,使用卷積神經網絡的子類ResNET-50 模型將波士頓兒童醫(yī)院的頭皮腦電數(shù)據(jù)分為發(fā)作期、非發(fā)作期和發(fā)作前期3 類,最終該模型達到了94.98%的準確率。程偉等[13]通過深度密集卷積網絡實現(xiàn)癲癇腦電信號的二分類,識別的準確率、精確度、靈敏度和和特異性分別達到了96.94%、97.46%、87.18%和99.42%??裸懙龋?4]提出一種1DCNN 算法與XGBoost 算法相結合的單通道癲癇腦電分類模型,利用一維卷積模型自動提取特征,再利用XGBoost 算法實現(xiàn)分類,最終在波恩大學癲癇腦電數(shù)據(jù)集上得到了98.83%的分類準確率。除此之外,由于腦電信號是一種時間序列信號,鑒于循環(huán)神經網絡在這方面的成功應用,Thara 等[15]使用BiLSTM 模型對德國伯恩大學數(shù)據(jù)集實現(xiàn)癲癇發(fā)作與非發(fā)作的二分類。Kishori 等[16]分別提出了單向和雙向的3 層LSTM 網絡,用于檢測癲癇發(fā)作,結果雙向LSTM 網絡模型更優(yōu)。
上述研究成果表明,基于深度學習的癲癇腦電分類與傳統(tǒng)方法相比,準確率有所提高。但需要大量的網絡層和不同深度學習算法的組合,增加了檢測系統(tǒng)的復雜性。同時根據(jù)文獻[12],除了對一維腦電數(shù)據(jù)進行處理,還可以將一維腦電數(shù)據(jù)轉換為二維腦電圖像進行癲癇與非癲癇的分類。目前關于圖像分類的深度學習算法中,傳統(tǒng)的卷積神經網絡通過單獨調整輸入網絡的深度、寬度及圖像分辨率來進行擴展,而EfficientNetV2 模型使用1 個復合系數(shù)從這3 個維度擴展網絡[17],所以EfficientNetV2 模型總體上顯著優(yōu)于其他網絡。為進一步提高癲癇腦電分類的準確率,本文根據(jù)2 種不同的腦電信號數(shù)據(jù)類型,使用BiLSTM、DenseNet 和EfficientNetV2 三種模型進行分類,并進行比較分析。同時采用了梯度加權類激活映射(Gradient-weighted class activation mapping,Grad-CAM)方法對分類結果進行可視化分析。
實驗數(shù)據(jù)來自德國伯恩大學癲癇數(shù)據(jù)集的預處理版本。原始的數(shù)據(jù)集是由A~E 五個不同子集組成,每個子集中有100 個同類型的文件,每個文件包含了4 097 個腦電時間序列,共計23.6 s 的大腦活動,采樣頻率為173.61 Hz。其中,子集A 和B 是無癲癇疾病的正常人分別在睜眼和閉眼狀態(tài)下采集的腦電信號;子集C 是癲癇患者在發(fā)作間期的病灶對側區(qū)域采集的腦電信號;子集D 是癲癇患者在發(fā)作間期對病灶區(qū)采集的信號;子集E 是在發(fā)作期的腦電信號[18]。由于本文是對癲癇腦電信號進行二分類,發(fā)作期的數(shù)據(jù)集僅有子集E,數(shù)據(jù)量較少,所以選取該數(shù)據(jù)集的預處理版本。
預處理版本是對原始腦電數(shù)據(jù)進行預處理和重構。數(shù)據(jù)集的預處理主要是使用0.53~40 Hz 的帶通濾波器進行濾波操作,以及使用視覺檢測技術去除偽跡干擾,兩步操作已由德國伯恩大學完成[13]。數(shù)據(jù)重構是指原始數(shù)據(jù)集的4 097 個時間序列分為23 個數(shù)據(jù)塊并隨機排列,每個數(shù)據(jù)塊包含178 個信號序列,時間長度共計1 s。因此,原始數(shù)據(jù)集被拆分為11 500 條數(shù)據(jù),每條數(shù)據(jù)由178 個信號序列組成,最后一列數(shù)據(jù)標簽為{1,2,3,4,5}。其中標簽為1 的是癲癇發(fā)作期的數(shù)據(jù),標簽2~5 是癲癇未發(fā)作狀態(tài)的數(shù)據(jù)。
本文采取2 種數(shù)據(jù)類型進行處理,即一維時間序列和二維圖像。在二維圖像中,由于調整了電壓值范圍,2 個狀態(tài)的波形差異增大。圖1 是癲癇未發(fā)作狀態(tài)時的波形,其中圖1(a)是典型波形,整體平緩,波動幅度??;圖1(b)是非典型波形,在整體平緩無波動的情況下,有一波峰的存在,與圖1(a)有較大差異。圖2 是癲癇發(fā)作狀態(tài)時的波形,其中圖2(a)波動幅度大,無明顯規(guī)律,是典型的癲癇發(fā)作狀態(tài)下的波形;相反,圖2(b)則呈現(xiàn)小幅波動。可以看出,在調整了電壓值范圍的條件下,仍然存在2 種狀態(tài)波形差異較小的圖像,如圖1(a)和圖2(b),肉眼無法正確判斷,容易造成誤判,所以使用二維圖像做分類處理仍然有意義。為了保持數(shù)據(jù)平衡,分別從標簽為2~5 的數(shù)據(jù)中隨機抽取2 300 條作為癲癇未發(fā)作的數(shù)據(jù),將這些數(shù)據(jù)標簽統(tǒng)一設置為0,與標簽為1 的數(shù)據(jù)重組為4 600 條數(shù)據(jù),因此癲癇發(fā)作與未發(fā)作的數(shù)據(jù)比例為1∶1。同時,將重組的數(shù)據(jù)集按照8∶1∶1 的比例隨機劃分為訓練集、驗證集以及測試集。
圖1 癲癇未發(fā)作狀態(tài)Fig.1 State of non-epileptic seizure
圖2 癲癇發(fā)作狀態(tài)Fig.2 State of epileptic seizure
(1)一維時間序列的處理模型
長短期記憶(Long short term memory,LSTM)網絡模型改善了循環(huán)神經網絡(Recurrent neural network,RNN)梯度消失和爆炸的問題,更適合處理長時序序列問題。BiLSTM 模型由前向LSTM 和后向LSTM 組成,可以從兩個方向更好地處理癲癇腦電數(shù)據(jù)信息。由文獻[15-16]可知,雙向長短時記憶網絡在處理腦電序列上更具優(yōu)勢,所以本文選用BiLSTM 模型處理一維序列信號,算法流程如圖3 所示。本文BiLSTM 模型的輸入首先通過1 個ReLU 激活的線性層;然后經過1 個雙向循環(huán)層,將循環(huán)單元指定為LSTM 單元,共有128 個;再經過2 個線性層,每個線性層前都有Dropout 和BN 層;最后使用Softmax 作為激活函數(shù),實現(xiàn)癲癇發(fā)作與未發(fā)作的二分類。
圖3 基于BiLSTM 算法的流程圖Fig.3 Workflow based on BiLSTM algorithm
(2)二維腦電圖像的處理模型
針對癲癇腦電的二維圖像,使用EfficientNetV2 模型,同時將DenseNet作為實驗對照組,算法流程如圖4 所示。EfficientNetV2 網絡模型在EfficientNetV1 的基礎上進行了改進,在訓練速度和參數(shù)數(shù)量上進行了優(yōu)化,同時提出了改進后的漸進學習方法會根據(jù)訓練圖像的尺寸動態(tài)調整正則方法。EfficientNetV2 模型由卷積、Fused-MBConv 和MBConv 模塊組成。二維腦電圖像首先通過1 個3×3 的卷積層提取特征值;之后再分別通過Fused-MBConv 和MBConv 模塊,其中卷積核k的大小統(tǒng)一設置為3×3;最終通過1 個1×1 的卷積層、池化層以及全連接層實現(xiàn)二分類。DenseNet 在深度殘差網絡的基礎上采用密集連接機制,互相連接所有的層,每層都會與前面所有層連接在一起實現(xiàn)特征重用,并作為下一層的輸入。在圖4 的DenseNet 網絡結構中,除第1 個Conv7×7 外,每一個Conv 前都有BN 和ReLU 層,其中Conv1×1、Conv3×3 模塊按照左側數(shù)字設置層數(shù),每一層均采用密集連接機制;最終經由平均池化層、全連接層實現(xiàn)線性分類并輸出。
圖4 EfficientNetV2 和DenseNet 算法流程圖Fig.4 Workflow of EfficientNetV2 algorithm and DenseNet algorithm
對于訓練的深度學習算法,它是如何根據(jù)圖像進行分類往往是未知的,所以深度學習算法被很多人認為是個黑匣子,缺乏可解釋性。而Grad-CAM[19]是為卷積神經網絡模型的視覺解釋而開發(fā)的,用于可視化模型判斷的基礎。通過Grad-CAM 生成一個粗略的定位圖,對應分類類別,突出顯示網絡模型關注的重要區(qū)域。而且對于圖像分類,可視化不僅可以捕捉到重要區(qū)域,還可以對看似不合理的分類有合理的解釋。Grad-CAM 是在不改變原網絡結構的情況下,實現(xiàn)對不同類別的特征層加權求和后通過激活函數(shù)計算,利用梯度全局平均來計算權重,有
式中:A代表最后一個卷積層輸出的特征層;k為特征層A中第k個通道;c代表所分類的類別;Ak代表特征層A中通道k的數(shù)據(jù);代表針對Ak的權重,其計算公式為
式中:yc代表未經Softmax 激活的針對類別c預測的分數(shù);代表特征層A在通道k中坐標為ij處的數(shù)據(jù);Z為特征層的寬度×高度。
為了便于比較,采用準確性(Accuracy,Acc)、敏感性(Sensitive,Sens)、特異性(Specificity,Spec)和精確率(Precision,Prec)作為評價指標,定義為
式中:TP 為真陽性;TN 為真陰性;FP 為假陽性;FN 為假陰性。同時,采用ROC 曲線和AUC 來評估模型性能:ROC 曲線通過真陽率與假陽率兩項指標來評估分類模型的性能,AUC 則是ROC 曲線下的面積,越接近1 表明模型越好。
本文使用了3 種模型處理兩種類型的腦電數(shù)據(jù):一維序列使用BiLSTM 模型,二維腦電圖像使用 DenseNet 和 EfficientNetV2 模 型,其 中DenseNet 作為實驗對照組。實驗設置如表1所示。
表1 實驗設置Table 1 Experimental settings
本文實驗在Linux 環(huán)境下基于Pytorch 深度學習框架搭建,在1 臺Tesla V100 機器上進行訓練,其顯存為32 GB。在3 種模型中,學習率為0.001,損失函數(shù)選擇binary_crossentropy,優(yōu)化函數(shù)選擇adam,訓練批次尺寸設置為64。通過多次參數(shù)調優(yōu),BiLSTM 模型的迭代周期設置為100,DenseNet 和Efficient-NetV2 設置為20。
本研究使用了3 種分類模型對兩種數(shù)據(jù)類型比較,模型分別為BiLSTM、DenseNet 和Efficient-NetV2,結果分析所用評價指標為準確性、敏感性、特異性、精確率以及ROC 曲線,訓練結果如表2 所示,ROC 曲線如圖5 所示。
由表2 可以看出,在準確性上3 種模型的效果都很好,相較于處理一維序列的BiLSTM 模型,處理二維圖像的DenseNet 和EfficientNetV2 模型結果更優(yōu),其中EfficientNetV2 模型的準確性最高,達到了98.69%;同樣在敏感性、特異性以及精確率中,處理二維圖像的2 種模型優(yōu)于BiLSTM 模型,且2 種模型中EfficientNetV2 模型均是最高值,分別達到了98.33%、99.09%和99.15%。圖5 中的ROC 曲線顯示3 種模型的AUC 值均達到了99%以上,EfficientNetV2 最高為99.90%。通過比較這3 種模型的各項評判指標可以發(fā)現(xiàn),3 種模型對癲癇腦電信號的識別效果較好,其中EfficientNetV2 模型表現(xiàn)最佳。
圖5 3 種模型的ROC 曲線Fig.5 ROC curves of three models
圖6 是BiLSTM、DenseNet 以及EfficientNetV2 模型在訓練過程中的準確性與損失函數(shù)變化曲線。其中Train_loss 和Val_loss 表示模型在訓練集和驗證集上訓練時的損失值,Train_Acc 和Val_Acc 表示模型在訓練集和驗證集上訓練時的準確率??梢钥闯?,BiLSTM 模型在迭代20 個周期后,準確性曲線與損失函數(shù)變化曲線逐漸進入收斂狀態(tài),雖然在后續(xù)輪次中驗證集的損失函數(shù)曲線出現(xiàn)了振蕩現(xiàn)象,但是仍穩(wěn)定在一定范圍內。最終訓練集的識別準確性穩(wěn)定在100%左右,驗證集的準確率穩(wěn)定在97%左右,最終測試集的最高準確率為97.39%。DenseNet 模型在迭代4 個周期后,準確性曲線與損失函數(shù)變化曲線逐漸進入收斂狀態(tài),最終測試集的最高準確率為98.04%。EfficientNetV2 模型在迭代5 個周期后,準確性曲線與損失函數(shù)變化曲線逐漸進入收斂狀態(tài),訓練集的識別準確性穩(wěn)定在100%附近,驗證集的準確性穩(wěn)定在99%附近,最終測試集的最高準確率為98.69%。
圖6 3 種模型的訓練準確度-損失大小變化曲線Fig.6 Variation curves of training accuracy-loss of three models
由于EfficientNetV2 模型的分類結果最好,所以使用該模型利用Grad-CAM 方法進行可視化分析。通過將EfficientNetV2 模型最后一層卷積層的梯度信息生成加權熱力圖,可以顯示模型的重點關注區(qū)域,并以紅色、橙色標注;非重點區(qū)域以藍紫色標注顯示。從測試集中,分別選取癲癇發(fā)作與未發(fā)作狀態(tài)下的典型波形以及非典型波形進行對比分析,結果如表3 和表4 所示。同時,對同一張腦電圖像的不同預測結果,Grad-CAM 方法可以對模型重點關注的區(qū)域顯示,如表3 和表4 中的熱力圖1 和熱力圖2。熱力圖1 是針對癲癇發(fā)作,即標簽為1 的分類結果繪制的熱力圖;熱力圖2 是針對未發(fā)作狀態(tài),即標簽為0 的分類結果繪制的熱力圖。即使模型對二維圖像做出了誤判,但通過2 張不同的熱力圖對比,仍然可以作為模型錯誤分類的依據(jù),并提供一個合理的解釋。
在表3 中,波形a 和b 都有明顯的棘波、尖波等存在,在熱力圖1 中由于是針對癲癇發(fā)作這一分類結果繪制的熱力圖,所以它的重點關注區(qū)域除了整條波形,對于波形波動幅度過大的區(qū)域即棘波、尖波等被重點標注,而在熱力圖2 中需要關注的平穩(wěn)波形較少,所以波形a 和b 可以經由EfficientNetV2 模型被正確分類。波形c 和d 都是癲癇未發(fā)作時的圖像,波形c 整體上呈現(xiàn)有規(guī)律且小幅度波動,波形d 則幾乎無波動。在兩者的熱力圖1 中,僅有較小范圍內的波形被關注,而在熱力圖2 中模型所關注的特征是波形的平穩(wěn)性,所以整條波形成為了模型的重點關注區(qū)域,自然就被正確分類為未發(fā)作狀態(tài)。
表3 典型波形及其熱力圖Table 3 Typical waveforms and their class activation maps
表4 中的4 個非典型的波形,波形a 和b 分別屬于癲癇未發(fā)作和發(fā)作狀態(tài),但2 個圖像都被誤判。波形a 的熱力圖1 誤將波形的波動作為顯著特征,模型將整條波形重點關注,在熱力圖2 中僅將波形前半段作為分類特征,區(qū)域較小,所以導致了錯誤的分類結果。波形b 的熱力圖1 同樣只將波形前半段的波動作為特征,不足以支撐它被分類為發(fā)作狀態(tài),而熱力圖2 中模型提取的特征是整條波形,所以同樣導致了誤判。波形c 和d 分別是未發(fā)作和發(fā)作狀態(tài),但在波形c 中存在一個尖波,波形d 整體較平穩(wěn),與表3 中的4 種典型波形有較大的區(qū)別。波形c 有個尖波,所以熱力圖1 中也僅僅只關注到該區(qū)域,而熱力圖2 整條波形都有關注,尤其是后半段,所以分類正確。波形d 的2 個熱力圖關注區(qū)域相差較小,但也能明顯看出熱力圖1 關注區(qū)域多,將前半段的波動作為顯著特征,熱力圖2 則是僅僅關注了波形開始時的平穩(wěn)波段,所以該波形可以被正確分類為癲癇發(fā)作狀態(tài)。
表4 非典型波形及其熱力圖Table 4 Non-typical waveforms and their class activation maps
本文針對癲癇腦電數(shù)據(jù)的兩種數(shù)據(jù)類型,即一維時間序列和二維腦電圖像,分別通過BiLSTM、DenseNet 和EfficientNetV2 模型在德國波恩大學癲癇腦電數(shù)據(jù)集上實現(xiàn)癲癇發(fā)作的檢測。結果表明,EfficientNetV2 模型對癲癇腦電的二維腦電圖像的分類效果最好,獲得98.69%的準確率,證實了EfficientNetV2 模型在癲癇發(fā)作檢測上的可行性。同時,針對二維圖像的處理,引入了Grad-CAM 進行可視化分析,對于分類結果有了更好的可解釋性。一般在臨床中會通過觀察臨床癥狀和腦電圖2 種方式來檢測癲癇發(fā)作,但是人工判斷腦電圖不僅數(shù)據(jù)量大效率慢,而且僅依據(jù)以往經驗會產生誤判。所以本文針對癲癇發(fā)作與未發(fā)作狀態(tài)進行二分類,有利于患者在后期病情掌控中的監(jiān)護和臨床診斷。如果要進一步實現(xiàn)患者的日常居家監(jiān)護,則需要對發(fā)作前期和發(fā)作間期進行分類,本文方法也同樣適用,這也是進一步需要研究的方向。