關鍵詞:腦電信號;睡眠分期;空洞卷積;類別失衡;焦變函數
0引言
睡眠占據了人一生的1/3,現代生活中的睡眠質量在一定程度上反映了人體的健康狀況,研究發(fā)現,睡眠階段之間的轉換遵循一定的規(guī)律。當人處于睡眠狀態(tài)時,一些清醒時不易察覺的腦部疾病可以通過睡眠階段轉換的方式觀察得到。通過對睡眠腦電信號的處理和分析,了解睡眠過程中各睡眠階段之間轉換的周期性,對于更客觀、準確地評估睡眠狀態(tài)、有效控制疾病具有重要意義。
多導睡眠圖(Polysomnography,PSG)記錄來自身體各個部位的電信號,包括腦電圖(Electroen-cephalogram,EEG)、肌電圖(Electromyography,EMG)、眼電圖(Electrooculogram,EOG)和心電圖(Electrocardiogram,ECG)。在以往的研究中,通常將30s的PSG信號劃分為一個片段,由睡眠專家根據睡眠分期標準將該片段進行階段標定。對于一晚上的數據,往往需要2~3名醫(yī)生花費數小時進行分類,且分類準確率僅為83%。另外,PSG監(jiān)測設備體積大,測量參數多,導聯(lián)方法復雜。在監(jiān)測期間患者受到很大影響。會感應出多種干擾信號,監(jiān)控周期長且一次只能監(jiān)控一個對象,監(jiān)控效率低。
事實上,現在大多數的研究都是基于PSG信號,通過提取時域和頻域特征,處理睡眠分期任務。在過去十年中,傳統(tǒng)的機器學習方法如Tsinalis等通過僅分析原始信號的時頻域特征實現了78.9%的分類精度。借助支持向量機、隨機森林等機器學習方法也達到了不錯的性能。但機器學習的算法性能很大程度上取決于特征工程的選擇是否合理,這增加了實際應用的難度。隨著深度學習的廣泛應用,處理睡眠分期任務的方法也變得多樣。用于解決睡眠分期的主流網絡大多基于遞歸神經網絡(Recurrent Neural Network.RNN)和卷積神經網絡(Convolutional Neural Network,CNN),其中CNN通常用于捕捉腦電信號的波形特征,RNN用于建模腦電信號的時序的動態(tài)變化。在RNN中,有2種典型的結構常被用于睡眠分期任務。例如,在Deep-SleepNet中,使用雙向長短期記憶(Bi-directionalLong Short Term Memory,Bi-LSTM)神經網絡和快捷連接結構,在SeqSleepNet中,使用雙向門循環(huán)單元(Bi-directional Gate Recurrent Unit, Bi-GRU)。然而,在RNN的訓練過程中,不可避免地會出現梯度消失、梯度爆炸等問題,導致深度RNN模型難以訓練,實際應用較為困難。
與RNN相比,CNN在并行計算方面具有更高的性能。但是,使用單通道EEG信號對于睡眠分期任務來說并不理想。Joint-PreCNN引入了聯(lián)合分類和預測公式,基于睡眠周期依賴性,聯(lián)合分類輸入周期并預測它們在上下文輸出中的相鄰標簽,在數據集Sleep-EDF中實現了79.8%的準確率。Multi-DeepCNN設計了一個深度CNN,驗證了網絡性能增益主要依賴于網絡深度,而不是使用多通道信息,僅使用EEG信號使模型性能達到了81.0%的準確率。NAS-Sleep使用神經架構搜索通過綜合使用擴張卷積和殘差連接等基本模塊來實現了82.7%的準確率。U-Net在圖像分割領域使用下采樣集中信息,跳躍連接來融合不同層次的特征以獲得更好的分割效果。參考U-Net架構,U-time使用編解碼結構提取經過有限長沖擊響應濾波器處理后的PSG信號,將任意長度的順序輸入映射到類別標簽序列,最終達到79%的準確率。上述研究表明,睡眠分期任務可以使用全卷積網絡來實現,但還有很大的改進空間。
除此之外,睡眠數據各個類別之間數量差異很大。通常,一整夜的睡眠包括N1、N2、N3和R四個睡眠階段,分別占5%、50%、20%~25%和20%~25%。由于CNN在進行睡眠分期任務時,當數據集中某個類別標簽的樣本數量遠高于其他類別時,模型的分類結果會偏向于樣本數量較多的類別,增加了睡眠分期任務的難度。因此,有必要設計使用單個腦電信號的自動睡眠分期網絡,以緩解類別不均衡問題提高睡眠分期精確度,
總結前期工作,存在3個亟待解決的問題:①RNN在訓練過程中會出現梯度消失、梯度爆炸等問題;②原始數據類別不平衡問題,導致N1階段的準確率低;③復雜的網絡結構帶來精確度增加的同時也加大模型訓練的難度。為了解決上述問題,提出了基于單通道EEG信號的上下文編碼輕量化模型,稱為CL-Sleep,用于自動睡眠階段分期??偟膩碚f,提出的方法的主要貢獻可以總結如下。
①以U型全卷積網絡為主體,采用跨通道融合增加通道連接,構建端到端的自動分期模型。構建并行擴張融合(Parallel Expansion Fusion,PEF)模塊,使用并行空洞卷積提取復雜的腦電信號特征。
②放棄傳統(tǒng)的RNN結構,使用多尺度時序提?。∕ultiscale Temporal Extraction,MTE)模塊來學習睡眠轉換規(guī)則。同時使用瓶頸結構(Bottleneck)減少模型的參數數量。
③使用焦變損失函數減少類別不平衡的影響。所提出的模型對原始單通道EEG數據進行端到端學習。實驗結果表明,CL-Sleep模型在Sleep-EDF數據集上的表現優(yōu)于其他先進的模型,有效緩解了睡眠分期中類別不平衡的問題。
1基于CL-Sleep網絡的睡眠分期模型總體框架
為了解決收集PSG信號困難、RNN不利于實際應用、類別不平衡和模型參數量大等問題,本文提出的CL-Sleep模型如圖1所示。為了增強模型的實用性和易操作性,模型摒棄了RNN結構采用全卷積網絡,僅需要輸入EEG信號到小卷積核中進行處理,借助瓶頸結構和空洞卷積有效地解決了模型參數量大和RNN訓練難度高的問題。同時,使用焦變函數作為損失函數緩解類別不平衡問題。本文所提出的模型是由特征提取模塊、并行擴張融合模塊、MTE模塊和分段分類器組成的全卷積網絡。簡單來說,使用全卷積編碼器一解碼器網絡和PEF模塊對高級語義特征進行編碼以捕獲單通道EEG信號的顯著波,使用MTE模塊學習信號的多尺度睡眠過渡規(guī)則,使用段分類器對像素進行分類,完成睡眠分期任務。下面將詳細介紹模型結構。
1.1編解碼特征提取模塊
給定信號XEEC,特征編碼模塊將其轉換為編碼特征圖,解碼模塊用于恢復從特征編碼器模塊和上下文提取器模塊提取的高級語義特征。其中,編碼模塊由2個卷積層和一個最大池化層組成。卷積塊采用ReLU-BN結構,保證下一層的輸入為零均值。零均值的輸入可以避免下一層的連接權值梯度同號,出現“之”的情況,使得訓練效率更高,收斂速度更快。解碼器的基本單元與編碼器類似。為了保證通道間的信息融合,編碼器采用最大池化操作,解碼器采用上采樣操作。
編解碼器結構如圖2所示。其中,圖2(a)所示的編碼子模塊使用大小為3,步長為1的卷積核進行卷積,最大池化層用于下采樣;圖2(b)所示的解碼器子模塊使用上采樣和大小為3的卷積核來處理特征信息。在特征提取模塊中,共有5個解碼子模塊和4個編碼子模塊組成一個完整的編解碼結構。圖中Conv2D表示卷積核,ReLU表示激活函數,Maxpooling表示最大池化層,Up-sampling表示上采樣。
1.2多尺度擴張融合模塊
信息傳遞的過程本質上是信息重構的過程。為了防止信息傳輸過程中部分信號永久丟失,本文設計了全卷積PEF模塊,旨在增加感受野范圍,融合多序列信號特征。具體來說,不同的卷積膨脹率按照規(guī)則以級聯(lián)的方式進行疊加。
PEF由4個級聯(lián)分支組成。級聯(lián)分支隨著擴張卷積的數量逐漸增加。Dconv,是指擴張因子為r的空洞卷積,使用式(1),可以得到每個分支的感受野分別為3、7、9和19。通過將空洞卷積與不同的擴張率使用Concat操作進行拼接,PEF模塊能夠提取更豐富的信號特征。
1.3MTE模塊
睡眠轉換規(guī)則對于睡眠分期非常重要。使用RNN學習睡眠轉換規(guī)則是解決此類問題的主流方法。RNN模型難以調整和優(yōu)化,影響了模型的性能和實際應用。為此,本文放棄了RNN結構。考慮到上采樣是根據采樣點周圍的信息得到一個新的更長的序列,必然會導致噪聲放大等問題。本文通過MTE模塊增加了前后序列之間的連接,減少深度網絡帶來的梯度消失和梯度爆炸問題連續(xù)池化和卷積操作帶來的信息損失。圖4展示了MTE模塊結構。
MTE模塊通過擴張率不同的空洞卷積捕捉不同尺度感受野的特征。為了降低分支計算的代價,將卷積核設置為3,使用不同的膨脹因子獲得更大的感受野,構建多尺度時間序列層,得到短、中、長3個尺度的過渡信息。其中,卷積核大小為1的卷積層用于增加非線性能力,減少參數量和計算旦里。將不同尺度感受野學習到的特征圖并行拼接得到多尺度特征圖。此外,使用瓶頸結構減少級聯(lián)特征圖的通道并使模型輕量級。受Conv-Net的影響,瓶頸結構具有3個卷積層,輸出特征層比例為1:4:1。
由于視覺域中的當前檢測模型在像素級操作,因此不直接適用于生理信號的分類和檢測。受Sa-lientSleepNet的啟發(fā),本文采用了一種分段分類器,該分類器將逐像素特征映射到一系列分段的預測標簽中。段分類器定義如下:
1.4損失函數
睡眠分期數據存在類別不平衡問題。研究人員選擇不同的損失函數來解決上述問題。加權交叉熵損失函數通過賦予不同的權重值來改善樣本分類不平衡的影響,在睡眠分期任務中取得了較好的效果。具體地,加權交叉熵損失函數定義如下:
在本文中,焦變函數被用作損失函數。焦變函數最早針對稠密物體檢測任務提出,用來解決樣本不平衡的問題。焦變函數可以自適應地改變難分類樣本和易分類樣本在損失函數中的權重,不需要計算復雜的權重映射來解決嚴重的樣本不平衡問題。焦變函數表示為:
2實驗設置
2.1數據集和評估指標
為了驗證提出的模型的有效性,在Sleep-EDF數據集上進行了實驗。該數據集包括20名健康受試者,男女分布相同,25~34歲。除第13例受試者因設備故障外,其余受試者均進行了兩天一夜的PSG信號記錄,數據集中共有39個完整的PSG數據。為了客觀地評估分類性能,使用AASM轉換規(guī)則作為分類標準。具體來說,就是將Ramp;K手動評分數據中N3和N4階段合并為標記為N3階段。排除了在每個睡眠數據的開始和結束時標記為運動或未知的任何運動偽影外不執(zhí)行任何其他信號處理。
2.2實驗具體設置
使用Ge Force RTX 2060顯卡,在Python 3.7編程環(huán)境下中對其編程。網絡訓練參數包括訓練集的大小、優(yōu)化器選擇、學習率和提前停止機制。訓練數據的數據量與模型獲得有效信息成正比。同樣,訓練樣本越多,模型訓練所需的時間越長。因此,需要通過探索訓練樣本與測試樣本之間的比值關系,找到訓練時間與訓練精度的平衡狀態(tài)。圖5揭示了訓練集的數量與模型的平均精度和迭代所需的時間的關系。
隨著訓練迭代次數的增加,平均準確率的增長變得緩慢。在訓練樣本與測試樣本的比值為24:1的情況下,觀察到邊際負增長現象,可能是由于較多的訓練樣本導致模型過多地學習次要特征,忽略了主要特征。值得注意的是,隨著訓練樣本的增長,訓練所需的時間也在不斷增加,但二者的增長速度不同。為了在性能和復雜性之間取得平衡,本文選擇了19:1的比率來劃分數據,同時使用Adam優(yōu)化器訓練模型。
訓練樣本的目的是學習樣本的顯著信息,通過不斷地測試,來獲取最佳的樣本特征。通常訓練過程中會出現波動,但總體趨勢應該是向上的。若模型的驗證損失持續(xù)上升,可能出現過擬合現象。本文通過提前停止來解決這一問題,設置不同大小的耐心值節(jié)省訓練資源。表1展示了不同耐心之下模型的識別性能。其中,平均精度指的是20輪交叉驗證的平均值,平均迭代次數指的20輪交叉驗證的平均訓練輪數。
實驗結果表明,耐心值越高,模型訓練次數越多,能夠獲得越高的準確度。由表1可以看出,最佳訓練結果是在耐心值為5和平均56輪訓練時獲得的。將耐心值設置為7時,迭代次數等于訓練輪次。在這種情況下,所得到的模型的準確度比耐心值設置為5時略低。因此,在該模型中選擇耐心值為5的早期停止。
3實驗結果與討論
3.1實驗結果
為了減輕有限數據對模型的影響,本研究采用了20倍交叉驗證方法進行訓練,并客觀地評估了分類性能。表2展示了CL-Sleep的實驗結果,其中行標簽指示個實際類別,并且列對應于混淆矩陣中的預測類別。
實驗結果表明,CL-Sleep能夠準確地識別個大多數睡眠階段。具體而言,W階段的準確度達到93.56%,N2、N3和R階段的準確度也超過85%,證明了所提出模型的有效性。值得注意的是,該模型在N1階段的性能相對較低,準確度僅為59.49%。這可能是由于N1階段的樣本量小,其波形與W和N2階段有多個相似特征,可能導致混淆和不準確的分類。圖6展示了模型睡眠分期階段的對比(1h=120個epoch)。其中,在270~410epoch處于睡眠的中間階段,睡眠轉換較為穩(wěn)定,模型準確率較高;580~610epoch處于睡眠的后半階段,N2和N3階段轉換頻繁,在這一時期,模型的準確率較低??偟膩碚f,盡管N1階段和其他階段之間的分類性能存在顯著差異,但總體結果仍然實現了高水平的分類準確性。
表3比較了所提出的模型與相關的先進研究,使用客觀的評價指標,以評估其有效性。粗體表示模型的最佳性能。C-R指模型網絡由CNN和RNN組成,C-C/R-R指模型網絡由多個CNN和RNN組成,C指模型網絡僅由CNN組成。PSG意味著輸入信號是多通道的睡眠信號,相關先進模型描述如下。
DeepSleepNet:使用深度學習處理睡眠分期問題的經典網絡。
SleepEEG:使用編解碼結構和Bi-LSTM,重點捕捉EEG信號長短期上下文之間的聯(lián)系,證明了利用睡眠信號間轉換規(guī)律的重要意義。
IITNet:基于改進的Resnet-50網絡和Bi-LSTM結構,提出時期內和時期間水平的時間上下文學習。
TinySleep:簡化了DeepSleepNet模型,對PSG信號使用單向RNN結構,減小了模型的參數量。
CCRRSleep:將多尺度空洞卷積塊融合信號特征,多個串行的Bi-LSTM結構捕捉PSG信號的時序特征。
Multi-DeepCNN:摒棄了RNN結構,使用全卷積結構提取PSG信號特征,證明了網絡的性能增益主要依賴于網絡深度。
NAS-sleep:使用神經搜索的方式,通過對殘差連接、空洞卷積等傳統(tǒng)的模塊的排列組合確定模型最終結構。
U-time:使用對稱的編碼結構,采用全卷積結構提取信號特征,將圖像處理的方式用于睡眠分期任務。
實驗結果表明,所提出的CL-Sleep模型實現了87.5%的平均準確率優(yōu)于其他先進模型。雖然模型在N3階段的F,分數是次優(yōu)的,但是所有其他Fi分數達到最優(yōu)水平,證明了該模型能夠有效捕獲EEG特征信息。尤其是R階段有顯著的提高。事實上在醫(yī)學中,R是診斷幾種睡眠障礙的重要階段,這表明,本文提出的模型有利于睡眠障礙的實際診斷和評估。此外,圖7展示了不同模型的參數量對比結果。觀察圖7可以發(fā)現,該模型的數據量僅為0.6Mb,是DeepsleepNet模型的參數量的2.86%。本文提出的模型使用較小的參數量實現了較高的性能,特別是N1和R階段的準確度得到了提升。因此,本文所提出的模型可以在所有睡眠階段獲得良好的分類結果,提高了應用于實踐的可能。
3.2模型穩(wěn)定性
深度學習的有效性依賴于訓練數據的高質量,當輸入的信號具有異常值、類別不平衡問題時,表現在驗證曲線上為波動較大,甚至會出現尖刺的情況。為了檢驗本文提出模型的穩(wěn)定性,對訓練和驗證過程的精度和損失曲線可視化。圖8顯示了Sleep-EDF數據集其中一次交叉實驗的訓練和測試過程中的相關曲線。
觀察圖8(a),發(fā)現模型訓練了57個epoch后停止訓練,訓練損失曲線為接近0.1,表明模型充分提取了數據的特征,損失曲線在驗證階段波動較小,整體趨勢向下。圖8(b)測試階段的精度有一定的波動,波動幅度在0.15左右,屬于正常值。從圖像上看,該模型性能穩(wěn)定、準確率高,有利于后續(xù)的繼續(xù)研究并最終落地與實際。
3.3損失函數有效性驗證
損失函數通過反映模型與實際數據之間的差距來衡量模型的性能。在一定程度上,損失函數決定了模型訓練的方向,損失函數是否與問題本身相匹配,直接決定了模型能否取得良好的性能。本文使用焦變函數作為模型損失函數的進行訓練,以提高分類準確率,減少類別不平衡。為了證明損失函數的有效性,本文將其與加權交叉熵損失函數訓練的模型結進行了比較,圖9為采用不同損失函數訓練的混淆矩陣結果。
由圖9可以看出,與加權交叉熵損失函數相比,使用焦變函數的模型在睡眠分期的各個階段都有一定的提升,尤其在N1階段,焦變函數能夠更好地解決低幅值、分割難度大和樣本數少的問題,較好地分辨出N1和N2階段,提高了Nl和N2階段的分類準確率。實驗結果表明,焦變函數可以使模型更接近于理論預測模型的極限值,有助于更準確地睡眠分期。
3.4消融實驗
為了進一步驗證CL-Sleep模型每個模塊的有效性,對模型的每個組件進行了消融研究,如下所示:
基本模型A:該模型由一個獨立的U形結構組成,僅使用簡單的跳躍連接。
變型B(+PEF模塊):該模型將PEF模塊添加到基本模型,并使用空洞卷積集成上下文信息。
變體C(+MTE模塊):該模型將MTE模塊添加到基本模型中捕捉睡眠信號的過渡信息。
變體D(CL-Sleep):該模型使用PEF模塊和MTE模塊,結合U形結構來捕獲波形特征。
基于其解決類別平衡問題的能力及其在睡眠分期準確性方面的總體性能來評估每個變體。將PEF和MTE模塊與U形結構相結合的CL-Sleep模型取得了最佳結果,證明了提出的用于EEG睡眠信號分類的方法的有效性。
圖1 0顯示了不同變體的訓練結果,突出了每個模塊的有效性。如基本模型圖10(a)所觀察到的,大多數類別被正確分類,但是由于類似的波形特征,N1、R階段的準確率較低。PEF模塊的加入,融合了上下文豐富的信息,更好地辨別波形,顯著提高了N1和R階段的準確率。然而,許多N3階段被錯誤地識別為N2階段,可能是由于PEF錯誤地放大了波。MTE模塊的加入提高了分辨N1和N2階段的能力,借助過渡時期的轉換規(guī)則,能夠有效地分辨N3和R階段。綜合使用PEF和MTE模塊,通過PEF模塊獲取豐富的特征信息,和MTE模塊學習到的過渡規(guī)則對特征進行進一步篩選,取得了良好的分類效果。實驗結果證明,本文所提出的模塊可以有效地處理睡眠分期任務。
4結束語
針對腦電睡眠信號中類別不平衡、遞歸網絡優(yōu)化困難和參數量較大等問題,建立了基于單通道EEG信號的上下文編碼輕量化模型。該模型放棄了RNN結構,使用全卷積網絡來處理原始EEG,消除了由RNN結構引起的梯度問題。此外,CL-Sleep模型利用EEG而不是PSG信號,降低了數據的收集難度并增加了實際應用。原始EEG信號被輸入到對稱設計的編碼和解碼結構中,PEF模塊融合上下文信息,MTE結構借助并行的擴張卷積獲得過渡規(guī)則。同時使用瓶頸結構減小模型的參數體積。在僅0.6Mb參數的情況下,利用焦變函數來緩解類不平衡的問題。多輪交叉實驗結果表明,CL-Sleep模型表現出87.5%的平均準確性,有效地解決了分類不平衡的問題,并顯示出優(yōu)異的總體分期性能。