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