穆建秋
(貴州師范大學大數據與計算機科學學院,貴陽550000)
根據世界衛生組織(WHO)報道[1],全世界約有5000 萬人患有癲癇癥。癲癇是一種由大腦局部放電異常并向周圍擴散引起的慢性腦部疾病,具有反復性和突發性。癲癇病的臨床表現具有多樣性,不同患者的癲癇發作持續時間和表現各有不同。目前,近30%的患者患有醫學上的頑固性癲癇,他們不能徹底避免癲癇發作,使用藥物只能減少癲癇發作的次數,不能徹底根除。腦電信號(Electroencephalogram,EEG)分析是檢測癲癇發作的主要方法,經驗豐富的專家可以從患者腦電信號的波形判斷患者的大腦狀態,但是這樣的人工觀察存在一些弊端,例如:長時間觀察腦電信號會使人身心疲憊,使得效率變低、誤差變大。此外,醫生對癲癇患者的診斷往往是通過對腦電信號的觀察并結合患者是否出現異常抽搐,進而判斷癲癇是否發作。人工判斷是一個主觀過程,不同的專家對同一段腦電信號的診斷可能不同,導致得出的結果不同。因此,有必要尋找一種實時、準確的自動檢測技術對患者腦電信號進行智能檢測,這對癲癇病患者和患者家屬具有十分重要的現實意義。
基于腦電信號的研究方向諸多,例如Manzano[2]使用深度學對睡眠狀態分類;Alhagry[3]使用長短期記憶網絡(Long Short-Term Memory,LSTM)進行情感識別;林偉成[4]對認知任務模式分類;Hajinoroozi[5]預測司機睡意和警覺狀態等等,本文涉及的癲癇檢測只是其中之一。由于以上研究的本質都是對腦電信號進行某種處理,所以即便研究方向不同,它們之間的研究方法卻存在著可互用、相似之處。
前期的腦電信號相關研究主要使用非深度學習模型[4,6-11],而近些年深度學習逐漸成為主流,研究人員越來越多的使用深度學習進行腦電信號處理。本文將從數據預處理,特征提取、模型選擇和訓練對目前基于深度學習的腦電信號處理現狀進行介紹:
(1)數據預處理
腦電信號的數據預處理通常包括下采樣和高通濾波等。Hefron 等人[12]指出使用深度學習處理腦電信號時,需要經過“大量的數據預處理”。作者將數據下采樣至512Hz、計算64 個電極的平均參考值、對數據頻率由低到高的進行高通濾波。Koelstra[13]在DEAP 數據集上進行情緒識別的研究中將腦電信號下采樣至256Hz,并對頻率為2Hz 的腦電信號進行高通濾波。
有一種技術叫“偽影處理”[11],用于消除特定類型的噪音,例如眼部和肌肉偽影,YANG 等人[14]認為去除偽影對于腦電信號實現良好的解碼性能至關重要。Nolan[15]提出偽影處理需要專家參與,即便沒有專家去除偽影,較少的人為干預也可以取得更好的結果,例如Sun 等人[16]利用獨立成分分析從腦電信號中分離出眼部活動信號。
(2)特征提取
Zhang 等人[17]提出特征提取是腦電信號處理中最苛刻的步驟之一,甚至Patanaik 等人[18]的主要目的之一就是通過深度學習自動學習有效特征。除了使用深度學習自動學習有效特征之外,Pouya 等人[19]使用手工設計的特征作為深度學習模型的輸入,作者將腦電信號轉換成一系列保留拓撲結構的多光譜圖像,這樣能夠最大程度的保留原始腦電信號中的空間和時間結構。Wulsin[20]在深度信念網絡(Deep Belief Network,DBN)使用未處理過的腦電信號和手工設計的特征作為輸入,比較了兩者在分類和異常檢測任務上的性能。結果表明,在深度信念網絡中使用原始腦電信號能取得更好的結果。Tsiouris 等人[21]發現LSTM 網絡無法從原始腦電信號中獲得有效特征,而使用手工設計的特征作為模型輸入時效果良好。田曉彬等人[22]提出了一種融合深度和淺層特征的多視角癲癇檢測算法。該算法首先使用快速傅里葉變換(Fast Fourier Transform,FFT)和小波包分解(Wavelet Packet Decomposition,WPD)來獲取腦電信號頻域和時頻域的淺層特征;然后使用卷積神經網絡(Convolutional Neural Network,CNN)學習并得到頻域和時頻域的深層特征。
(3)模型的選擇
在2014 年前,研究人員進行腦電信號處理使用的主要是深度信念網絡。Wulsin 等人[20]使用深度信念網絡對臨床腦電信號進行快速分類和異常檢測;Zheng 等人[23]從多通道腦電信號中提取特征作為模型輸入,使用深度信念網絡進行情感分類;Turner[24]使用深度信念網絡在高分辨率多通道腦電信號中進行癲癇檢測。
從2015 年開始,由于CNN 在計算機視覺上的優異表現,許多研究人員開始使用CNN 進行腦電信號處理。Yang 等人[25]利用卷積神經網絡和增廣特征對多類運動圖像進行腦電信號分類;Tsinalis 等人[26]使用CNN對單通道腦電信號的睡眠階段進行自動評分;Wei 等人[27]基于多通道腦電信號使用三維CNN 進行癲癇自動檢測。同時,由于循環神經網絡(Recurrent Neural Net?work,RNN)在處理時間序列上的優勢,RNN 的使用率也不斷提高。Kuanar 等人[28]使用RNN 來學習特征和預測腦電信號中記錄的認知負荷水平;Talathi[29]基于RNN 設計了一個針對癲癇發作前的癲癇檢測系統。
一些文章專門研究了模型層數對性能的影響。Zhang 等人[30]評估了層數從2 到10 的模型在基于腦電信號的精神負荷分類任務中的表現,結果表明層數為7層的模型優于層數較淺的模型(兩層和四層),也優于層數較深的模型(10 層)。Kwak 等人[31]在動態條件下對基于腦電信號的穩態視覺誘發電位(Steady State Vi?sual Evoked Potential,SSVEP)進行分類,并研究了模型層數對CNN 性能的影響,文中設計了三個模型,它們分別為:①由兩層CNN 和輸入輸出層組成的模型1;②由兩層CNN 和一層全連接層和輸入輸出層組成的模型2;③兩個全連接層和輸入輸出層組成的模型3。結果表明,在提供足夠的訓練數據(均為已標注數據)時,三種模型都表現出很好的性能,但是在訓練數據不充分的情況下,層數較少的模型1 則表現得更加優秀。
(4)模型訓練
不同的訓練方法和超參數的選擇會極大的影響模型的性能,本節主要討論以下三個方面:正則化、優化器和超參數。
正則化是一種為了減少測試誤差的行為(有時候也會增加訓練誤差),目的是讓模型在面對新的數據時可以有很好的表現。其中最常見的是權重衰減(L1 和L2 正則化)、Early Stopping(提前停止)、Dropout 和La?bel Smoothing(標簽平滑)。目前關于腦電信號的研究中,超過一半的文章采用了至少一種正則化方法。例如,Hefron 等人[32]使用Dropout、L1&L2 正則化的組合來學習不同參與者的時域和頻域特征。Lngkvist 等人[33]在睡眠階段分類中使用權重衰減和稀疏性懲罰兩種正則化結合,還增加了一個懲罰項來鼓勵權重稀疏性,定義為所有訓練樣本中每個隱藏單元的平均激活量與超參數之間的KL 散度。
通常,調整超參數會占用大量的訓練時間。為了減少尋找最佳超參數花費的時間,常用的方法有網格搜索和貝葉斯優化。網格搜索為每個要優化的參數確定一個取值范圍,選擇該范圍內的值,并評估模型。網格搜索的一個優點是它具有高度的并行性,每個超參數集都是相互獨立的。貝葉斯優化通過目標函數的評估結果建立替代函數(概率模型),來找到最小化目標函數的值。貝葉斯方法與網格搜索的不同之處在于,它在嘗試下一組超參數時,會參考之前的評估結果,因此可以省去很多無用功。
癲癇檢測的研究工作由來已久,傳統方法多使用“淺”模型[6-10,34],如支持向量機(Support Vector Machine,SVM)等。隨著深度學習技術的發展,如CNN、RNN 等“深度”模型開始廣泛應用于癲癇檢測[21,22,24,27,29,35],并且取得不錯的效果,但仍然存在著一些問題:①已標注腦電信號數據有限。深度學習應用于癲癇檢測需要大量的已標注數據,目前可獲取的腦電信號大部分為未標注數據,有些文章使用的甚至是未公開的數據集。②存在不確定性。眾所周知,深度學習模型可能存在過擬合現象,模型可能在訓練數據集上表現非常好,在其他數據集上表現一般。在已標記數據不足的情況下,我們沒有更多的數據來驗證模型的泛化性能;③部分相關研究無法重現。未公開代碼、使用私有數據集等,都會導致所做研究別人無法重現。而重現性是推動該領域前進的基礎,尤其是在深度學習等新思想迅速傳播的領域;④腦電信號的研究方向諸多,如何更有針對性的對腦電信號進行特征提取,目前尚未完全解決;⑤實際上,學習神經網絡參數是一個優化問題,找到解決該問題的最佳方法仍然是許多研究人員的研究方向。