石用伍,李小勇,石用德,石用民,謝泉
1. 貴州省人民醫(yī)院 設備處,貴州 貴陽 550002;2. 華南師范大學 環(huán)境學院,廣東 廣州51000;3. 貴州省盤州市大山鎮(zhèn)衛(wèi)生院,貴州 盤州 553507;4. 貴州省盤州市大山鎮(zhèn)城鎮(zhèn)規(guī)劃建設管理所,貴州 盤州 553507;5. 貴州大學 大數(shù)據(jù)與信息工程學院,貴州 貴陽 550025
一般情況下,睡姿可以分為仰臥、俯臥、左側(cè)臥和右側(cè)臥[1]。睡姿是診斷和治療體位相關性睡眠呼吸障礙的核心指標之一[2],如睡眠呼吸暫停綜合征等疾病與患者的睡姿具有密切的相關性[3]。近年來,接觸式的多導睡眠監(jiān)測儀(Polysom-nography,PSG)已成為常用的睡姿監(jiān)測和睡眠診斷的“金標準”[4-7]。因此,探究一種可對用戶睡姿進行實時、有效、無擾監(jiān)測并改善睡眠質(zhì)量的方法具有重要的臨床意義。
心沖擊圖(Ballistocardiogram,BCG)是一種時序信號,其可非接觸式描記心臟活動及血液運行時心臟、血管沖擊和反彈而引起的軀體微弱運動[8]。在不同的睡姿下,可以通過提取心沖擊圖呈現(xiàn)的不同波形差異的特征工程來實現(xiàn)睡姿的識別分類[9-12]。由于傳統(tǒng)的機器學習方法大多是一些淺層的學習技術,主要通過特征工程對樣本數(shù)據(jù)進行特征提取,然后進行建模和訓練,得到回歸或分類模型,實現(xiàn)對信號的回歸或分類處理[12],但這種算法容易受到特征工程的限制[13]。相對而言,深度學習是解決機器學習特征工程問題的有效途徑,可以自動從數(shù)據(jù)中提取更高級的抽象特征,從而建立更好的分類模型[14-18]。本研究選用基于注意力機制的空時融合深度學習睡姿監(jiān)測算法(Deep Learning Sleeping Posture Monitoring Model,CTAM)來建立睡姿監(jiān)測模型,并結(jié)合卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)和長短時記憶網(wǎng)絡(Long Short Term Memory Network,LSTM)融合模型的優(yōu)點,提出了一種全局分析BCG 信號的方法,并用于對基于BCG 信號的睡姿監(jiān)測性能的分析。
CTAM 主要使用CNN 和LSTM 兩種不同特點的神經(jīng)網(wǎng)絡對BCG 信號進行處理,然后加入注意力機制完成BCG 信號的關鍵特征提取。CNN 與LSTM 結(jié)合能夠提高提取BCG 信號特征的能力,同時結(jié)合注意力機制分析數(shù)據(jù)的特征有助于篩選出BCG 信號中有區(qū)分度的特征,進而提高睡姿分類的準確性。采用的卷積神經(jīng)網(wǎng)絡和長短時記憶網(wǎng)絡作的簡要介紹如下。
1.1.1 卷積神經(jīng)網(wǎng)絡
CNN 因具有能局部感知、共享權(quán)值的特性被常用于圖像領域中視覺圖像的局部特性及網(wǎng)絡結(jié)構(gòu)的優(yōu)化[19]。作為一種前饋網(wǎng)絡,卷積神經(jīng)網(wǎng)絡擅長于提取信號中包含的空間特征,但不能有效處理時間序列信號。通常的一維CNN 模型由輸入層、卷積層、激活函數(shù)、池化層和輸出層五部分組成。本研究在參考LeNet-5[20]的基礎上設計的卷積神經(jīng)網(wǎng)結(jié)構(gòu)如圖1 所示。其中與LeNet-5 不同的是,本研究中的CNN 模型輸入層數(shù)據(jù)格式為1×250 的序列,并且分別在兩個最大池化層之后加入批歸一化技術(Batch Normalization,BN)、激活函數(shù)(Leaky ReLU)和丟棄技術(Dropout)。
圖1 CNN模型的結(jié)構(gòu)圖
加入BN 技術用于CNN 訓練不僅可以加快模型的收斂速度,而且可以在一定程度上緩解深層網(wǎng)絡中“梯度彌散”的問題[21],使訓練的深度學習模型更加穩(wěn)定。本研究引入Leaky ReLU 是為了解決ReLU 的輸入值為負的時候,輸出始終為0,同時一階導數(shù)也始終為0,從而導致神經(jīng)元不更新參數(shù),也就是神經(jīng)元不學習的情況[22],公式(1)定義如下。
式中scale為小于1 的非負數(shù),當取0 時,Leaky ReLU 激活函數(shù)退化為ReLU 函數(shù)。Dropout 策是一種正則化技術,可通過對訓練數(shù)據(jù)進行復雜的自適應來防止或減少CNN 的過擬合,本研究隨機選擇一部分該層的輸出作為丟棄元素實現(xiàn)丟棄策略。雖然CNN 能精確的獲取BCG 信號的局部特征,但由于BCG 信號也可以看作是一種時序信號,因此不能充分獲取BCG 信號時域特征,模型的精度和泛化性能不高。
1.1.2 長短時記憶網(wǎng)絡
由于BCG 信號可以看作是一種時序信號,而LSTM是一種強大的時序信號處理和分類方法[23]。因此,本研究將LSTM 作為模型的處理單元引入。兩層的LSTM 分類網(wǎng)絡結(jié)構(gòu)包括輸入層、LSTM 層、分類層和輸出層,結(jié)構(gòu)圖如圖2 所示。
圖2 LSTM模型的結(jié)構(gòu)圖
其中的單元(Cell)狀態(tài)為輸入的數(shù)據(jù)提供了時間依賴性,賦予了數(shù)據(jù)時間特征,LSTM 通過單元狀態(tài)實現(xiàn)長期控制,該功能主要通過輸入門、遺忘門、輸出門三個門實現(xiàn)的。狀態(tài)單元的結(jié)構(gòu)如圖3 所示,這三個門結(jié)構(gòu)在圖3中的位置分別對應i、f和o,另外候選值g將信息添加到單元狀態(tài)。
圖3 LSTM內(nèi)部單元結(jié)構(gòu)圖
本研究設計的融合時空特征和注意力機制的睡眠檢測模型如圖4 所示。CTAM 由輸入層、預處理層、CNN 層、LSTM 層、注意力層、softmax 層和輸出層組成。CTAM 進行分類的過程如下:輸入預處理后的BCG 信號經(jīng)過CNN層進行空域特征提取,同時經(jīng)過LSTM 層進行時域特征提取,融合后的特征信息經(jīng)過注意力層根據(jù)各屬性特征的重要性進行加權(quán)計算,最后通過softmax 函數(shù)分類計算,輸出分類識別結(jié)果,各層的具體定義如下。
圖4 CTAM的結(jié)構(gòu)圖
1.2.1 預處理層
由于不同受試者的BCG 信號具有不同的分布,從提升模型的收斂速度、避免數(shù)值問題和消除量綱影響角度出發(fā),將原始BCG 信號標準化為方差為1 和均值為0 的序列,具體變換函數(shù)如公式(2)所示。
式中,x為原始數(shù)據(jù)特征值,mean(x)為原始數(shù)據(jù)的平均值,std(x)為原始數(shù)據(jù)的標準差,x’為標準化后的值。
1.2.2 CNN層
完成數(shù)據(jù)預處理后,使用CNN 層提取BCG 信號的局部特征。CNN 層是由許多一維網(wǎng)絡堆疊而成,其中包含卷積層、批歸一化技術、激活函數(shù),同時用池化層進行采樣聚合,而卷積層是CNN 最為核心的部分,它將輸入的特征圖與多個卷積核卷積,生成不同的特征圖,并通過卷積運算獲得BCG 信號的高級特征。
本研究中CNN 層輸入的大小可以表示為H×W×1,H和W分別代表歸一化后得到的數(shù)據(jù)高度和寬度(本研究所有模型中的H和W值分別為1 和250),假設有N 個單位的層輸入,使用M 寬度的濾波器W,卷積層輸出為(N-m+1)個單位,卷積計算過程如公式(3)所示。
1.2.3 LSTM層
對于BCG 信號,LSTM 能夠有效利用BCG 信號的前后信息進行特征學習。BCG 信號按順序輸入到LSTM 層中學習,最終獲得BCG 信號的時序特征。LSTM 通過單元狀態(tài)實現(xiàn)長期控制,長期控制功能主要通過遺忘門、輸入門、輸出門三個門實現(xiàn)。當新的信息進入LSTM 模型時,根據(jù)相關規(guī)則判斷信息是否有用,只有滿足算法認證要求的信息被保留,不一致的信息通過遺忘門被遺忘。
對于t時刻的LSTM 模型,生成的特征向量ht的隱藏狀態(tài)如公式(4)所示。
式 中,xt為t 時 刻BCG 信 號 的 輸 入,ht為t時 刻LSTM 層的隱藏狀態(tài),w為兩個單元之間的連接權(quán)值,b為偏置向量。
1.2.4 注意力層
在基于BCG 信號的睡姿檢測過程中,預處理后的BCG 信號經(jīng)過CNN 層進行空域特征提取,同時經(jīng)過LSTM 層進行時域特征提取,融合后的特征重要程度存在差異。其中的顯著特征通常會蘊藏更多信息量,所以應對BCG 信號中與睡姿相關的顯著特征給予更多關注,來提高睡姿檢測的準確性。因此,引入注意力機制(Attention Mechanism)[24]。
首先,利用空域特征提取模塊輸出的特征向量yt和時域提取模塊的特征向量ht融合成特征向量st通過非線性變換得到特征向量ut,可用公式(5)表示。
然后,用基于上下信息的特征向量uw的相似度表示特征向量ut的重要性,并獲得歸一化的重要性權(quán)重系數(shù)αt,uw是一個隨機初始化矩陣,該矩陣可以聚焦于ut上的重要信息。上述的BCG 信號特征的權(quán)重系數(shù)可用公式(6)表示。
最后,用αt與ht的加權(quán)和計算出對不同睡姿影響更為顯著BCG 信號的特征,用公式(7)表示。并由此利用注意力機制分析出數(shù)據(jù)特征的重要程度,得到對BCG 信號中與睡姿檢測相關更為顯著的特征。
1.2.5 輸出層
在輸出層,將注意力層生成的特征向量OUTAM輸入到全連接到分類層進行特征壓縮,然后使用softmax 函數(shù)進行睡姿識別,得到分類結(jié)果可用公式(8)表示。
式中,wh表示分類器的權(quán)值矩陣,其可以將outAM映射到一個新的長度為h的向量。h為睡姿的類別數(shù)。
具體基于空時特征融合和注意力機制的睡姿檢測模型訓練和工作流程框如圖5 所示。
圖5 深度學習的睡姿檢測模型訓練和工作流程框圖
截至目前,BCG 信號測量還未形成標準和公認的數(shù)據(jù)庫,因此,本研究使用深圳市量子慧智科技有限公司開發(fā)的基于PVDF 傳感器的睡眠帶對受試者進行睡姿數(shù)據(jù)采集。其中數(shù)據(jù)場景包括睡姿(仰臥、俯臥、左側(cè)臥和右側(cè)臥)、離床和體動,離床和體動可以降低睡姿檢測和其他體征檢測算法的誤判,數(shù)據(jù)采集步驟如下。
① 記錄受測人員身份和體征信息,包括姓名、性別、年齡、身高和體重;② 放置睡眠帶連接數(shù)據(jù)采集設備,持續(xù)10 min;③ 讓受測人員躺在睡眠帶上模擬體動10 min,包括翻身、轉(zhuǎn)體和輕微體動動作;④ 在某一固定睡姿下睡眠持續(xù)120 min;⑤ 完成后,起身離床,繼續(xù)采集10 min數(shù)據(jù)后停止,保存數(shù)據(jù)。其中采集BCG 信號具體睡姿、時長和受測人員數(shù)的信息如表1 所示。
表1 BCG信號采集信息記錄表
采集的四種睡姿(仰臥、俯臥、左側(cè)臥和右側(cè)臥)、體動和離床對應的典型BCG 信號波形如圖6 所示。從圖6 中可以看出,體動和離床有較為明顯的區(qū)分特征,仰臥、俯臥和側(cè)臥三種睡姿也有較為明顯的區(qū)分特征,而左側(cè)臥和右側(cè)臥睡姿下對應的BCG 信號波形相似度較高,提取特征進行分類需要一定的經(jīng)驗,表明需使用深度學習進行分類識別。
圖6 四種睡姿、體動和離床對應的BCG信號波形圖
本研究使用睡眠帶采集的BCG 信號采樣率為50 Hz。因此,在對檢測睡姿的BCG 信號進行訓練、驗證提出的CTAM 模型之前首先從采集的數(shù)據(jù)集中選取5 s 的數(shù)據(jù)且用1 s 的時間窗進行截取,標注對應的標簽,即對應四種睡姿(仰臥、俯臥、左側(cè)臥和右側(cè)臥)、體動和離床中一類,并且對兩大類中間的BCG 信號做部分丟棄,消除邊界效應。最后共計獲得樣本總數(shù)為48000 個,隨機取其中的40000個樣本作為訓練集,余下的8000 個樣本為測試集。
為了對模型進行評價,本研究選取常用評價分類模型性能的3 種指標:準確率(Accuracy,Ac)、精確率(Precision,P)和召回率(Recall,R)。對應的表達式如公式(9)所示。
式中,TP(True Positive)是正類被歸為正類的樣本數(shù),即正陽性;FP(False Positive)是正類被歸為負類的樣本數(shù),即假陽性;FN(False Negative)是負類被歸為正類的樣本數(shù),即假陰性;TN(True Negative)是負類被歸為負類的樣本數(shù),即真陰性。
本研究中所有模型均在配置為Core i9-10900K CPU,32 GB 內(nèi)存和GeForce RTX3090 顯卡的計算機上進行訓練和測試。計算機操作系統(tǒng)為ubuntu 18.04 LTS 版,所有模型使用Tensorflow 2.3.1 框架實現(xiàn)。仿真實驗中所有模型的初始化參數(shù)都采用相同的配置,這樣使得所有模型都在相對公平的條件進行對比,更有利于反映出CNN 模型、CNN-LSTM 模型和CTAM 模型的真實性能。其中,CNN層和全連接層的權(quán)系數(shù)初始化方法都使用He 等[25]提出的Kaiming 法,該方法有利于加速模型的收斂速度,LSTM層的權(quán)系數(shù)初始化方法使用正交方法[26]。所有模型的優(yōu)化器都使用Adam 方法,該方法具有更快的收斂速度和穩(wěn)定性[27],并且在模型訓練過程中可以不使用驗證集。具體參數(shù)配置如表2 所示。
表2 CNN、CNN-LSTM和CTAM的參數(shù)配置
CNN 模型、CNN-LSTM 模型 和CTAM 模型 訓 練 過程的準確率曲線和損失函數(shù)曲線如圖7 所示,可以看出,CTAM 模型具有最快的速度使得訓練過程分類準確率達到穩(wěn)定狀態(tài),同時具有最快的速度使得損失函數(shù)值達到接近0 的穩(wěn)定狀態(tài),而CNN-LSTM 模型次之。綜合訓練過程分類準確率和損失函數(shù)收斂曲線可以看出,在模型的收斂速度上性能依次降低的順序為CTAM 模型、CNN-LSTM 模型和CNN 模型,這也體現(xiàn)出了CTAM 模型相對其他兩種模型具有更快的收斂速度。
圖7 CNN、CNN-LSTM和CTAM準確率和損失函數(shù)對比曲線圖
CNN、CNN-LSTM 和CTAM 模型訓練后測試集上得到性能指標,如表3 所示,CTAM 模型的準確率最高,為99.49%,分別較CNN 模型和CNN-LSTM 模型的98.03%和94.88%有1.46%和4.61%的提升。
表3 各模型性能指標對比
綜合實驗結(jié)果中的訓練過程準確率曲線、訓練過程損失函數(shù)值曲線和各模型預測分類的準確率,可以看出CTAM 模型相比CNN 模型、CNN-LSTM 模型在入侵檢測中具有更好的性能。其中CTAM 模型在對隨機分割得到的8000 個測試樣本的預測分類混淆矩陣如圖8 所示,可以看出,容易出現(xiàn)混淆的是右側(cè)臥和左側(cè)臥,其他狀態(tài)的分類準確率達到了100%,這也印證圖6 所示的各狀態(tài)波形圖直觀印象。綜合上述實驗結(jié)果,說明空時融合技術和注意力機制模型在基于BCG 信號的睡姿檢測中的有效性較高。
圖8 CTAM模型對測試集分類的混淆矩陣
目前,在基于BCG 信號睡姿檢測方面的深度學習模型較少,相關研究人員對非接觸式睡姿監(jiān)測技術,如基于紅外圖像識別[6]、基于壓力的陣列傳感等技術的睡姿識別模型[7]等進行了廣泛的研究,并獲得了較好的效果。針對BCG 信號用于睡姿檢測的特點及當前常用模型特征提取不充分的問題,本研究創(chuàng)新性地利用BCG 信號空時域信息,將CNN 和LSTM 提取的特征進行融合,提出了注意力機制下的空時特征融合深度學習模型CTAM,充分利用了各網(wǎng)絡的優(yōu)勢,并引入注意力機制完成空時融合后的關鍵特征提取,獲得了BCG 信號用以睡姿監(jiān)測的最優(yōu)特征表示。該模型避免了人工特征存在的有區(qū)分度特征表達不充分的問題,同時提升了模型的收斂速度和泛化性能,使得本研究提出的模型更適合基于BCG 信號的睡姿監(jiān)測。今后將進一步增加驗證樣本量,深化該算法模型在健康領域的應用研究。
CTAM 模型實現(xiàn)了端到端的實時睡姿檢測方案,通過睡眠帶測試真實睡眠下狀態(tài)下睡姿的BCG 信號,構(gòu)建數(shù)據(jù)集進行仿真對比實驗。結(jié)果表明,相比具有類似結(jié)構(gòu)的傳統(tǒng)CNN 模型和空時融合的CNN-LSTM 模型,CTAM 在訓練集的收斂性和測試集的準確率上都有顯著的提升,其中,在測試集上的準確率分別較CNN 模型和CNN-LSTM 模型提升了1.46%和4.61%。該算法模型在基于BCG 信號實現(xiàn)睡姿的實時、有效、無擾監(jiān)測和睡眠質(zhì)量監(jiān)測領域具有較好的應用前景。