王 瑤 楊天順 紀思宇 王小紅 王慧泉 王金海 趙曉赟
1(天津工業大學生命科學學院,天津 300387)2(天津大學精密儀器與光電子工程學院,天津 300072)3(天津工業大學電氣與電子工程學院, 天津 300387)4(天津市胸科醫院, 天津 300222)5(天津大學胸科醫院,天津 300072)6(天津醫科大學胸科臨床學院,天津 300070)
呼吸暫停是指睡眠過程中呼吸氣流間歇性地中止且持續時間≥10 s[1]。 作為一種臨床中常見的睡眠呼吸紊亂,呼吸暫停會增加心血管疾病、阿爾茲海默癥等多種疾病的患病風險[2-3]。 目前多導睡眠監測是呼吸暫停診斷的標準方法[4-5]。 在多導睡眠監測中,需要記錄腦電、心電、呼吸氣流以及血氧飽和度等多種生理參數,并需要綜合分析這些監測參數來判定呼吸暫停的發生[6-7]。 此外,多導睡眠監測參數眾多、操作復雜,需要專業醫師在睡眠實驗室中進行,難以實現自動監測和家用普及。 因此,研究者們嘗試減少生理信號的采集種類,采用基于人工智能的方法降低檢測難度,實現呼吸暫停的自動檢測,為便攜式呼吸暫停檢測裝置的設計提供理論及技術支撐[8-10]。
在與呼吸相關的生理信號中,腦電信號因其用于睡眠監測時受到內源性疾病的干擾相對較小,倍受研究者關注。 從時域角度,Bhattacharjee 等[11]提出了一種基于多頻帶子幀的特征提取算法,采用k-近鄰(k-nearest neighbor,KNN)算法取得了89.30%的呼吸暫停識別準確率;從頻域角度,Shahnaz 等[12]以delta 波段的功率占整個信號功率的比值為特征,使用支持向量機(support vector machine,SVM)對呼吸暫停事件和正常事件進行分類,得到了84.83%的準確率;從非線性角度,周靜等[13]采用去趨勢波動分析法提取腦電信號特征,并使用SVM 對正常人和呼吸暫停患者進行區分。
已有的方法中主要存在兩個問題。 首先呼吸暫停按類型分為阻塞性、中樞性和混合性,而文獻中的方法主要針對的是阻塞性呼吸暫停;其次,目前的呼吸暫停自動檢測方法得到的準確率偏低,難以提供可靠的呼吸暫停檢測結果。 為了解決上述問題,本研究提出一種基于腦電小波分解和機器學習分類思想的呼吸暫停自動檢測方法。 該方法提高了基于腦電的呼吸暫停自動檢測精度,可用于設計呼吸暫停自動識別系統。
首先,對腦電信號進行預處理,建立用于實驗的樣本庫;然后,使用基于小波分解的算法對呼吸暫停腦電信號進行特征提取;最后,建立機器學習自動分類模型對特征進行分類,從而實現呼吸暫停事件的自動識別。
所使用的數據來自于天津市胸科醫院睡眠監測實驗室,共包含了30 名受試者(7 名女性和23 名男性)的睡眠腦電信號。 受試者年齡范圍為37 ~78歲;身體質量指數為19.82~39.26 kg/m2;呼吸紊亂指數為8.2~68.9。 腦電采集使用了C3-A2 和C4-A1 導聯,采樣率為100 Hz,并且由經驗豐富的睡眠專家將腦電信號片段標記為呼吸暫停事件和正常呼吸事件。 原始腦電信號如圖1 所示。 呼吸暫停事件分為阻塞性呼吸暫停、中樞性呼吸暫停以及混合性呼吸暫停。 實驗中使用了812 個上述每種呼吸事件。

圖1 原始腦電信號Fig.1 Raw EEG signals
1.2.1 數據預處理
由于腦電信號幅值微弱,隨機性強,極易受到噪聲影響,所以在特征提取前需對腦電信號去噪。考慮到巴特沃斯濾波器在非線性信號去噪處理中的良好適用性,本研究采用了巴特沃斯濾波器對原始腦電信號進行濾波。 其中,巴特沃思濾波器的階數為4,通帶為0.2 ~45 Hz。
1.2.2 特征提取
小波變換作為一種時頻分析法,具有優異的時頻分析和局部分析性能[14-15],適用于非線性和非平穩的腦電信號分析。 本研究使用db3 小波基對腦電信號進行四層分解,得到第2 ~4 層細節系數,分解過程如下所示。 對于離散信號f(n) ,小波分解系數可以表示為

式中,j代表尺度,h(k)是低通濾波器,g(k)是高通濾波器,S2jf(n) 是近似系數,W2jf(n) 是細節系數。如圖2 所示,可將近似系數S2jf(n) 當作原信號進一步分解,得到更深層次的分解系數。 圖中,cA 表示近似系數,cD 表示細節系數。

圖2 小波分解Fig.2 Wavelet decomposition
為進一步地減少特征數量和提高分類模型的訓練效率,本研究將前60 個系數絕對值的方差和能量作為特征。 能量可以表示信號的強度。 對于一維離散數字信號,能量定義為信號中幅值平方的總和,定義為

式中,E代表能量,N信號長度,Yi代表信號中第i個點的值。
方差代表隨機變量或數據集的分散程度,定義為

式中,σ2表示方差,μ表示一段信號幅值的平均值。
1.2.3 特征分類
使用KNN、SVM 和隨機森林(random forest,RF)等3 種機器學習分類算法對呼吸事件進行分類,所有的分類算法都在Matlab R2018b 中設計完成。
為模擬臨床中各類呼吸暫停事件的發病率,本研究使用的呼吸暫停事件中阻塞性、混合性和中樞性的組成比例為6 ∶3 ∶1。 構建好的數據集按75% ∶25%的比例劃分為訓練集和測試集。 其中訓練集采用10折交叉驗證的方法對機器學習模型進行參數調優;測試集用來檢驗模型的分類效果。 在模型的評價中使用了準確率,靈敏度和特異度等指標。
圖3 展示了200 段呼吸暫停和正常呼吸事件對應腦電小波分解得到的前60 個細節系數絕對值的平均值。 可以看出,正常呼吸事件所對應細節系數的絕對值明顯高于呼吸暫停事件,這表明本研究所提出的方法能夠在呼吸暫停和正常呼吸腦電信號中提取出具有明顯差異性的特征。

圖3 小波分解系數。 (a)第2 層;(b)第3 層;(c)第4 層Fig.3 The coefficients of wavelet decomposition.(a) Level 2; (b) Level 3; (c) Level 4
呼吸暫停事件的分類結果如表1 所示,3 種分類器的呼吸暫停識別準確率都達到91.5%以上,其中KNN 分類效果最好,準確率達到93.85%。 圖4呈現了該方法對各種類型的呼吸暫停的識別效果,可見對阻塞性、中樞性和混合性呼吸暫停的識別準確率都達到92%以上。

表1 不同分類器的呼吸暫停事件分類效果Tab.1 Classification performances of different classifiers

圖4 各種呼吸暫停的識別效果Fig.4 The classification performance of each type of apnea
此外,本研究還探究了腦電采集通道對呼吸暫停檢測效果的影響,結果如表2 所示。 從表中可見,C3 腦電信號的效果優于C4,雙導腦電信號的效果優于任一單導腦電信號。 在呼吸暫停事件的自動識別中,表3 呈現了本研究和近年來其他研究結果之間的對比,顯示本研究所提出的方法在呼吸暫停檢測精度上有了較大的提升。

表2 不同導聯腦電信號的分類效果Tab.2 Classification performances of EEG signals from different channels

表3 本研究與其他研究結果對比Tab.3 Comparison for classification performances between our method and others
本研究采用小波分解算法提取呼吸暫停患者的腦電信號特征,并通過建立k-近鄰、支持向量機和隨機森林等機器學習模型實現了呼吸暫停的自動檢測。 和文獻已有方法相比,該方法主要有兩個優勢。 一是較大的提高了基于腦電信號的呼吸暫停自動檢測精度。 本研究基于雙導聯腦電信號和k-近鄰模型得到了93.85%的呼吸暫停檢測準確率,和一些最新研究成果相比[11,16-17],其精度提高約4%。 二是從應用角度來看,該方法可實現對所有類型呼吸暫停的自動檢測。 已有研究[11,16]主要是針對阻塞性呼吸暫停的識別,然而由于每種類型的呼吸暫停致病機理不同,在臨床中采用只適用于檢測阻塞性呼吸暫停的方法將很有可能導致漏診[18],而本研究所提出的方法很好地彌補了這一不足,如圖4 所示,除阻塞性呼吸暫停外,本研究中混合性和中樞性呼吸暫停的自動檢測準確率也達到了92%以上。
本研究的局限之處在于:該方法雖然在呼吸暫停的識別中達到了較高的準確率,但對低通氣的識別準確率較低。 后續研究中將繼續改進算法,提高低通氣的檢測精度。
本研究提出一種基于小波分解的呼吸暫停自動檢測方法。 該方法使用db3 小波基對腦電信號進行4 層分解,在第2 ~4 層前60 個細節系數的絕對值中,計算方差和能量兩種特征作為機器學習分類模型的輸入,以此區分睡眠呼吸暫停事件和正常呼吸事件。 結果顯示,KNN 僅使用方差和能量兩種特征就取得了93.85%的準確率。 與已有的一些最新研究成果相比,該方法提高了呼吸暫停自動檢測的準確率,此外,區別于其他多數方法僅適用于阻塞性呼吸暫停的檢測,該方法對所有類型的呼吸暫停都能保持較高的靈敏性。 本研究的方法可用于呼吸暫停自動識別系統的設計,輔助醫師進行呼吸暫停的自動檢測。