范藝晶 羅濤 李劍峰 楊子賢
失眠障礙(insomnia disorder)是以頻繁而持續(xù)的入睡困難或睡眠維持困難導(dǎo)致睡眠不足為主要特征的睡眠障礙。失眠障礙的診斷要點(diǎn)包括:① 存在入睡困難、睡眠維持困難或早醒癥狀;② 日間疲勞、嗜睡,社會功能受損;③ 上述癥狀每周至少出現(xiàn)3次,持續(xù)最少3個月[1]。據(jù)統(tǒng)計,我國需要積極干預(yù)的長期慢性失眠者高達(dá)15%。隨著生活節(jié)奏加快、競爭壓力加大,失眠的發(fā)病率還在上升。
失眠障礙的臨床診斷主要基于患者主訴、量表評估(如失眠嚴(yán)重程度指數(shù)、匹茲堡睡眠質(zhì)量指數(shù)、睡眠信念與態(tài)度量表)與多導(dǎo)睡眠圖(polysomnography,PSG)監(jiān)測[1]。患者主訴與量表評估容易受到主觀因素的影響,導(dǎo)致誤診。PSG監(jiān)測是評估睡眠病理生理和睡眠結(jié)構(gòu)的一種客觀檢查方法,醫(yī)生需基于采集的腦電等生理信號進(jìn)行診斷,對其專業(yè)性要求比較高。由于失眠障礙患者的PSG表現(xiàn)為睡眠潛伏期延長、睡眠效率下降、客觀睡眠時間縮短、非快速眼動1期比例增加、慢波睡眠比例下降等,若利用機(jī)器學(xué)習(xí),基于PSG采集的腦電信號,探索一種客觀、高效、便捷的失眠障礙自動檢測方法,可以幫助醫(yī)生提高失眠障礙診斷的效率。
目前基于腦電信號的自動失眠障礙檢測算法研究較少,分為兩個階段,首先是睡眠分期,其次是基于不同睡眠時期的腦電信號識別失眠障礙。張冰濤[2]提取C3-A2與C4-A1導(dǎo)聯(lián)腦電信號的特征,進(jìn)行五態(tài)睡眠分期,構(gòu)建不同性別不同睡眠時期的最優(yōu)特征子集結(jié)構(gòu)圖,實(shí)現(xiàn)失眠障礙識別。其結(jié)果表明男性N3期和女性REM期對于識別最為有效,準(zhǔn)確率分別為 93.94%和95.13%,但該研究的特征提取及特征選擇工作量大。Shahin等[3]利用深度學(xué)習(xí),減少了特征提取的工作量。首先基于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練睡眠分期模型,再利用多種二分類器進(jìn)行失眠障礙識別,選取其中準(zhǔn)確率最高的分類器。其結(jié)果表明C3-A2與C4-A1導(dǎo)聯(lián)的NREM期與REM期對于識別最為有效,準(zhǔn)確率為92%。
兩階段檢測方法雖可以得到識別失眠障礙的最佳睡眠時期,對于臨床醫(yī)學(xué)研究具有意義,但其存在缺陷:① 差錯傳播,第一階段睡眠分期的錯誤會影響第二階段失眠障礙識別的準(zhǔn)確率;② 基于睡眠分期后的腦電信號再進(jìn)行研究可能丟失睡眠腦電的整體信息;③ 兩次分類過程計算復(fù)雜。從應(yīng)用角度出發(fā),最終目標(biāo)是檢測受試者是否患有失眠障礙,并不需確定哪個睡眠時期的識別準(zhǔn)確率最佳,因此可以省略睡眠分期階段,直接利用PSG采集的睡眠腦電信號進(jìn)行失眠障礙檢測。本文基于腦電信號的時空特征,提出卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)與雙向長短期記憶網(wǎng)絡(luò)(bidirectional long short-term memory network,BiLSTM)融合的CNN-BiLSTM深度學(xué)習(xí)算法,直接檢測失眠障礙。
睡眠紡錘波是睡眠腦電信號的特征波之一,睡眠紡錘波由大腦局部產(chǎn)生,但從全腦的角度看,局部之間并非完全跨區(qū)域獨(dú)立,而是局部和全腦有機(jī)結(jié)合,其局部睡眠紡錘波和全腦紡錘波共存的時空模式[4],決定了睡眠腦電信號具有豐富的時空特征。為了利用睡眠腦電信號的空間信息,首先人工提取睡眠腦電信號的功率特征,根據(jù)PSG的6個腦電導(dǎo)聯(lián)電極分布構(gòu)建二維特征矩陣,再將特征矩陣輸入CNN進(jìn)行高級的特征表達(dá)。隨后饋送至BiLSTM中挖掘睡眠階段間的時序信息,實(shí)現(xiàn)失眠障礙的直接檢測。整體流程如圖1所示。
圖1 失眠障礙檢測算法流程圖Figure 1 Flowchart of insomnia detection algorithm
PSG由受試者的整夜睡眠記錄組成,包含多種生理信號:①腦電圖(electroencephalogram,EEG),常用導(dǎo)聯(lián)為C3-A2、C4-A1、F3-A2、F4-A1、O1-A2、O2-A1,其中A1、A2為參考電極;②眼電圖(electro-oculogram,EOG),導(dǎo)聯(lián)為LOC-A2與ROC-A1;③肌電圖(electromyography,EMG),導(dǎo)聯(lián)為X1、X2、X3。此外還包含心電圖、血氧飽和度等。
本文選取6導(dǎo)EEG信號進(jìn)行研究。睡眠時EEG信號極其微弱,背景噪聲較強(qiáng),容易引入干擾[5],因此需要進(jìn)行預(yù)處理工作來提高信號的質(zhì)量。睡眠EEG信號有價值的頻率范圍在0.5~30 Hz之間[2],采用頻率下限0.5 Hz、頻率上限30 Hz的四階巴特沃斯帶通濾波器進(jìn)行濾波,以去除噪聲和其他無用的信號成分。
臨床上,專家以連續(xù)30 s的睡眠數(shù)據(jù)作為一個獨(dú)立的睡眠階段,因此本課題組將EEG信號每30 s劃分為一段樣本。對于一個導(dǎo)聯(lián)采集的EEG信號,當(dāng)采樣頻率為200 Hz時,每個樣本包含6 000個信號點(diǎn)。為了保持樣本的局部信息與整體信息,按順序?qū)?0 s的EEG信號再切為30個1 s的小段,將這30個子信號段按順序構(gòu)造大小為30×200的EEG信號矩陣。
對比失眠障礙患者與健康對照者的EEG,在睡眠起始階段及睡眠轉(zhuǎn)換期間,失眠障礙患者的α、β1、β2頻段的功率與健康者相比有較高水平的差異,提示失眠患者大腦皮質(zhì)的高覺醒程度[7]。因此人工提取EEG信號的功率作為初級特征。
隨機(jī)過程x(n)的采樣間隔為TS,對x(n)的N個觀測值XN(n),假設(shè)其傅里葉變換為XN(ω),則XN(ω)模的平方是信號XN(n)的能量,對能量除以NTS得到N個觀測值的平均功率SN。
(1)
對大小為30×200的EEG信號矩陣,每1 s計算一次平均功率,希望輸入神經(jīng)網(wǎng)絡(luò)的特征矩陣為規(guī)則方陣,因此用每1 s的平均功率值填充45個點(diǎn),得到大小為30×45的功率特征矩陣。采集EEG信號使用的電極為:C3、C4、F3、F4、O1、O2,為圖2中黑色圓點(diǎn)標(biāo)識的6個電極。為了利用腦電信號的空間關(guān)系,按照電極位置將6個矩陣合并,得到大小為90×90的特征矩陣。構(gòu)造特征矩陣的整體流程如圖3所示。
圖2 特征矩陣的填充方法Figure 2 Filling method of characteristic matrix
圖3 特征矩陣的整體構(gòu)造流程Figure 3 Overall construction process of characteristic matrix
CNN和BiLSTM是深度學(xué)習(xí)中的代表性算法。CNN能夠逐層抽象數(shù)據(jù)局部特征,進(jìn)一步實(shí)現(xiàn)空間維度上的特征提取。BiLSTM具有保留上下文歷史信息的特性,實(shí)現(xiàn)時間維度上的特征提取。睡眠EEG信號既具有空間分布特征,又在時間層面上連續(xù)變化,因此構(gòu)建CNN-BiLSTM模型,達(dá)到同時學(xué)習(xí)EEG信號空間與時間特征的目的。CNN-BiLSTM模型的整體結(jié)構(gòu)如圖4所示。
圖4 CNN-BiLSTM模型結(jié)構(gòu)Figure 4 CNN-BiLSTM model structure
CNN是一種深度學(xué)習(xí)模型,基本結(jié)構(gòu)主要由卷積層、池化層、全連接層組成。由于1.2節(jié)中已進(jìn)行了初步的人工特征提取,為了控制模型復(fù)雜度,設(shè)計了6層CNN進(jìn)行高級的特征學(xué)習(xí),包括卷積層1、卷積層2、最大池化層、卷積層3、卷積層4、全連接層。
CNN輸入1.2節(jié)中構(gòu)建的特征矩陣,使用2D卷積核提取局部特征。卷積核矩陣由上到下、由左到右進(jìn)行滑動,將其各個元素與對應(yīng)位置的元素相乘、求和得輸出值:
Cj=σ(∑Ai?Wi+bi)
(2)
式中:σ是激活函數(shù);?代表卷積;A是特征矩陣;W是權(quán)值矩陣;b是偏置矩陣。
卷積層1與卷積層2相連,卷積層3與卷積層4相連,均使用3×3的卷積核,這樣設(shè)計有以下優(yōu)點(diǎn):①2個3×3的卷積核串聯(lián)和一個5×5的卷積核有相同的感受野,且前者參數(shù)更少;②多個3×3的卷積核比一個較大尺寸的卷積核有更多層的非線性函數(shù),增加了非線性表達(dá)。選取ReLU激活函數(shù),其數(shù)學(xué)表達(dá)式為式(3),ReLU函數(shù)求導(dǎo)簡單,可以加快CNN收斂。
f(x)=max(0,x)
(3)
在卷積層2后加入池化層,對卷積層的輸出進(jìn)行池化操作,將某一子區(qū)域用一個值代替,可以降低維度,也有一定程度的平移、旋轉(zhuǎn)不變性。本文選擇最大池化(max-pooling),對2×2大小的子區(qū)域輸出最大值:
di=max(c1,c2,c3,c4)
(4)
全連接層每個神經(jīng)元與其前一層的所有神經(jīng)元相連接,其能夠綜合前面網(wǎng)絡(luò)提取的特征,將有用的信息進(jìn)行整合,接著將全連接層輸出的特征向量輸入到BiLSTM中。
長短期記憶網(wǎng)絡(luò)(long short-term memory network,LSTM)是一種改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò)[7],具有較好的時間序列處理能力。睡眠是一個連續(xù)的過程,前后時刻的睡眠腦電信號相互聯(lián)系,應(yīng)綜合利用前向與后向的時序信息,因此采用BiLSTM,將兩個不同方向LSTM的向量拼接計算得到最終的輸出向量。BiLSTM輸出的向量再通過softmax分類器進(jìn)行二分類,識別受試者是否患有失眠障礙。
實(shí)驗(yàn)數(shù)據(jù)為ISRUC-Sleep公開數(shù)據(jù)集[8],數(shù)據(jù)來源于成人,包括健康受試者、睡眠障礙者和受睡眠藥物影響的受試者。數(shù)據(jù)集采集如圖2給出的6個電極C3、C4、F3、F4、O1、O2的腦電信號,參考電極為A1、A2,記錄速率為200 Hz。每個記錄都是從科英布拉大學(xué)附屬醫(yī)院的睡眠醫(yī)學(xué)中心(Sleep Medicine Centre of the Hospital of Coimbra University)獲取的PSG記錄中隨機(jī)選取的,均由兩位專家人工標(biāo)注睡眠分期。針對每個記錄,提供睡眠障礙、所用藥物及受試者性別、年齡等相關(guān)補(bǔ)充信息。
為排除藥物的影響,選取未服用藥物的睡眠障礙患者中,PSG表現(xiàn)為睡眠潛伏期延長、睡眠效率下降、客觀睡眠時間縮短、非快速眼動1期比例增加、慢波睡眠比例下降的失眠障礙患者PSG記錄。按照臨床標(biāo)準(zhǔn),將PSG每30 s劃分為一個樣本,最終數(shù)據(jù)集為健康對照者9 618個樣本(10人),失眠障礙患者6 735個樣本(7人)。
本文采用的ISRUC-Sleep數(shù)據(jù)集中失眠障礙患者與健康對照者的數(shù)量有較大差距,為改善數(shù)據(jù)不均衡,采用基于邊界的SMOTE(Borderline-SMOTE)算法[9]。具體過程如圖5所示。
圖5 Borderline-SMOTE算法流程Figure 5 Borderline-SMOTE algorithm
計算每個少數(shù)類樣本Vi的k近鄰樣本集,分析該樣本集中多數(shù)類的比例,判斷Vi是否為邊界樣本,若是邊界樣本則對Vi進(jìn)行過采樣,生成新的少數(shù)類樣本:
Vnew=Vi+rand(0,1)×|Vj-Vi|
(5)
式中:j=1,2,…,n,n表示根據(jù)采樣倍率隨機(jī)選取的樣本數(shù);rand(0,1)表示[0,1]的隨機(jī)數(shù)。實(shí)驗(yàn)設(shè)置參數(shù)k=4,n=4。
將2.2節(jié)中數(shù)據(jù)均衡后的數(shù)據(jù)集按照6∶2∶2的比例隨機(jī)設(shè)置訓(xùn)練集、驗(yàn)證集和測試集,具體如表1所示。選用準(zhǔn)確率(accuracy)作為模型評價指標(biāo):
(6)
式中:TP為真陽性(true positive);TN為真陰性(true negative);FP為假陽性(false positive);FN為假陰性(false positive)。
使用1.3節(jié)中構(gòu)建的CNN-BiLSTM模型,為防止過擬合現(xiàn)象,提高模型的泛化能力,添加了Dropout策略[10],每次迭代時以概率P隨機(jī)舍棄神經(jīng)元,一定程度上達(dá)到了正則化的效果。實(shí)驗(yàn)參數(shù)見表2。
表2 實(shí)驗(yàn)參數(shù)Table 2 Parameters of experiment
訓(xùn)練100個epoch,得到的acc-loss曲線如圖6所示,訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率最終收斂于93%左右。
圖6 模型訓(xùn)練acc-loss曲線Figure 6 Model training acc-loss curve
為更好地分析本文算法的有效性,設(shè)置以下對比實(shí)驗(yàn)。
(1) 對比實(shí)驗(yàn)1:基于文獻(xiàn)[2]的方法,第一階段進(jìn)行睡眠分期,第二階段進(jìn)行失眠障礙識別。兩次分類過程均提取均值、方差、峰度、偏度、近似熵、絕對功率作為特征,均使用隨機(jī)森林模型,參數(shù)設(shè)置200棵樹。驗(yàn)證本文算法與兩階段方法相比直接檢測失眠障礙的可行性。
(2) 對比實(shí)驗(yàn)2:構(gòu)建特征矩陣時忽略導(dǎo)聯(lián)的位置分布,將6個導(dǎo)聯(lián)的功率特征矩陣隨意進(jìn)行拼接,輸入到CNN-BiLSTM模型進(jìn)行失眠障礙的檢測。驗(yàn)證EEG信號的空間特征對本文算法的有效性。
(3) 對比實(shí)驗(yàn)3:將1.2節(jié)中構(gòu)造的特征矩陣輸入CNN中進(jìn)行失眠障礙的檢測,不添加后續(xù)BiLSTM結(jié)構(gòu)。驗(yàn)證睡眠過程中EEG信號的時序依賴關(guān)系對本文算法的有效性。
在同一測試集上進(jìn)行實(shí)驗(yàn),結(jié)果如表3所示。
表3 實(shí)驗(yàn)結(jié)果Table 3 Results of experiment
對比以上實(shí)驗(yàn)結(jié)果,得出以下結(jié)論。
(1) 本文算法的準(zhǔn)確率略高于對比實(shí)驗(yàn)1,表明本文算法與兩階段算法相比,可以直接檢測失眠障礙。
(2) 本文算法的準(zhǔn)確率高于對比實(shí)驗(yàn)2,表明EEG信號在全腦分布的空間特征對算法設(shè)計是有效的,準(zhǔn)確率提升了2.84%。
(3) 本文算法的準(zhǔn)確率高于對比實(shí)驗(yàn)3,表明EEG信號的前后時序依賴關(guān)系對算法設(shè)計是有效的,準(zhǔn)確率提升了5.01%。
目前自動失眠障礙檢測需要先進(jìn)行睡眠分期,再進(jìn)行失眠障礙識別,缺乏高效的模型。本文基于睡眠EEG信號的時空模式,提出基于EEG信號時空特征的CNN-BiLSTM失眠障礙檢測算法。該算法充分利用了EEG信號在全腦分布的空間特征,同時考慮了不同睡眠階段之間EEG信號的時序依賴關(guān)系,通過輸入睡眠腦電信號直接高效地檢測失眠障礙,在測試集上有良好的表現(xiàn),準(zhǔn)確率為93.25%。希望本文的算法可以輔助醫(yī)生高效地進(jìn)行失眠障礙的診斷,幫助廣大失眠障礙患者盡早得到治療。