睡眠分期是研究睡眠疾病的重要途徑,近年來受到了廣泛關注。傳統手工標記方法與傳統機器學習算法存在效率低下、泛化性不足的問題,雖然近期流行的深度學習網絡模型依靠其學習復雜特征的能力改善了睡眠分期結果,但仍存在著忽略片段內時序信息與通道相關性的問題。本文提出了一種混合注意力時序網絡,利用循環神經網絡取代較為傳統的卷積神經網絡,從時間角度提取多導睡眠圖的時序特征;然后采用片段內時序注意力與通道注意力機制,實現信號片段內時序特征融合和通道相關性特征融合;再基于循環神經網絡與片段間時序注意力機制,進一步實現信號片段間時序上下文特征融合;最終根據上述混合特征完成端到端自動睡眠分期。本文采用開源數據網站上包含多個多導睡眠圖的睡眠數據集進行對比實驗,實驗結果表明本文模型能夠優于 10 種典型基線模型,睡眠分期準確率分別可達到 0.801、0.801、0.717,平均 F1 分數可達到 0.752、0.728、0.700,驗證了本文模型的有效性。
引用本文: 金崢, 賈克斌, 袁野. 基于混合注意力時序網絡的睡眠分期算法研究. 生物醫學工程學雜志, 2021, 38(2): 241-248. doi: 10.7507/1001-5515.202008006 復制
引言
人的生命中有 1/3 的時間用于睡眠。近年來,由于生活壓力不斷增大,越來越多的人開始關注睡眠健康問題[1]。多導睡眠圖(polysomnography,PSG)是研究睡眠疾病的有效信息載體,其本質為多通道時序生物電信號,可反映出人體不同部位隨時間變化的體征信息。根據美國睡眠醫學會的睡眠分期準則[2],每 30 s 的 PSG 可按波形規律標記為清醒期(wake,W)、非快速眼動 1~3 期(non-rapid eye moment 1~3,NREM1~3)或快速眼動期(rapid eye moment,REM),準確地實現該過程是分析睡眠規律、診療睡眠疾病的前提[3]。正常人夜晚睡眠時間為 6~8 h,人工實現睡眠分期的工作量繁重。因此,利用計算機實現睡眠分期具有更廣闊的應用前景。
早期的睡眠分期算法主要為傳統機器學習算法,例如采用小波變換(wavelet transform,WT)等信號處理技術提取 PSG 片段的時頻特征或非線性特征,再結合支持向量機(support vector machine,SVM)實現睡眠分期[4-6]。這類方法提取的特征單一且耗時耗力,導致了泛化性不足、效率低下的問題。
隨著深度學習技術的興起,基于卷積神經網絡(convolutional neural networks,CNN)提取 PSG 片段內時域或時頻域高維非線性表征的方法[7-11]、基于循環神經網絡(recurrent neural network,RNN)或長短期記憶網絡(long short-term memory,LSTM)學習 PSG 片段間高維時序表征的方法相繼提出[12-15]。這些方法的網絡結構單一,無法同時考慮片段內和片段間的表征信息,存在信息丟失、準確率不高的問題。因此,有學者設計了采用 CNN 提取片段內表征、RNN 進一步提取片段間表征的方法[16-20],以改善睡眠分期結果。雖然 CNN 抓取局部特征的能力較強,但是本質上無法充分提取片段內關鍵的時序信息。Phan 等[21]考慮到了這一問題,利用門控循環單元網絡(gated recurrent unit,GRU)對短時傅里葉變換(short-time Fourier transform,STFT)后的時頻圖提取片段內時序表征,但其僅僅是將各個通道時頻圖進行堆疊,忽略了通道間相關性,并且隨著通道數的增加,可能會引發維度災難問題。
為解決上述問題,本文提出了一種混合注意力時序網絡(hybrid attention temporal sequential network,HATSN),利用 GRU 取代傳統的 CNN,從時間角度提取 STFT 時頻圖的時序表征,結合注意力機制先后從時間和通道兩個維度實現 PSG 片段內時序特征融合和通道相關性特征融合,采用 GRU 與時序注意力機制進一步融合出片段間時序上下文表征,旨在利用上述混合表征實現更高準確率與效率的自動睡眠分期。最終,本文在公開睡眠數據集上與 10 種典型基線模型對比實驗,以驗證本文模型的有效性。
綜上所述,本文將近年來流行的深度學習技術引入睡眠醫學領域,為充分挖掘 PSG 各個維度的關鍵信息提供了新思路,最大程度貼合實際的睡眠分期過程,改善分期效率與準確率,為將來人工智能與睡眠醫學領域的有效結合奠定了基礎。
1 HATSN 睡眠分期算法
本文算法的主體思路為:先對原始 PSG 進行 STFT;然后提取每個 PSG 片段內時序表征和通道相關性表征;再進一步提取各個片段間的時序上下文表征;最后利用混合高維表征實現端到端睡眠分期。具體框架如圖 1 所示,本節將從:① 輸入信號、② 信號預處理、③ 片段內時序網絡、④ 片段間時序網絡、⑤ 睡眠階段分類,共 5 部分來介紹本文算法。

1.1 模型輸入信號
在人工標定某一時刻的片段時,專家會同時考慮當前時刻與前后若干個 PSG 片段的波形信息。因此,模型輸入信號為連續多個 30 s 片段組成的序列{X1,···,Xt,···,XL},如圖 1 內①號虛線框所示,其中序列長度為 L,當前時刻為 t。
1.2 信號預處理
有效的信號預處理能夠減弱噪聲干擾,本文采用 STFT 的方法,將信號從時域變換到特征鮮明的時頻域,如圖 1 內②號虛線框所示,圖中只畫出當前片段 的預處理流程,序列內其他片段的預處理以 ② 簡化表示。
具體而言,本文首先把 Xt 拆分為多個單通道信號序列,即 Xt = {,···,
,···,
}。對每個通道執行 STFT 并取其幅值,以某一通道
為例,變換過程如式(1)所示:
![]() |
其中, 表示二維時頻圖。
從物理角度上講,時頻圖每一列可視為一個時間點出現不同頻率的能量值,反映信號在時間軸上的頻率變化規律。由此,本文將每個通道的時頻圖在時間軸上拆分為多個列向量,生成頻率信息時間序列,以某一通道時頻圖 為例:
= {
,···,
}。
1.3 片段內時序網絡
為提取 1.2 小節所述序列的時序表征,本文基于雙向 GRU 設計了片段內時序網絡[21],如圖 1 內③號虛線框所示(只展示 Xt 的提取過程,其余片段用③簡化表示)。以 對應的序列為例,將序列輸入雙向 GRU,計算過程如式(2)所示:
![]() |
其中, 代表 GRU 隱層向量。由于各個列向量的頻率信息量不同,本文采用時序注意力機制以融合出隱層向量序列的有效時序信息,計算過程如式(3)、式(4)所示:
![]() |
![]() |
其中, 代表
的時序注意力表征,αi 代表隱層向量
對應的注意力權重,Wα 和 bα 是可訓練的網絡參數。
人體各個部位的關聯性使得 PSG 所有通道的時序注意力表征也具有相關性。因此,本文加入了通道注意力機制,進一步融合所有通道的時序注意力表征(計算方式與式(3)、式(4)相同),生成 Xt 對應的片段內表征 dt。
1.4 片段間時序網絡
要實現對 Xt 的睡眠標定,需同時考慮當前片段和前后若干片段的片段內表征。因此,本文基于雙向 GRU 設計了片段間時序網絡,提取片段內表征序列 D = {d1,···,dt,···,dL}的時序上下文表征,如圖 1 內④號虛線框所示,過程與式(2)相同。得到所有片段的 GRU 隱層向量 后,再利用時序注意力機制融合除 Ht 之外的隱層向量(計算方式與式(3)、式(4)相同),生成上下文表征 Hcontext[22]。隨后,將其與當前時刻隱層向量 Ht 進一步融合,生成 Xt 對應的混合高維表征 Zt,計算方式如式(5)、式(6)所示:
![]() |
![]() |
其中,Rcontext 代表權重比例,、
和
是可訓練的網絡參數。
1.5 睡眠階段分類
將包含片段內時序與通道相關性信息、片段間時序上下文信息的混合表征 Zt 輸入 Softmax 分類器得到獨熱編碼(one-hot)預測標簽 ,實現睡眠分期,如圖 1 內⑤號虛線框所示,計算過程如式(7)所示:
![]() |
其中,Wz 和 bz 是可訓練的網絡參數。訓練過程的損失函數 J(·)采用交叉熵,如式(8)所示:
![]() |
其中,M 為序列數,L 為序列長度,yt 為獨熱編碼真實標簽。
2 實驗與結果對比
2.1 數據集
本文選取了 2 個公開睡眠數據集用于實驗對比,均來源于高權威開源生物醫學信號資源網站 PhysioNet(www.physionet.org),下面分別簡述 2 個數據集的相關信息。
睡眠集-歐洲數據格式(sleep-european data format,Sleep-EDF)擴展睡眠數據集(sleep-EDF database expanded,Sleep-EDFx)[23-24]:包含 197 個整夜 PSG,主要包括雙通道腦電(electroencephalogram,EEG)信號和單通道眼電(electrooculogram,EOG)信號,采樣率 100 Hz。數據集分為健康人的睡眠磁帶數據(sleep cassette,SC)與輕度入睡障礙患者的睡眠遙感數據(sleep telemetry,ST),去除損壞數據記錄與含有未標注數據記錄后,最終選取 SC 部分 40 個整夜 PSG,ST 部分 15 個整夜 PSG。
圣文森特大學醫院/都柏林大學睡眠呼吸暫停癥數據集(St. Vincent’s University Hospital / University College Dublin sleep apnea database,UCD)[24]:包含 25 個患者的整夜 PSG,主要包括雙通道 EEG 信號、雙通道 EOG 信號、單通道肌電(electromyogram,EMG)信號、單通道心電(electrocardiogram,ECG)信號等,采樣率包括 128 Hz、64 Hz 等,去除含有未標注數據記錄后,最終選取 20 個整夜 PSG。
2.2 實現過程
本文所有實驗基于計算機編程語言 Python 3.6.9(Python Software Foundation,美國)和深度學習框架 PyTorch 1.1.0(Facebook Inc.,美國)實現,采用英偉達顯卡(GeForce RTX 2080,NVIDIA Corp.,美國)進行模型訓練,優化器采用自適應矩估計算法(adaptive moment estimation,ADAM),學習率為 0.001,缺失率(dropout)為 0.5。實驗采用 5 折交叉驗證,其中 Sleep-EDFx SC 的訓練、驗證、測試比例為 8∶1∶1,Sleep-EDFx ST 和 UCD 的比例為 3∶1∶1。迭代次數為 50,訓練集批量大小為 64。片段內與片段間 GRU 隱層單元維度分別為 128 和 256,網絡層數為 2。STFT 窗函數為漢寧窗,窗長 1 s,重疊比例 0.5,序列長度為 5。
2.3 評價指標
本文實驗的評價指標包括準確率(accuracy,Acc)、F1 分數(marco F1-score,MF1)、受試者操作特性曲線下面積(area under of receiver operating characteristic curve,AUC-ROC)和查準率-查全率曲線下面積(area under of precision-recall curve,AUC-PR)。
2.4 基線模型
本文的基線模型包括 6 種相關論文模型和 4 種本文模型變體,為了保證實驗有效性與參考價值,所有基線均在本文實驗環境下進行復現:
睡眠特征網絡(SleepFeatureNet)[19]:利用類似 GoogleNet 的網絡模塊提取單通道 EEG 信號的特征,進一步采用 GRU 提取片段內時序特征,實現睡眠分期。
多域混合神經網絡(Multi-Domain-HybridNN)[17]:將 EEG 信號分割為 30 段,利用 CNN 提取每段的時域和頻域特征,再基于雙向 LSTM 提取片段內時序特征,實現睡眠分期。
多層次神經網絡(HierarchicalNN)[20]:利用 3 種尺度的 CNN 提取信號片段內特征,再通過雙向 LSTM 與注意力機制提取片段間時序特征,實現睡眠分期。
MC 睡眠網絡(MC-SleepNet)[16]:利用 CNN 提取片段內 EEG 信號和 EMG 信號局部特征,進而采用雙向 LSTM 提取片段間時序特征,實現睡眠分期。
STFT-LSTM[15]:對每個通道進行 STFT,利用 LSTM 提取拼接后時頻圖的時序特征,實現睡眠分期。
序列睡眠網絡(SeqSleepNet)[21]:對各個通道進行 STFT 并將時頻圖拼接,利用片段內雙向 GRU 與注意力機制、片段間雙向 GRU 先后提取片段內、片段間時序特征,實現睡眠分期。
STFT-CNN:利用 4 層卷積提取片段內多通道時頻圖特征,實現睡眠分期。
STFT-GRU注意力網絡(STFT-GRU attention network,STFT-GRUatt):本文模型刪除片段內通道注意力機制與片段間特征提取操作。
片段內時序網絡(intra-temporal network,Intra-TN):本文模型刪除片段間特征提取操作。
Intra-TN + 片段間 GRU(Intra-TN-Inter-GRU):本文模型只刪除片段間時序注意力機制。
2.5 實驗結果與分析
本文模型與 2.4 小節所述 10 種基線模型的實驗對比結果如表 1~表 3 所示,其中 SleepFeatureNet 和 Multi-Domain-HybridNN 的 Acc 值等指標較低,這是因為二者只提取了 PSG 信號片段內特征。而 HierarchicalNN 和 MC-SleepNet 模型結果相對較好,因為二者的結構采用片段內 CNN+片段間 RNN,體現出片段間時序特征的重要性,但是 CNN 仍存在時序信息提取不充分的局限性。此外,STFT-LSTM 和 SeqSleepNet 基于 RNN 結構充分提取了時頻圖中的時序特征,對比文獻[16-17, 19-20]中提及的 4 種模型效果更優異,但仍忽略了通道相關性特征。HATSN 在 2.1 小節所述數據集上的混淆矩陣如圖 2 所示,可以看出 REM、NREM2 等睡眠階段的 Acc 指標較高,結合表中結果可得,本文模型采用的片段內雙向 GRU 與時序注意力機制、通道注意力機制、片段間雙向 GRU 與時序注意力機制,能夠分別提取出關鍵的片段內時序信息、通道相關性信息和片段間時序上下文信息,從而取得相較于上述 6 種模型更好的實驗結果。




從 4 種模型變體結果可看出,STFT-GRUatt 比 STFT-CNN 的 Acc 值指標更高,說明 GRU 在時頻域提取的時序信息比 CNN 提取的局部圖像信息更為有效。Intra-TN 比 STFT-GRUatt 實驗效果更好,說明通道注意力機制能夠有效提取出通道相關性特征。Intra-TN-Inter-GRU 進一步提升了睡眠分期效果,體現出片段間時序特征的重要性。而本文模型在加入片段間注意力機制之后,分類指標 Acc 值達到最高,分別為 0.801、0.801、0.717。
對比所有數據集的實驗結果,由于 UCD 數據集采樣頻率更高,通道數更多,因此數據更為復雜。所以,本文模型在 UCD 數據集上的睡眠分期結果僅達到 0.717。此外,UCD 數據集采集于睡眠疾病患者,而 Sleep-EDFx SC 和 ST 數據集則采集于正常人和輕微入睡障礙患者,這反映出對睡眠疾病患者進行睡眠分期的難度更大。
2.6 靈敏度分析
不同 STFT 窗函數(漢明窗、漢寧窗、布萊克曼窗)在本文使用數據集上的睡眠分期 Acc 值如表 4 所示,其中漢寧窗的 Acc 指標均高于其他窗函數,分別達到 0.788、0.790 和 0.708,說明利用漢寧窗進行 STFT 能夠有效減弱非平穩 PSG 中的時域噪聲干擾,提升模型性能。

漢寧窗的 3 種窗長(1 s、2 s、3 s)實驗對比情況如表 5 所示,當窗長為 1 s 時,在 SC 和 ST 數據集上的 Acc 指標能超過 0.800。這表明更短的窗長能提升時頻圖的時間分辨率,獲得更細節的頻率信息以改善睡眠分期結果。

2.7 結果可視化
本文選取了 Sleep-EDFx SC 數據集中某一個 REM 期間的 PSG 片段進行可視化,3 個通道時域信號、時頻圖和對應的片段內時序注意力權重如圖 3 所示。從時域信號可看出,最后 5 s 內,2 個 EEG 信號通道出現小幅波動,EOG 信號通道出現較大波動,說明出現快速眼球運動。由時頻圖可得,EEG 信號的頻譜能量主要體現在 θ 波(3~7 Hz)和 α 波(1~2 Hz),EOG 信號的快速眼動波動也在對應時刻體現出較高能量值。由權重圖可以看出,本文模型有效增強了高頻時刻的權重,表明 EEG(Pz-Oz)信號和 EOG 信號通道信息更豐富。結合如圖 3 底部所示的通道權重可得,上述 2 個通道被賦予更高的權重,證明了本文模型特征提取的有效性。

3 總結
睡眠分期是研究睡眠疾病的前提,醫生可利用分期結果有效分析睡眠規律。本文針對自動睡眠分期問題提出了 HATSN 模型,利用 GRU 與注意力機制替代傳統 CNN 來提取片段內時序信息,考慮了前人忽略的通道間相關性信息,再結合片段間上下文時序信息實現端到端的睡眠分期。本文模型在公開睡眠數據集上對比了 10 種基線模型,均取得最高的睡眠分期 Acc,分別達到 0.801、0.801、0.717。未來的研究方向可以從時間角度繼續展開,由于在人工睡眠分期過程中,醫生需要考慮前后較少數量或較多數量的片段信息,而目前大多數模型只能提取單一尺度序列信息。因此,同時考慮多尺度序列信息以提取出更豐富的片段間上下文時序特征,是提升模型泛化性、改善睡眠分期準確率的關鍵。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
引言
人的生命中有 1/3 的時間用于睡眠。近年來,由于生活壓力不斷增大,越來越多的人開始關注睡眠健康問題[1]。多導睡眠圖(polysomnography,PSG)是研究睡眠疾病的有效信息載體,其本質為多通道時序生物電信號,可反映出人體不同部位隨時間變化的體征信息。根據美國睡眠醫學會的睡眠分期準則[2],每 30 s 的 PSG 可按波形規律標記為清醒期(wake,W)、非快速眼動 1~3 期(non-rapid eye moment 1~3,NREM1~3)或快速眼動期(rapid eye moment,REM),準確地實現該過程是分析睡眠規律、診療睡眠疾病的前提[3]。正常人夜晚睡眠時間為 6~8 h,人工實現睡眠分期的工作量繁重。因此,利用計算機實現睡眠分期具有更廣闊的應用前景。
早期的睡眠分期算法主要為傳統機器學習算法,例如采用小波變換(wavelet transform,WT)等信號處理技術提取 PSG 片段的時頻特征或非線性特征,再結合支持向量機(support vector machine,SVM)實現睡眠分期[4-6]。這類方法提取的特征單一且耗時耗力,導致了泛化性不足、效率低下的問題。
隨著深度學習技術的興起,基于卷積神經網絡(convolutional neural networks,CNN)提取 PSG 片段內時域或時頻域高維非線性表征的方法[7-11]、基于循環神經網絡(recurrent neural network,RNN)或長短期記憶網絡(long short-term memory,LSTM)學習 PSG 片段間高維時序表征的方法相繼提出[12-15]。這些方法的網絡結構單一,無法同時考慮片段內和片段間的表征信息,存在信息丟失、準確率不高的問題。因此,有學者設計了采用 CNN 提取片段內表征、RNN 進一步提取片段間表征的方法[16-20],以改善睡眠分期結果。雖然 CNN 抓取局部特征的能力較強,但是本質上無法充分提取片段內關鍵的時序信息。Phan 等[21]考慮到了這一問題,利用門控循環單元網絡(gated recurrent unit,GRU)對短時傅里葉變換(short-time Fourier transform,STFT)后的時頻圖提取片段內時序表征,但其僅僅是將各個通道時頻圖進行堆疊,忽略了通道間相關性,并且隨著通道數的增加,可能會引發維度災難問題。
為解決上述問題,本文提出了一種混合注意力時序網絡(hybrid attention temporal sequential network,HATSN),利用 GRU 取代傳統的 CNN,從時間角度提取 STFT 時頻圖的時序表征,結合注意力機制先后從時間和通道兩個維度實現 PSG 片段內時序特征融合和通道相關性特征融合,采用 GRU 與時序注意力機制進一步融合出片段間時序上下文表征,旨在利用上述混合表征實現更高準確率與效率的自動睡眠分期。最終,本文在公開睡眠數據集上與 10 種典型基線模型對比實驗,以驗證本文模型的有效性。
綜上所述,本文將近年來流行的深度學習技術引入睡眠醫學領域,為充分挖掘 PSG 各個維度的關鍵信息提供了新思路,最大程度貼合實際的睡眠分期過程,改善分期效率與準確率,為將來人工智能與睡眠醫學領域的有效結合奠定了基礎。
1 HATSN 睡眠分期算法
本文算法的主體思路為:先對原始 PSG 進行 STFT;然后提取每個 PSG 片段內時序表征和通道相關性表征;再進一步提取各個片段間的時序上下文表征;最后利用混合高維表征實現端到端睡眠分期。具體框架如圖 1 所示,本節將從:① 輸入信號、② 信號預處理、③ 片段內時序網絡、④ 片段間時序網絡、⑤ 睡眠階段分類,共 5 部分來介紹本文算法。

1.1 模型輸入信號
在人工標定某一時刻的片段時,專家會同時考慮當前時刻與前后若干個 PSG 片段的波形信息。因此,模型輸入信號為連續多個 30 s 片段組成的序列{X1,···,Xt,···,XL},如圖 1 內①號虛線框所示,其中序列長度為 L,當前時刻為 t。
1.2 信號預處理
有效的信號預處理能夠減弱噪聲干擾,本文采用 STFT 的方法,將信號從時域變換到特征鮮明的時頻域,如圖 1 內②號虛線框所示,圖中只畫出當前片段 的預處理流程,序列內其他片段的預處理以 ② 簡化表示。
具體而言,本文首先把 Xt 拆分為多個單通道信號序列,即 Xt = {,···,
,···,
}。對每個通道執行 STFT 并取其幅值,以某一通道
為例,變換過程如式(1)所示:
![]() |
其中, 表示二維時頻圖。
從物理角度上講,時頻圖每一列可視為一個時間點出現不同頻率的能量值,反映信號在時間軸上的頻率變化規律。由此,本文將每個通道的時頻圖在時間軸上拆分為多個列向量,生成頻率信息時間序列,以某一通道時頻圖 為例:
= {
,···,
}。
1.3 片段內時序網絡
為提取 1.2 小節所述序列的時序表征,本文基于雙向 GRU 設計了片段內時序網絡[21],如圖 1 內③號虛線框所示(只展示 Xt 的提取過程,其余片段用③簡化表示)。以 對應的序列為例,將序列輸入雙向 GRU,計算過程如式(2)所示:
![]() |
其中, 代表 GRU 隱層向量。由于各個列向量的頻率信息量不同,本文采用時序注意力機制以融合出隱層向量序列的有效時序信息,計算過程如式(3)、式(4)所示:
![]() |
![]() |
其中, 代表
的時序注意力表征,αi 代表隱層向量
對應的注意力權重,Wα 和 bα 是可訓練的網絡參數。
人體各個部位的關聯性使得 PSG 所有通道的時序注意力表征也具有相關性。因此,本文加入了通道注意力機制,進一步融合所有通道的時序注意力表征(計算方式與式(3)、式(4)相同),生成 Xt 對應的片段內表征 dt。
1.4 片段間時序網絡
要實現對 Xt 的睡眠標定,需同時考慮當前片段和前后若干片段的片段內表征。因此,本文基于雙向 GRU 設計了片段間時序網絡,提取片段內表征序列 D = {d1,···,dt,···,dL}的時序上下文表征,如圖 1 內④號虛線框所示,過程與式(2)相同。得到所有片段的 GRU 隱層向量 后,再利用時序注意力機制融合除 Ht 之外的隱層向量(計算方式與式(3)、式(4)相同),生成上下文表征 Hcontext[22]。隨后,將其與當前時刻隱層向量 Ht 進一步融合,生成 Xt 對應的混合高維表征 Zt,計算方式如式(5)、式(6)所示:
![]() |
![]() |
其中,Rcontext 代表權重比例,、
和
是可訓練的網絡參數。
1.5 睡眠階段分類
將包含片段內時序與通道相關性信息、片段間時序上下文信息的混合表征 Zt 輸入 Softmax 分類器得到獨熱編碼(one-hot)預測標簽 ,實現睡眠分期,如圖 1 內⑤號虛線框所示,計算過程如式(7)所示:
![]() |
其中,Wz 和 bz 是可訓練的網絡參數。訓練過程的損失函數 J(·)采用交叉熵,如式(8)所示:
![]() |
其中,M 為序列數,L 為序列長度,yt 為獨熱編碼真實標簽。
2 實驗與結果對比
2.1 數據集
本文選取了 2 個公開睡眠數據集用于實驗對比,均來源于高權威開源生物醫學信號資源網站 PhysioNet(www.physionet.org),下面分別簡述 2 個數據集的相關信息。
睡眠集-歐洲數據格式(sleep-european data format,Sleep-EDF)擴展睡眠數據集(sleep-EDF database expanded,Sleep-EDFx)[23-24]:包含 197 個整夜 PSG,主要包括雙通道腦電(electroencephalogram,EEG)信號和單通道眼電(electrooculogram,EOG)信號,采樣率 100 Hz。數據集分為健康人的睡眠磁帶數據(sleep cassette,SC)與輕度入睡障礙患者的睡眠遙感數據(sleep telemetry,ST),去除損壞數據記錄與含有未標注數據記錄后,最終選取 SC 部分 40 個整夜 PSG,ST 部分 15 個整夜 PSG。
圣文森特大學醫院/都柏林大學睡眠呼吸暫停癥數據集(St. Vincent’s University Hospital / University College Dublin sleep apnea database,UCD)[24]:包含 25 個患者的整夜 PSG,主要包括雙通道 EEG 信號、雙通道 EOG 信號、單通道肌電(electromyogram,EMG)信號、單通道心電(electrocardiogram,ECG)信號等,采樣率包括 128 Hz、64 Hz 等,去除含有未標注數據記錄后,最終選取 20 個整夜 PSG。
2.2 實現過程
本文所有實驗基于計算機編程語言 Python 3.6.9(Python Software Foundation,美國)和深度學習框架 PyTorch 1.1.0(Facebook Inc.,美國)實現,采用英偉達顯卡(GeForce RTX 2080,NVIDIA Corp.,美國)進行模型訓練,優化器采用自適應矩估計算法(adaptive moment estimation,ADAM),學習率為 0.001,缺失率(dropout)為 0.5。實驗采用 5 折交叉驗證,其中 Sleep-EDFx SC 的訓練、驗證、測試比例為 8∶1∶1,Sleep-EDFx ST 和 UCD 的比例為 3∶1∶1。迭代次數為 50,訓練集批量大小為 64。片段內與片段間 GRU 隱層單元維度分別為 128 和 256,網絡層數為 2。STFT 窗函數為漢寧窗,窗長 1 s,重疊比例 0.5,序列長度為 5。
2.3 評價指標
本文實驗的評價指標包括準確率(accuracy,Acc)、F1 分數(marco F1-score,MF1)、受試者操作特性曲線下面積(area under of receiver operating characteristic curve,AUC-ROC)和查準率-查全率曲線下面積(area under of precision-recall curve,AUC-PR)。
2.4 基線模型
本文的基線模型包括 6 種相關論文模型和 4 種本文模型變體,為了保證實驗有效性與參考價值,所有基線均在本文實驗環境下進行復現:
睡眠特征網絡(SleepFeatureNet)[19]:利用類似 GoogleNet 的網絡模塊提取單通道 EEG 信號的特征,進一步采用 GRU 提取片段內時序特征,實現睡眠分期。
多域混合神經網絡(Multi-Domain-HybridNN)[17]:將 EEG 信號分割為 30 段,利用 CNN 提取每段的時域和頻域特征,再基于雙向 LSTM 提取片段內時序特征,實現睡眠分期。
多層次神經網絡(HierarchicalNN)[20]:利用 3 種尺度的 CNN 提取信號片段內特征,再通過雙向 LSTM 與注意力機制提取片段間時序特征,實現睡眠分期。
MC 睡眠網絡(MC-SleepNet)[16]:利用 CNN 提取片段內 EEG 信號和 EMG 信號局部特征,進而采用雙向 LSTM 提取片段間時序特征,實現睡眠分期。
STFT-LSTM[15]:對每個通道進行 STFT,利用 LSTM 提取拼接后時頻圖的時序特征,實現睡眠分期。
序列睡眠網絡(SeqSleepNet)[21]:對各個通道進行 STFT 并將時頻圖拼接,利用片段內雙向 GRU 與注意力機制、片段間雙向 GRU 先后提取片段內、片段間時序特征,實現睡眠分期。
STFT-CNN:利用 4 層卷積提取片段內多通道時頻圖特征,實現睡眠分期。
STFT-GRU注意力網絡(STFT-GRU attention network,STFT-GRUatt):本文模型刪除片段內通道注意力機制與片段間特征提取操作。
片段內時序網絡(intra-temporal network,Intra-TN):本文模型刪除片段間特征提取操作。
Intra-TN + 片段間 GRU(Intra-TN-Inter-GRU):本文模型只刪除片段間時序注意力機制。
2.5 實驗結果與分析
本文模型與 2.4 小節所述 10 種基線模型的實驗對比結果如表 1~表 3 所示,其中 SleepFeatureNet 和 Multi-Domain-HybridNN 的 Acc 值等指標較低,這是因為二者只提取了 PSG 信號片段內特征。而 HierarchicalNN 和 MC-SleepNet 模型結果相對較好,因為二者的結構采用片段內 CNN+片段間 RNN,體現出片段間時序特征的重要性,但是 CNN 仍存在時序信息提取不充分的局限性。此外,STFT-LSTM 和 SeqSleepNet 基于 RNN 結構充分提取了時頻圖中的時序特征,對比文獻[16-17, 19-20]中提及的 4 種模型效果更優異,但仍忽略了通道相關性特征。HATSN 在 2.1 小節所述數據集上的混淆矩陣如圖 2 所示,可以看出 REM、NREM2 等睡眠階段的 Acc 指標較高,結合表中結果可得,本文模型采用的片段內雙向 GRU 與時序注意力機制、通道注意力機制、片段間雙向 GRU 與時序注意力機制,能夠分別提取出關鍵的片段內時序信息、通道相關性信息和片段間時序上下文信息,從而取得相較于上述 6 種模型更好的實驗結果。




從 4 種模型變體結果可看出,STFT-GRUatt 比 STFT-CNN 的 Acc 值指標更高,說明 GRU 在時頻域提取的時序信息比 CNN 提取的局部圖像信息更為有效。Intra-TN 比 STFT-GRUatt 實驗效果更好,說明通道注意力機制能夠有效提取出通道相關性特征。Intra-TN-Inter-GRU 進一步提升了睡眠分期效果,體現出片段間時序特征的重要性。而本文模型在加入片段間注意力機制之后,分類指標 Acc 值達到最高,分別為 0.801、0.801、0.717。
對比所有數據集的實驗結果,由于 UCD 數據集采樣頻率更高,通道數更多,因此數據更為復雜。所以,本文模型在 UCD 數據集上的睡眠分期結果僅達到 0.717。此外,UCD 數據集采集于睡眠疾病患者,而 Sleep-EDFx SC 和 ST 數據集則采集于正常人和輕微入睡障礙患者,這反映出對睡眠疾病患者進行睡眠分期的難度更大。
2.6 靈敏度分析
不同 STFT 窗函數(漢明窗、漢寧窗、布萊克曼窗)在本文使用數據集上的睡眠分期 Acc 值如表 4 所示,其中漢寧窗的 Acc 指標均高于其他窗函數,分別達到 0.788、0.790 和 0.708,說明利用漢寧窗進行 STFT 能夠有效減弱非平穩 PSG 中的時域噪聲干擾,提升模型性能。

漢寧窗的 3 種窗長(1 s、2 s、3 s)實驗對比情況如表 5 所示,當窗長為 1 s 時,在 SC 和 ST 數據集上的 Acc 指標能超過 0.800。這表明更短的窗長能提升時頻圖的時間分辨率,獲得更細節的頻率信息以改善睡眠分期結果。

2.7 結果可視化
本文選取了 Sleep-EDFx SC 數據集中某一個 REM 期間的 PSG 片段進行可視化,3 個通道時域信號、時頻圖和對應的片段內時序注意力權重如圖 3 所示。從時域信號可看出,最后 5 s 內,2 個 EEG 信號通道出現小幅波動,EOG 信號通道出現較大波動,說明出現快速眼球運動。由時頻圖可得,EEG 信號的頻譜能量主要體現在 θ 波(3~7 Hz)和 α 波(1~2 Hz),EOG 信號的快速眼動波動也在對應時刻體現出較高能量值。由權重圖可以看出,本文模型有效增強了高頻時刻的權重,表明 EEG(Pz-Oz)信號和 EOG 信號通道信息更豐富。結合如圖 3 底部所示的通道權重可得,上述 2 個通道被賦予更高的權重,證明了本文模型特征提取的有效性。

3 總結
睡眠分期是研究睡眠疾病的前提,醫生可利用分期結果有效分析睡眠規律。本文針對自動睡眠分期問題提出了 HATSN 模型,利用 GRU 與注意力機制替代傳統 CNN 來提取片段內時序信息,考慮了前人忽略的通道間相關性信息,再結合片段間上下文時序信息實現端到端的睡眠分期。本文模型在公開睡眠數據集上對比了 10 種基線模型,均取得最高的睡眠分期 Acc,分別達到 0.801、0.801、0.717。未來的研究方向可以從時間角度繼續展開,由于在人工睡眠分期過程中,醫生需要考慮前后較少數量或較多數量的片段信息,而目前大多數模型只能提取單一尺度序列信息。因此,同時考慮多尺度序列信息以提取出更豐富的片段間上下文時序特征,是提升模型泛化性、改善睡眠分期準確率的關鍵。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。