樊楷,管林,馬俊嵩,劉海燕
(1.北華航天工業(yè)學院,廊坊065000;2.廊坊市氣象局,廊坊065000;3.桂林電子科技大學,桂林541004)
腦電圖是腦神經(jīng)細胞的電生理活動在大腦皮層或頭皮表面的總體反映,包含大量的生理和病理信息。近年來,與疼痛相關(guān)腦電信號的研究是當前腦認知和臨床治療領(lǐng)域的研究熱點和難點問題之一。使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)結(jié)合的CNN+LSTM網(wǎng)絡(luò)算法對疼痛和不痛的腦電信號進行二分類,準確率達到96%,與此同時Precision、Recall、F1-score分別達到96%、96%、96%,證明兩種網(wǎng)絡(luò)結(jié)合對研究疼痛的腦電信號是可行的。
疼痛分類;腦電圖;CNN;RNN;LSTM
腦電波信號(Electroencephalography,EEG)是大腦神經(jīng)活動產(chǎn)生的電場經(jīng)容積導體傳導后在頭皮上的電位分布,簡稱為腦電信號[1]。腦電信號是大腦內(nèi)部狀態(tài)變化的反應(yīng),其中蘊含了豐富的生理、心理和病理信息。通過研究分析腦電信號,可以深入探索人的心理、腦部疾病的發(fā)生和運作的機理,并為腦疾病的治療指明方向。腦電信號被廣泛的應(yīng)用于各個領(lǐng)域,例如:①作為腦機接口的輸入信號[2];②通過腦電信號臨床診斷神經(jīng)系統(tǒng)疾病[3-4];③用于研究大腦功能[5-6]。
疼痛是一種看似簡單實則復雜的感受,是受感覺、注意、情緒、意識狀態(tài)和經(jīng)驗因素影響的主觀體驗,因為其主觀性,給疼痛的客觀評估和科學診斷造成了非常大的困難。但是,腦電圖因為其高分辨的特點能直接評估神經(jīng)元的激活,并對疼痛活動成分進行解讀,在疼痛的評估和預測中起到重要的作用[7]。
近年來,近年人工智能技術(shù)引起社會各界廣泛的關(guān)注,基于腦電圖的人工智能技術(shù)因其挖掘非侵入性神經(jīng)成像數(shù)據(jù),以建立計算機輔助診斷解決方案,以促進病癥診斷的能力而受到廣泛關(guān)注。李冬使用隨機森林(RandomForest,RF)序列后項選擇(SequentialBack?wardSelection,SBS)相結(jié)合的方式進行了分類識別,在不痛與輕痛、不痛與輕痛與重痛分類的準確率分別為92.85%、80.95%[8];趙頎使用線性判別分析分類器(Lin?earDiscriminantAnalysis,LDA)對地方患者在疼痛分類上達到了最高精確度82.21%,使用支持向量機分類器(SupportVectorMachine,SVM)對空勤患者在疼痛分類上達到最高精確度為83.68%[9];耿惠惠基于雙通道時空特征深度學習的新生兒疼痛表情識別中對疼痛的識別率僅僅只有64.18%[10];可以看到當前國內(nèi)對疼痛分類識別的研究還有很大的不足,本文在前人的基礎(chǔ)上,結(jié)合使用最近幾年比較火熱的深度學習技術(shù)在疼痛的分類識別上達到了很高的準確率。
在復雜的環(huán)境中所采集的腦電信號(EEG)是由不同的信號源(等效源)產(chǎn)生的多路信號的混合信號。腦電信號受到心電、眼動、肌電以及工頻等干擾。圖1顯示了典型的腦電信號及以及它混入的偽跡成分[11]。雖然混入了多種干擾,本次的數(shù)據(jù)集采集的過程是在病人靜息狀態(tài)下,較多數(shù)的干擾來自工頻和眼電的干擾。
圖1 典型的信號及偽跡成分
腦電信號預處理階段,我們采用了濾波和眼電圖(EOG)來對偽影進行去除。我們采用1到47Hz的帶通濾波器來去除工頻干擾,以及使用國內(nèi)外研究學者證明的,有較好效果去除眼電偽跡的ICA算法[12-14]。我們借助EEGLAB自動識別EOG組件。EEGLAB是Ar?naudDelorme和ScottMakeig[15]發(fā)明的基于MATLAB的工具箱,它是用于EEG信號分析的非常有用的工具。
信號預處理的流程圖如圖2所示。EEG原始數(shù)據(jù)通過EEGLABBasicFIR濾波器進行了1-47Hz帶通濾波。圖3顯示14個通道了帶通濾波前后腦電圖功率譜的。然后,使用EEGLAB的runica函數(shù)通過ICA方法對14個通道的濾波后EEG數(shù)據(jù)進行分解,并獲得14個獨立的分量信號。
圖2 信號預處理的流程圖
圖314 個通道帶通濾波前后腦電圖功率譜
圖4顯示了ICA算法重構(gòu)后的腦電信號。
圖4 ICA算法重構(gòu)后的腦電信號
人工神經(jīng)網(wǎng)絡(luò):一般來說,人工神經(jīng)網(wǎng)絡(luò)有三層:輸入層、隱藏層和輸出層(見圖5),經(jīng)網(wǎng)絡(luò)的概念是受到人腦復雜網(wǎng)絡(luò)結(jié)構(gòu)的啟發(fā)[16]。神經(jīng)網(wǎng)絡(luò)是由一組被稱為節(jié)點或神經(jīng)元的連接單元組成的。就像大腦中的生物神經(jīng)元一樣,這些神經(jīng)元整合輸入信號,并將其傳遞給其他相連的神經(jīng)元。神經(jīng)元的輸出服從前一層神經(jīng)元的加權(quán)和。然而,神經(jīng)網(wǎng)絡(luò)模型容易產(chǎn)生平移和位移失真,從而導致分類結(jié)果較差[17]。
圖5 人工神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò):卷積神經(jīng)網(wǎng)絡(luò)是在人工神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上改進的神經(jīng)的網(wǎng)絡(luò),改進的神經(jīng)網(wǎng)絡(luò)具有平移不變性[17]。CNN的架構(gòu)由三種不同類型的層組成[18]:
(1)卷積層:由濾波器(核)組成,在腦電圖信號上滑動。核是與輸入腦電圖信號卷積的矩陣,步長控制濾波器對輸入信號卷積的大小。該層利用式(1)對輸入腦電圖信號與核函數(shù)進行卷積。卷積的輸出也稱為featuremap。其中x為信號,h為濾波器,N為x中元素的個數(shù),輸出向量為y,下標表示向量的第N個元素。
(2)池化層:該層又稱下采樣層。池化操作降低了卷積層輸出神經(jīng)元的維數(shù),降低了計算強度,防止了過擬合。在此工作中使用了最大池化操作。Max-pooling操作只選擇每個featuremap中的最大值,從而減少輸出神經(jīng)元的數(shù)量。
(3)全連接層:該層與前一層的所有激活都完全連接。
本文中使用了兩種激活函數(shù):①線性激活單元,②Softmax。激活函數(shù)是一種將輸出映射到一組輸入的操作。它們被用來使網(wǎng)絡(luò)結(jié)構(gòu)具有非線性。整流器線性單元已確定激活深度學習功能[17]。泄漏整流器線性單元[19]LeakyRelu。在研究中使用作激活功能卷積操作之后使用該激活函數(shù)LeakyRelu是在網(wǎng)絡(luò)中增加非線性和稀疏性的特性結(jié)構(gòu)體。因此,為小變化(例如輸入中的噪聲)提供了魯棒性。公式(2)顯示了LeakyRelu函數(shù)。Softmax:該函數(shù)計算k個輸出類的概率分布。因此,output使用Softmax函數(shù)來預測輸入的腦電圖信號(疼痛、正常)屬于哪一類。x是凈輸入。p的輸出值在0到1之間,它們的和等于1。
LSTM網(wǎng)絡(luò):短期記憶網(wǎng)絡(luò)(通常稱為“LSTM”)是一種特殊的RNN,能夠?qū)W習長期依賴關(guān)系。它是由Hochreiter和Schmidhuber(1997)[20]引入的,并在隨后的工作中被許多人提煉和推廣。它們在各種各樣的問題上都表現(xiàn)出色,現(xiàn)已被廣泛使用。LSTM被明確設(shè)計為避免長期依賴問題。長時間記住信息實際上是他們的默認行為,而不是他們努力學習的東西!LSTM網(wǎng)絡(luò)中包含三種門分別如下:
(1)遺忘門:LSTM的第一步是決定要從單元狀態(tài)中丟棄哪些信息。該決定由稱為“忘記門層”的S形層決定。它查看ht-1和xt,并在單元狀態(tài)Ct-1中為每個數(shù)字輸出介于0和1之間的數(shù)字。1代表“完全保留此條件”,而0代表“完全保留此條件”。原理如公式(4)所示
(2)輸入門:下一步是確定我們將在單元狀態(tài)下存儲哪些新信息。這包括兩個部分。首先,稱為“輸入門層”的S形層決定了我們將更新哪些值。接下來,tanh層創(chuàng)建一個新候選值C~t的向量,可以將其添加到狀態(tài)中。在下一步中,我們將兩者結(jié)合起來以創(chuàng)建該狀態(tài)的更新。原理如公式(5)、(6)所示。
現(xiàn)在該將舊單元狀態(tài)Ct-1更新為新單元狀態(tài)Ct。前面的步驟已經(jīng)確定了要做什么,我們只需要實際進行即可。我們將舊狀態(tài)乘以,從而忘記了我們早先決定忘記的事情。然后我們加上it*C?t。這是新的候選值,根據(jù)我們決定更新每個狀態(tài)值的大小進行縮放。原理如公式(7)所示。
(3)輸出門:最后,我們需要決定輸出什么。此輸出將基于我們的單元格狀態(tài),是過濾后的版本。首先,我們運行一個sigmoid層,它決定我們將輸出細胞狀態(tài)的哪些部分。然后,我們將單元格狀態(tài)通過tanh(將值推到-1和1之間),并將其與sigmoid門的輸出相乘,這樣我們只輸出我們決定輸出的部分。原理如公式(8)、(9)所示。
本文采用的算法模型是卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合的一種新算法。算法流程圖如圖6所示,預處理后的數(shù)據(jù)經(jīng)過8個卷積層,每個卷積層我們使用了改進的激活函數(shù),卷積核的大小是3×3的,步長是1×1的,此外我們使用了填充零來盡可能多的獲取邊界信息;一共使用了四個最大池化操作,每兩個卷積層之后我們使用一次最大池化操作,池化層的卷積核是3×3的,最大池化的步長是3×3的;最后一層的池化之后我們沒有直接接全連接層,而是在網(wǎng)絡(luò)中加入了LSTM循環(huán)神經(jīng)網(wǎng)絡(luò),LSTM中的神經(jīng)元個數(shù)是256個,激活函數(shù)采用的是tanh非線性函數(shù);在循環(huán)神經(jīng)網(wǎng)絡(luò)之后設(shè)置了兩個全連接層,全連接層中我們使用Dropout來降低過擬合,其中Dropout在網(wǎng)絡(luò)中的值是0.5。隨著每次的迭代訓練集和測試集上的表現(xiàn)如圖7所示,ROC曲線和Precision、Recall、F1-score指標,分別如圖8、圖9所示。
圖6 CNN+LSTM算法流程圖
圖7 50批次迭代的訓練集和測試集的accuracy和loss
圖8 Roc曲線和AUC值
圖9 Precision、Recall、F1-score指標
混淆矩陣
class0 class1
class0[[1069 21]
class1[43 497]]
其中class0表示正常無疼痛,class1表示有疼痛。
綜上所述,從上面的指標來看,正確區(qū)分疼痛和不痛的二分類準確率達到了96%,無論是準確率還是Precision、Recall、F1-score這幾種分類效果指標以及混淆矩陣上來看,都達到非常好的效果,相比于機器學習算法,該算法有很大的提升,證明了本文提出的CNN+LSTM神經(jīng)網(wǎng)絡(luò)深度學習模型優(yōu)于傳統(tǒng)的機器機器學習分類模型,為研究其他腦電信號分析奠定了基礎(chǔ)。當然本文中還有需要改進的地方,例如獲取更多的樣本來測試這種網(wǎng)絡(luò)。