鄒漢榮,何漢武
(廣東工業(yè)大學(xué) 機(jī)電工程學(xué)院,廣東 廣州 510006)
睡眠呼吸暫停綜合征(sleep apnea syndrome,SAS)是指在睡眠狀態(tài)下反復(fù)出現(xiàn)口與鼻的氣流中斷停止10 s 以上現(xiàn)象的睡眠障礙疾?。?]。SAS 的主要影響在于睡眠過程中的慢性間歇性低氧和反復(fù)微覺醒。嚴(yán)重影響睡眠質(zhì)量、白天精神狀態(tài)。SAS 在未得到及時(shí)治療的情況下,還會(huì)引發(fā)高血壓、冠心病、腦卒中等并發(fā)癥[2]。
在傳統(tǒng)醫(yī)學(xué)診斷中,使用多導(dǎo)睡眠儀(polysomnography,PSG)對(duì)睡眠進(jìn)行監(jiān)測(cè)是檢測(cè)SAS 的“金標(biāo)準(zhǔn)”[3]。PSG 可以記錄被試者夜晚睡眠狀態(tài)下的腦電、眼電、肌電、呼吸、血氧等生理信號(hào),但是需要其在醫(yī)院進(jìn)行睡眠監(jiān)測(cè)。身上粘貼的電極片會(huì)對(duì)被試者睡眠產(chǎn)生干擾,影響被試者的睡眠質(zhì)量,從而導(dǎo)致測(cè)量偏差。監(jiān)測(cè)記錄完成后,需要醫(yī)生閱讀PSG 圖,并進(jìn)行人工判斷,判斷的過程耗費(fèi)大量的時(shí)間和精力。
SAS 在我國(guó)的患病率在4%左右,是一種常見病,然而SAS 的診斷需要PSG。多導(dǎo)睡眠儀價(jià)格昂貴,目前只有大、中城市三級(jí)醫(yī)院或部分二級(jí)醫(yī)院才有條件對(duì)該病進(jìn)行規(guī)范的診斷和治療,致使大量患者得不到及時(shí)的診斷和治療,目前該疾病的確診率不到10%[2],給人民的健康造成了極大的危害。
查閱文獻(xiàn)發(fā)現(xiàn),近年已經(jīng)開發(fā)了許多替代的傳統(tǒng)SAS 的檢測(cè)方法。這些方法基于呼吸、血氧飽和度信號(hào)[4]、鼾聲[5]、心電[6]等生理信號(hào)。但這些方法都涉及對(duì)生理信號(hào)的數(shù)據(jù)預(yù)處理、特征提取、特征選擇。雖然特征工程非常重要,但這個(gè)過程需要相當(dāng)多的領(lǐng)域?qū)I(yè)知識(shí),特別是高維數(shù)據(jù)。
呼吸暫停低通氣指數(shù)(apnea hypopnea index,AHI)是衡量被試睡眠呼吸暫停綜合征的一個(gè)重要指標(biāo)[2]?,F(xiàn)有技術(shù)大都是先獲取睡眠監(jiān)測(cè)的生理信號(hào)數(shù)據(jù),對(duì)信號(hào)進(jìn)行降噪濾波,然后將信號(hào)分段,人工提取信號(hào)特征,再訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)信號(hào)片段是屬于正常片段還是發(fā)生了睡眠呼吸事件,根據(jù)發(fā)生的睡眠呼吸事件計(jì)算AHI 值,最后根據(jù)AHI 值判斷被試者SAS 的病情程度。這些方法需要對(duì)信號(hào)進(jìn)行降噪和濾波,對(duì)于信號(hào)的抗干擾能力弱。除此以外,由于要對(duì)信號(hào)進(jìn)行分段,所以還需要事件的標(biāo)注數(shù)據(jù)。然而實(shí)際上事件的標(biāo)注數(shù)據(jù)并不那么容易獲取,而且這種分段的方法并不能直接做出睡眠呼吸暫停綜合征嚴(yán)重程度的診斷。
針對(duì)以上問題,本文提出了一種基于整段血氧飽和度信號(hào),利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)實(shí)現(xiàn)直接診斷SAS 嚴(yán)重程度的方法?;趥鹘y(tǒng)的醫(yī)學(xué)診斷方法,根據(jù)AHI 值將SAS 劃分不同的嚴(yán)重程度患者,即正常、輕度、中度和重度4 種[7]。通過卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)提取不同嚴(yán)重程度患者血氧飽和度的特征,將卷積神經(jīng)網(wǎng)絡(luò)提取到的特征結(jié)合被試的體征數(shù)據(jù)再通過全連接層進(jìn)行分類,從而實(shí)現(xiàn)SAS 嚴(yán)重程度的直接預(yù)測(cè)。該方法使用的是整段的血氧飽和度信號(hào),不再需要分割,也不需要專家標(biāo)注各個(gè)信號(hào)片段的標(biāo)簽。血氧飽和度信號(hào)可以通過采用指套式光電傳感器,只需將傳感器套在被試手指上即可方便獲?。?],而且對(duì)被試睡眠影響較小。該方法的數(shù)據(jù)易獲取且不需要專家領(lǐng)域知識(shí),有更好的通用性。
本研究中使用的數(shù)據(jù),是廣州某醫(yī)院提供的實(shí)際臨床數(shù)據(jù)。這些數(shù)據(jù)是從PSG 或者便攜式PSG 設(shè)備采集到的。數(shù)據(jù)一共由1 684 個(gè)記錄組成,每個(gè)記錄都包括被試者的夜晚睡眠監(jiān)測(cè)的血氧飽和度信號(hào)和一份醫(yī)學(xué)的診斷報(bào)告,在診斷報(bào)告中有由醫(yī)生做出睡眠呼吸暫停綜合征嚴(yán)重程度診斷結(jié)果。
在訓(xùn)練過程中,將數(shù)據(jù)按照3∶1∶1 的比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。每份數(shù)據(jù)集的數(shù)量分別為1 008,338 和338。
醫(yī)院提供兩份數(shù)據(jù),即睡眠監(jiān)測(cè)數(shù)據(jù)和醫(yī)學(xué)診斷報(bào)告。
睡眠監(jiān)測(cè)數(shù)據(jù)包含了被試者夜晚睡眠的生理信號(hào)監(jiān)測(cè)數(shù)據(jù)。根據(jù)采集的PSG 設(shè)備不同,數(shù)據(jù)的通道個(gè)數(shù)和采樣頻率也各不相同。本研究將單一的血氧信號(hào)作為判斷信號(hào),所以首先從睡眠監(jiān)測(cè)數(shù)據(jù)中提取血氧飽和度的數(shù)據(jù),下采樣頻率為1 Hz。因?yàn)樗弑O(jiān)測(cè)的初始階段被試者尚未進(jìn)入睡眠狀態(tài),同時(shí)在睡眠監(jiān)測(cè)結(jié)束階段,被試者已經(jīng)醒來,但沒有取下設(shè)備。所以在監(jiān)測(cè)數(shù)據(jù)的初始和末尾階段,被試者是清醒的。但是,醫(yī)院沒有提供睡眠階段的標(biāo)記,所以本研究根據(jù)傳統(tǒng)診斷依據(jù)[7]只選擇了睡眠監(jiān)測(cè)過程中最中間的7 h 的數(shù)據(jù)。
從醫(yī)院提供的醫(yī)學(xué)診斷報(bào)告中提取被試者的基本體征數(shù)據(jù)和由醫(yī)生作出的診斷結(jié)果?;倔w征數(shù)據(jù)包括被試者的年齡、性別、身高、體重和體質(zhì)量指數(shù)(BMI)。診斷報(bào)告中有被試者的AHI值,根據(jù)醫(yī)學(xué)標(biāo)準(zhǔn),將患者分成了正常、輕度、中度和重度4 種嚴(yán)重程度。被試者的SAS 嚴(yán)重程度作為訓(xùn)練標(biāo)簽。
從睡眠監(jiān)測(cè)數(shù)據(jù)中提取被試者夜晚7 h 的血氧飽和度信號(hào),結(jié)合從醫(yī)學(xué)診斷報(bào)告中提取的體征數(shù)據(jù)作為訓(xùn)練模型的原始數(shù)據(jù)。對(duì)于模型訓(xùn)練,每一個(gè)樣本的訓(xùn)練數(shù)據(jù)表示了被試者的體征數(shù)據(jù)和血氧飽和度,而每一個(gè)樣本的標(biāo)簽則是其SAS嚴(yán)重程度。最后,根據(jù)原始數(shù)據(jù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)。數(shù)據(jù)的完整處理流程見圖1。
圖1 數(shù)據(jù)處理流程
1.3.1 標(biāo)準(zhǔn)化 標(biāo)準(zhǔn)化更好地保持了樣本間距,保留了數(shù)據(jù)中的異常點(diǎn)信息。當(dāng)被試者發(fā)生睡眠呼吸暫?;虻屯鈺r(shí),在被試者的血氧飽和度信號(hào)上會(huì)表現(xiàn)為血氧下降。為更好地保留血氧飽和度信號(hào)中的變化信息,所以對(duì)血氧飽和度信號(hào)進(jìn)行了標(biāo)準(zhǔn)化。μ表示該樣本血氧飽和度的期望,σ表示該樣本的血氧飽和度的標(biāo)準(zhǔn)差,如公式(1)所示。
1.3.2 歸一化 本研究使用了被試者的體征數(shù)據(jù),年齡、性別、身高、體重和BMI 指數(shù)。歸一化能夠讓不同維度的特征在數(shù)值上有一定的比較性。所以對(duì)被試者的體征數(shù)據(jù)進(jìn)行歸一化。xmax表示該體征在樣本集中的最大值,xmin表示該體征在樣本集中的最小值,如公式(2)所示。
心肌細(xì)胞是心臟泵功能的主要承擔(dān)者,但數(shù)量?jī)H占心臟細(xì)胞總數(shù)的30%~40%,其余為非心肌細(xì)胞,主要是成纖維細(xì)胞,占90%以上,還有少量的內(nèi)皮細(xì)胞、巨噬細(xì)胞、血管平滑肌細(xì)胞等[2]。成纖維細(xì)胞通過合成細(xì)胞外基質(zhì)和膠原酶等維持心肌細(xì)胞基質(zhì)網(wǎng)絡(luò)的穩(wěn)態(tài),進(jìn)而維持心臟正常的結(jié)構(gòu)和功能。當(dāng)心臟出現(xiàn)心肌梗死等病理變化時(shí),成纖維細(xì)胞將異常增殖并轉(zhuǎn)化為肌成纖維細(xì)胞,促進(jìn)心肌的纖維化重塑[3]。
使用卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)提取不同嚴(yán)重程度SAS 被試者夜晚整段血氧飽和度特征和基本體征特征。通過CNN 自動(dòng)提取特征的方式代替了傳統(tǒng)的專家提取特征。首先將每一條記錄的夜晚監(jiān)測(cè)7 h 的血氧飽和度信號(hào)輸入的模型的第一個(gè)輸入,通過三層卷積層,提取到血氧飽和度特征。然后將每一條記錄的體征數(shù)據(jù)輸入到模型的第二個(gè)輸入,通過一層卷積層,提取到體征特征。然后進(jìn)行特征融合,結(jié)合被試者的血氧飽和度特征和體征特征進(jìn)行分類預(yù)測(cè)。模型最終輸出的就是預(yù)測(cè)的SAS 嚴(yán)重程度。完整的模型框架見圖2。
圖2 CNN 模型結(jié)構(gòu)
本研究使用一個(gè)原始CNN 模型從各個(gè)記錄的血氧飽和度信號(hào)中自動(dòng)提取特征。提出的CNN 模型結(jié)構(gòu)見圖2,各結(jié)構(gòu)參數(shù)見表1。本文選擇Relu非線性激活函數(shù)作為CNN 模型的激活函數(shù),同時(shí)選擇使用KaiMing 初始化方法初始化卷積層的參數(shù),這種方法對(duì)于非線性激活函數(shù)的模型有更好的效果[9]。
表1 CNN 模型結(jié)構(gòu)
本文的CNN 模型結(jié)構(gòu)由4 個(gè)負(fù)責(zé)提取特征的一維卷積層組成,即一個(gè)池化層,一個(gè)DropOut層,兩層負(fù)責(zé)特征分類的全連接層以及一個(gè)Softmax 層。
CNN 模型的輸入有兩個(gè)。一是7 h 的頻率為1 Hz 的單通道血氧飽和度信號(hào),所以模型的第一個(gè)輸入維度為1×25 200;二是被試者的體征數(shù)據(jù),所以模型的第二個(gè)輸入的維度為1×5。
首先,模型第一個(gè)輸入的血氧飽和度信號(hào)先通過一個(gè)一維的BatchNormal 批歸一化層。批歸一化層負(fù)責(zé)對(duì)每一批次的數(shù)據(jù)進(jìn)行歸一化,批歸一化能夠防止梯度消失問題,減少梯度對(duì)參數(shù)或權(quán)重初始值的依賴,能有更大的學(xué)習(xí)率,加速網(wǎng)絡(luò)訓(xùn)練速度[10]。經(jīng)過批歸一化層后,數(shù)據(jù)將進(jìn)入第一個(gè)卷積層。第一層卷積層的卷積核數(shù)量為16,每個(gè)卷積核的大小為1×32。最后再通過Relu 激活層。接下來使用3 個(gè)卷積層和1 個(gè)池化層提取信號(hào)更高維的特征。在每次使用卷積層處理前都要通過1 個(gè)批歸一化層進(jìn)行歸一化。在每次使用卷積層處理后,都需要通過1 個(gè)Relu 激活層進(jìn)行非線性激活。經(jīng)過第一個(gè)卷積層處理后,通過平均池化層,池化層的作用是減小數(shù)據(jù)維度,提高訓(xùn)練效率。模型采用的是平均池化的方法,對(duì)于輸入的血氧飽和度信號(hào)的所有采樣計(jì)算一個(gè)平均值,可以更好的將卷積層的特征與預(yù)測(cè)類別對(duì)應(yīng)起來,池化可以降低參數(shù)量,整合了全局的空間信息,對(duì)于輸入的特征有更好的魯棒性[11]。第二層卷積層的卷積核數(shù)量為12,每個(gè)卷積核的大小為1×16。第三層卷積層的卷積核數(shù)量為6,每個(gè)卷積核的大小為1×3。模型的第一個(gè)輸出經(jīng)過以上三層模型處理后,從輸入的維度1×25 200 處理成了維度6×12 567,最后再將數(shù)據(jù)展平成一個(gè)1×75 402 的向量,最后通過一個(gè)全連接層,最終模型第一個(gè)輸入的輸出維度為1×48。
模型的第二個(gè)輸入是被試者的體征數(shù)據(jù),維度為1×5。處理的過程與模型第一個(gè)輸入類似,考慮到輸入的維度較小,所以只使用了一個(gè)卷積層。第二個(gè)輸入先通過一個(gè)BN 層,進(jìn)行歸一化,再通過一個(gè)卷積層。卷積核的數(shù)量為12,卷積核大小為1×3,再經(jīng)過Relu 激活層激活后進(jìn)行展平,展平成一個(gè)1×48 的向量。
本研究的模型有兩個(gè)輸入,一個(gè)是被試者的夜晚睡眠監(jiān)測(cè)的血氧飽和度信號(hào),另一個(gè)是被試者的基本體征數(shù)據(jù)。分別經(jīng)過3 層卷積層和1 層卷積層處理后,將處理結(jié)果進(jìn)行拼接。再經(jīng)過一個(gè)全連接層進(jìn)行4 分類。最終再經(jīng)過一個(gè)Softmax層將結(jié)果映射到0~1 范圍。模型最終預(yù)測(cè)結(jié)果即為被試者預(yù)測(cè)SAS 嚴(yán)重程度。
本文訓(xùn)練模型使用的硬件是一臺(tái)GPU 工作站,具體配備的CPU 是Intel E5-2678@2.50GHz,顯卡是Nvidia GeForce RTX 3090,內(nèi)存為64 G。軟件使用的CUDA 版本是11.4,Python 是3.8。選擇Pytorch 作為深度學(xué)習(xí)框架。
本文研究的是一個(gè)四分類任務(wù),屬于多分類任務(wù)。本文使用準(zhǔn)確率Accuracy 作為評(píng)估模型總體性能的指標(biāo)。準(zhǔn)確率表示總體中被正確預(yù)測(cè)SAS 嚴(yán)重程度的樣本數(shù)占總體的比例。但準(zhǔn)確率只能給出總體的預(yù)測(cè)情況,并不能全面評(píng)估各個(gè)類別的準(zhǔn)確率。所以本文還使用了查準(zhǔn)率(Precision)、敏感性(Sensitivity)、特異性(Specificity)和(F1-Score)作為模型的各個(gè)類別的評(píng)價(jià)指標(biāo)?;煜仃嚩x如表2 所示。
表2 分類混淆矩陣定義
查準(zhǔn)率表示在被預(yù)測(cè)為某一類的樣本中,實(shí)際為該類的樣本的占比,即對(duì)于各個(gè)類別,被正確預(yù)測(cè)的比例,也被稱為精確率查準(zhǔn)率計(jì)算公式:
敏感性表示對(duì)于某一類樣本,被正確預(yù)測(cè)的樣本占比,也被稱為查全率(Recall)、召回率和真陽(yáng)性率,敏感性計(jì)算公式:
特異性表示在真實(shí)值為陰性的樣本中,有多少樣本被預(yù)測(cè)為陰性,也被稱為真陰性率,特異性計(jì)算公式:
一般來說,查全率和查準(zhǔn)率是互斥的,而F1-Score 是衡量?jī)烧叩囊粋€(gè)指標(biāo),F(xiàn)1-Score 越接近1表示查全率和查準(zhǔn)率越好,計(jì)算公式為
如圖3 所示,測(cè)試集中一共有338 例樣本,總體準(zhǔn)確率Accuracy 為86.39%。正常樣本一共有98 例,其中有89 例樣本被預(yù)測(cè)為正常,9 例被預(yù)測(cè)為輕度。輕度樣本一共有85 例,其中有9 例被預(yù)測(cè)為正常,74 例被預(yù)測(cè)為輕度,2 例被預(yù)測(cè)為中度。中度樣本一共有55 例,其中有14 例被預(yù)測(cè)輕度,40 例被預(yù)測(cè)為中度,1 例被預(yù)測(cè)為重度。重度樣本一共有100 例,其中有11 例被預(yù)測(cè)為中度,89 例被預(yù)測(cè)為重度。
圖3 CNN 預(yù)測(cè)結(jié)果
實(shí)驗(yàn)的總體準(zhǔn)確率達(dá)到了86.39%,由圖4、圖5、表3 可以看出正常類別的準(zhǔn)確率為90.82%,輕度類型的準(zhǔn)確率為76.29%,中度類型的準(zhǔn)確率為75.47%,重度類型的準(zhǔn)確率為98.89%。實(shí)驗(yàn)的結(jié)果說明在缺少分段標(biāo)簽的條件下,使用7 h 整段的血氧飽和度信號(hào),并結(jié)合基本的體征數(shù)據(jù)預(yù)測(cè)SAS 是可行的。
圖4 各類別查準(zhǔn)率
圖5 各類別查全率
表3 各類別評(píng)估(%)
在本文研究中,在缺少分段標(biāo)簽的條件下,提出了一種使用CNN 提取血氧飽和度特征和體征特征的方法預(yù)測(cè)SAS 嚴(yán)重程度。從原始的夜晚睡眠監(jiān)測(cè)中提取睡眠狀態(tài)下7 h 的血氧飽和度信號(hào),作為模型的第一個(gè)輸入。從醫(yī)生的診斷報(bào)告中提取被試者基本體征,作為模型的第二個(gè)輸入。使用3 層卷積層提取血氧飽和度信號(hào)的特征,使用1層卷積層提取體征特征,然后進(jìn)行特征融合,最后通過全連接層和Softmax 層,進(jìn)行分類和模型輸出。模型最終輸出的結(jié)果就是被試者SAS 的嚴(yán)重程度。
實(shí)驗(yàn)結(jié)果表明,實(shí)驗(yàn)總體準(zhǔn)確率達(dá)到了86.39%,其中正常類型的準(zhǔn)確率達(dá)到了90.82%,重度類型的準(zhǔn)確率更是達(dá)到了98.89%。實(shí)驗(yàn)證明了本文研究的方法,在缺少分段標(biāo)簽,使用整段信號(hào)的條件下,結(jié)合被試者的基本體征數(shù)據(jù),能夠良好預(yù)測(cè)SAS 的嚴(yán)重程度。為更多的二三線醫(yī)院提供了許多患有SAS 未能得到及時(shí)診斷的解決方案。
在未來的工作中,由于本研究使用的輕度和中度樣本數(shù)量有限,可以采集更多的樣本數(shù)據(jù)提高輕度和中度類型的預(yù)測(cè)準(zhǔn)確率。同時(shí)若能準(zhǔn)確獲取睡眠狀態(tài)下的血氧飽和度信號(hào),也能夠提升模型的準(zhǔn)確率。