楊 坤 楊小童 陳月明
(安徽醫(yī)科大學(xué)生物醫(yī)學(xué)工程學(xué)院 合肥 230032)
心血管疾病是一種常見的慢性非傳染性疾病,根據(jù)國家心血管病中心組織編撰的《中國心血管病報(bào)告2018》[1]和美年大健康在2020年4月29日發(fā)布《健康中國·體檢大數(shù)據(jù)心血管健康報(bào)告》顯示,心血管疾病嚴(yán)重危害人們的身體健康,是導(dǎo)致國居民死亡的重要原因之一。心電圖(Electrocar?diogram,ECG)診斷是檢測心臟疾病最基礎(chǔ)、最常用的方法,而人工診斷的誤診率較高,同時(shí)面臨相應(yīng)的醫(yī)療資源顯著不足的現(xiàn)狀。因此利用計(jì)算輔助系統(tǒng)實(shí)現(xiàn)對心電異常的智能診斷具有極其重要的實(shí)際意義和臨床價(jià)值。
針對上述問題,本文的主要貢獻(xiàn)在于:首先,針對數(shù)據(jù)集樣本分布不均勻問題,使用生成式對抗神經(jīng)網(wǎng)絡(luò)擴(kuò)充訓(xùn)練的數(shù)據(jù)集;其次,為了減少采樣數(shù)據(jù)與數(shù)據(jù)存儲(chǔ)空間,使用壓縮感知理論對心電信號進(jìn)行壓縮與重構(gòu),進(jìn)一步降低了心電異常模型的復(fù)雜程度。
本文提出的研究框架如圖1所示,主要包括四個(gè)部分:預(yù)處理、壓縮與重構(gòu)、數(shù)據(jù)增強(qiáng)、特征學(xué)習(xí)與分類。心電信號預(yù)處理的過程包括使用小波閾值對實(shí)際數(shù)據(jù)集中的心電信號數(shù)據(jù)去噪處理、心拍劃分以及訓(xùn)練集和測試集的劃分;其次使用壓縮感知模型對數(shù)據(jù)進(jìn)行壓縮并重構(gòu);利用生成對抗網(wǎng)絡(luò)WGAN的生成器生成數(shù)據(jù)集中樣本少的心電數(shù)據(jù),解決數(shù)據(jù)集中樣本不平衡的問題,即對較少的樣本類別應(yīng)用數(shù)據(jù)增強(qiáng)方法,得到最終的訓(xùn)練集;最后利用經(jīng)過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)模型對測試集進(jìn)行分類。
圖1 心電異常識(shí)別模型框架
心電是通過放置在人體表面的電極來接收心臟搏動(dòng)的電信號,經(jīng)過導(dǎo)線或者其他設(shè)備送到終端顯示處理,在此過程中會(huì)受到來自各方面的噪音,如電力線干擾、基線漂移、電極運(yùn)動(dòng)偽影、儀器等干擾[14],這些干擾導(dǎo)致心電信號產(chǎn)生失真,甚至?xí)a(chǎn)生和病變信號相似的波形,導(dǎo)致無法正確判斷。
本文使用應(yīng)用廣泛的小波變換去除心電信號中的噪聲。Daubechies小波具有正則性,能夠使得重構(gòu)后的心電信號更加光滑,且隨著小波分解層數(shù)的增大,心電信號在頻域的局部表現(xiàn)能力越強(qiáng),頻帶劃分能力越強(qiáng)。因此本文選擇Daubechies8進(jìn)行小波分解。軟閾值函數(shù)在連續(xù)性、穩(wěn)定性優(yōu)于硬閾值函數(shù)。在對心電信號分解后,使用軟閾值函數(shù)對各尺度系數(shù)分別進(jìn)行處理,圖2展示了原始的心電信號,重構(gòu)的心電信號和消除的噪聲成分。重構(gòu)的心電信號消除了原始信號的高頻噪聲,并且保持心電信號的正常形態(tài)。
圖2 利用小波變換消除心電噪聲的過程
香農(nóng)采樣定理[15]指出,信息系統(tǒng)最低以奈奎斯特率,即輸入信號最高頻率的兩倍進(jìn)行采樣,可以無失真地重構(gòu)出原始信號,此方法使用的采樣點(diǎn)仍然較多。自然界大多數(shù)信號都不是直接稀疏的,可以找到某個(gè)特定變換域Ψ,使得信號是稀疏或可壓縮的。而壓縮感知理論指出,以較低于奈奎斯特率的采樣速率實(shí)現(xiàn)寬帶信號的采集與重構(gòu),既達(dá)到了降噪的目的,同時(shí)又可以進(jìn)一步減少采樣數(shù)據(jù)和數(shù)據(jù)存儲(chǔ)空間,能夠優(yōu)化心電分類模型的復(fù)雜度。本文用壓縮感知方法對一維心電信號進(jìn)行采樣和重構(gòu)[16~17],主要步驟如下:
1)根據(jù)心拍的大小將原始一維心電信號X0轉(zhuǎn)化為N維心電矩陣X1。
2)利用M*N維稀疏二進(jìn)制隨機(jī)觀測矩陣Φ(Φ每一列中1的個(gè)數(shù)相同且遠(yuǎn)小于矩陣行數(shù),1的位置隨機(jī))對N維心電數(shù)據(jù)X1進(jìn)行壓縮采樣,根據(jù)Y=ΦX1得到M維觀測值Y。
菲式春卷(Lumpia)還有芭露特煮鴨蛋(Balut)也自不用多說。其中,芭露特煮鴨蛋在菲律賓的必食清單中更是名列前茅,甚至被譽(yù)為“黑暗料理”中的代表(就是即將孵化的鴨蛋),不過也有不少人對它敬而遠(yuǎn)之,反倒是口味清淡的菲式春卷得到更多中國游客的支持。
3)通過重構(gòu)算法,并利用觀測值Y、觀測矩陣Φ和Daubechies(db)小波基Ψ得到重構(gòu)的稀疏系數(shù)^S。
4)利用重構(gòu)的稀疏系數(shù)^S,通過^X1=Ψ^S,得到重構(gòu)的信號^X1。5)重構(gòu)的信號^X1轉(zhuǎn)化為一維信號^X0。6)比較重構(gòu)信號^X0與X0的信噪比SNR。
深度學(xué)習(xí)技術(shù)的局限之一是需要大量的已標(biāo)注的數(shù)據(jù)才能有足夠的精度。因此在訓(xùn)練深度學(xué)習(xí)模型的過程中,數(shù)據(jù)集尤為重要。但是在實(shí)際分類問題中,數(shù)據(jù)集通常是有限的,并且由于對象不同而使得樣本數(shù)據(jù)分布并不平衡,從而導(dǎo)致模型無法取得理想的效果。通過某種方法擴(kuò)充適當(dāng)?shù)臉颖緮?shù)量能夠有效緩解此現(xiàn)象。常見的數(shù)據(jù)集擴(kuò)充的方法有插值法和外推法,但是此類方法所合成數(shù)據(jù)的種類受到給定數(shù)據(jù)密度的影響。而另一種方法是基于生成模型,即基于一個(gè)隨機(jī)數(shù)據(jù)生成新的數(shù)據(jù)。此種模型在假設(shè)的模型結(jié)構(gòu)充分接近真實(shí)的數(shù)據(jù)分布時(shí)具有良好的性能。本文使用GAN[18]生成新的心電樣本,通過GAN方法生成樣本的方法如圖3所示,其訓(xùn)練過程如下:
圖3 生成對抗神經(jīng)網(wǎng)絡(luò)模型
1)初始化生成器G的參數(shù)θg和鑒別器D的參數(shù)θd。
2)生成器G接受隨機(jī)變量Z的輸入,經(jīng)過生成器G后生成假樣本G(Z)。固定生成器G訓(xùn)練鑒別器D盡可能準(zhǔn)確區(qū)分真實(shí)樣本和生成樣本。
3)循環(huán)k次更新鑒別器D之后,使用較小的學(xué)習(xí)率來更新一次生成器G的參數(shù),訓(xùn)練生成器G使其盡可能可以減小生成樣本與真實(shí)樣本之間的差距,即盡量使得鑒別器D判別錯(cuò)誤。
4)多次更新迭代之后,最終理想情況是使得鑒別器D判別不出樣本來自于生成器G的輸出還是真實(shí)的輸出,即鑒別器D每次輸出的概率值都是1/2。
由GAN訓(xùn)練過程可知,在GAN框架中,生成器用于學(xué)習(xí)生成數(shù)據(jù),鑒別器用于正確鑒別訓(xùn)練數(shù)據(jù)和生成數(shù)據(jù)。模型最優(yōu)的情況下,生成器逐漸可以生成與訓(xùn)練數(shù)據(jù)相似但不相同的數(shù)據(jù)。
原始的GAN模型并不成熟,存在梯度消失和模式崩潰問題,而這個(gè)問題的出現(xiàn)原因是使用JS距離衡量兩個(gè)分布。WGAN[19]使用Wasserstein距離代替JS距離對真實(shí)樣本和生成樣本之間的距離進(jìn)行度量。計(jì)算方法如式(1)所示。相比較JS散度,Wasserstein距離的優(yōu)越性在于即便兩個(gè)分布沒有重疊,Wasserstein距離仍然能夠反映它們的遠(yuǎn)近關(guān)系。
由美國麻省理工學(xué)院提供的MIT-BIH[20]心律失常數(shù)據(jù)庫包括47個(gè)受試者的4000多個(gè)24h的周期性動(dòng)態(tài)心電數(shù)據(jù),有48個(gè)時(shí)長約為30min的記錄文件,采樣頻率360Hz,共計(jì)109500個(gè)心拍,且有權(quán)威專家對其進(jìn)行了詳細(xì)的注釋和標(biāo)記,在對心律失常分類和臨床研究中應(yīng)用最為廣泛。本文使用標(biāo)準(zhǔn)的MIT-BIH數(shù)據(jù)庫的心電數(shù)據(jù),并通過與權(quán)威專家提供的注釋進(jìn)行比較來分析和評估實(shí)驗(yàn)取得的結(jié)果。
依據(jù)美國醫(yī)療儀器促進(jìn)協(xié)會(huì)對心電信號的分類標(biāo)準(zhǔn),可將心電分為正常(N)、室上性心律異常(S)、室性心律異常(V)、融合心跳(F)、未確定(Q)五類。表1顯示Q類僅有15個(gè)樣本,因此舍棄Q類,本文只研究N、S、V、F四類心拍,四類心拍的樣本分布如表1所示。
表1 心拍異常數(shù)據(jù)集樣本數(shù)量分布
為了心拍劃分的準(zhǔn)確性,且本文研究的重心不是R波檢測,故本文直接使用MIT-BIH數(shù)據(jù)庫提供的“.atr”文件中標(biāo)注的心電圖R尖峰的位置,提取R尖峰的前99個(gè)數(shù)據(jù)點(diǎn)、R尖峰后200個(gè)數(shù)據(jù)點(diǎn),共計(jì)300個(gè)采樣點(diǎn)構(gòu)成一個(gè)完整的心拍樣本。將表1的數(shù)據(jù)劃為訓(xùn)練集與測試集情況,真實(shí)標(biāo)簽使用one-hot編碼,結(jié)果如表2所示。同時(shí),為了充分評估模型的性能,采用5折交叉驗(yàn)證的訓(xùn)練模型并統(tǒng)計(jì)實(shí)驗(yàn)結(jié)果。
表2 訓(xùn)練集和測試集劃分
實(shí)驗(yàn)平臺(tái)為處理器型號為Intel(R)Core i5-10400F CPU,64位Windows操作系統(tǒng),16G運(yùn)行內(nèi)存的臺(tái)式電腦,配有Matlab R2014a,Python3.8等軟件,整個(gè)實(shí)驗(yàn)過程中未使用GPU加速。
本文使用三個(gè)性能評價(jià)指標(biāo)衡量模型訓(xùn)練的結(jié)果,分別是精準(zhǔn)率P、召回率R、F1值,計(jì)算方法如式(2)~(4)所示。TP表示真正例,F(xiàn)P為假正例,F(xiàn)N為假負(fù)例,在P、R、F1三個(gè)評價(jià)指標(biāo)中,P、R、F1值越大,模型性能越好。
為了綜合評估本文提出的框架的有效性,使用同一個(gè)卷積神經(jīng)網(wǎng)絡(luò)作為心電信號分類模型(Baseline)。該模型的設(shè)計(jì)思想借鑒了LeNet,心電信號經(jīng)過卷積、池化、Softmax轉(zhuǎn)化后輸出一個(gè)四維概率分布。Baseline模型有若干卷積層、池化層以及其他操作組成,詳細(xì)結(jié)構(gòu)參數(shù)描述如表3所示。其中,CNN結(jié)構(gòu)中卷積層過濾器的尺寸5*5,步長為1,使用全0填充;池化層過濾器的尺寸3*3,步長為2,同樣使用全0填充。網(wǎng)絡(luò)中包含了最大池化層和平均池化層;優(yōu)化器為Adam優(yōu)化器,學(xué)習(xí)效率0.0001,激活函數(shù)為Relu。為了防止隨著訓(xùn)練的過程中出現(xiàn)過擬合的問題,因此Baseline加入正則化處理,同時(shí)添加Dropout層,設(shè)置Dropout的丟棄率為0.5,以此提高模型泛化能力。
表3 心電異?;€模型參數(shù)
使用設(shè)計(jì)的Baseline模型進(jìn)行訓(xùn)練和測試,迭代次數(shù)設(shè)置為500,訓(xùn)練集和驗(yàn)證集的Accuracy和Loss的變化如圖4和圖5所示。在Baseline訓(xùn)練過程中,Loss呈下降趨勢并逐步趨向穩(wěn)定,當(dāng)?shù)螖?shù)為300時(shí)開始收斂。Baseline模型的實(shí)驗(yàn)結(jié)果如表4所示,S,V,F(xiàn)三個(gè)類別的準(zhǔn)確率明顯低于N,而N的P,R,F(xiàn)1指標(biāo)均接近于1,遠(yuǎn)遠(yuǎn)高于S,V,F(xiàn)。由于S,V,F(xiàn)的訓(xùn)練樣本遠(yuǎn)遠(yuǎn)少于N,導(dǎo)致分類效果不甚理想。
表4 baseline模型實(shí)驗(yàn)結(jié)果
圖4 迭代過程中準(zhǔn)確率變化
圖5 迭代過程中損失值變化
由表1和表2可得,S、F相比較其他兩種的心電數(shù)據(jù)在數(shù)據(jù)量上較少,存在嚴(yán)重的樣本分布不均勻的問題,可以通過數(shù)據(jù)增強(qiáng)的方法解決。本文使用WGAN的來實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)。WGAN模型中產(chǎn)生器網(wǎng)絡(luò)和鑒別器網(wǎng)絡(luò)都有6層。生成器由8個(gè)帶有LeakyReLU激活的卷積層和最后一個(gè)帶有tanh激活的卷積層組成。鑒別器包括7個(gè)帶有LeakyRe?LU激活的卷積層和一個(gè)完全連接的Softmax。生成器和鑒別器的優(yōu)化器均使用Adam,學(xué)習(xí)率為0.0001。此外,鑒別器加入Dropout層來避免過擬合,設(shè)置Dropout的丟棄率為0.5,S和F使用不同的對抗神經(jīng)網(wǎng)絡(luò)模型生成,具體參數(shù)如表5和6所示。
表5 生成器模型參數(shù)
S,F(xiàn)的樣本應(yīng)用對抗神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)增強(qiáng)后,心電數(shù)據(jù)樣本分布如表7所示。S、F的訓(xùn)練集樣本數(shù)量均增加了2000,將表7的數(shù)據(jù)集送入Baseline模型中訓(xùn)練,實(shí)驗(yàn)結(jié)果如表8所示。由表8可知,當(dāng)使用GANs對N、S、F、V數(shù)據(jù)增強(qiáng)后,心拍異常分類平均F1值有98.64,與不使用數(shù)據(jù)增強(qiáng)的F1值增加10.75,且對于原來數(shù)據(jù)量較少的S、V、F三類的F1值分別增加了29.91%、2.69%、14.71%。由此可證明WGAN數(shù)據(jù)增強(qiáng)方法對解決心拍異常分類過程中樣本分布不平衡的有效性。
表6 鑒別器模型參數(shù)
表7 數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集
表8 WGAN模型實(shí)驗(yàn)結(jié)果
為驗(yàn)證壓縮感知模型對心拍分類模型簡化的有效性。不同的壓縮率、小波基的選擇和重構(gòu)算法均會(huì)對重構(gòu)誤差產(chǎn)生影響。本文著重討論了不同的重構(gòu)算法對心拍分類的影響。將對壓縮感知模型加入到WGAN-NN框架中。實(shí)驗(yàn)時(shí),分別使用IHT、CoSMP、SP、OMP四種不同的重構(gòu)算法,設(shè)計(jì)IHT_WGAN_CNN、CoSMP_WGAN_CNN、SP_WGAN_CNN、OMP_WGAN_CNN四組對比實(shí)驗(yàn)。
1)壓縮感知評價(jià)標(biāo)準(zhǔn)
信噪比SNR用以衡量ECG信號的重構(gòu)誤差,SNR越大,重構(gòu)誤差越小,信噪比計(jì)算如式(5)所示。其中X為ECG原始信號,^X為重構(gòu)后的信號。壓縮率CR用以衡量ECG的壓縮度,CR越大,信號壓縮率越高,CR計(jì)算如式(6),其中,M為觀測矩陣壓縮后的ECG信號長度。百分比均方根誤差PRD用于評價(jià)重構(gòu)信號質(zhì)量,PRD<9%的重構(gòu)信號可用于醫(yī)學(xué)診斷。PRD計(jì)算如式(7)所示,其中L為重建后的信號。
2)重構(gòu)算法選擇
設(shè)置壓縮比率CR為30%進(jìn)行實(shí)驗(yàn)時(shí),IHT、CoSMP、SP、OMP四種重構(gòu)算法的SNR和PRD如表9所示。由表9可知,四種重構(gòu)算法PRD<9%,因此重新構(gòu)的心電信號重構(gòu)信號可用于醫(yī)學(xué)診斷,且OMP的效果最好。IHT_WGAN_CNN、CoSMP_WGAN_CNN、SP_WGAN_CNN、OMP_WGAN_CNN對N、S、V、F的訓(xùn)練結(jié)果如表10所示。將心電數(shù)據(jù)壓縮至30%后的心電數(shù)據(jù)使用Baseline訓(xùn)練后,可訓(xùn)練的參數(shù)數(shù)量為114188,相較于壓縮前可訓(xùn)練參數(shù)量降低了了28.30%。
表9 四種重構(gòu)算法SNR和PRD值
表10 模型優(yōu)化分類結(jié)果
IHT、CoSMP的重構(gòu)效果最差,F(xiàn)1的值均比壓縮前小,而SP和OMP與壓縮前效果相近。因此本文提出的方法能以較低的時(shí)間復(fù)雜度重構(gòu)心電信號,且在保證重構(gòu)質(zhì)量的同時(shí),降低了模型的復(fù)雜程度,提高系統(tǒng)的運(yùn)行速度。
本文針對心電異常事件的分類建模過程中存在數(shù)據(jù)分布不平衡的問題進(jìn)行了深入研究,提出了使用GANs進(jìn)行數(shù)據(jù)增強(qiáng)。實(shí)驗(yàn)結(jié)果表明,應(yīng)用GANs數(shù)據(jù)增強(qiáng)方法后,心電異常分類的F1值有了明顯的提升。除此之外,本文引入了壓縮感知模型對心電信號的數(shù)據(jù)進(jìn)行壓縮,在不影響分類準(zhǔn)確性的情況下,進(jìn)一步降低模型的復(fù)雜度,提升了運(yùn)行效率。然而本實(shí)驗(yàn)僅僅是對四類心電異常進(jìn)行分類識(shí)別,且僅是對單標(biāo)簽進(jìn)行分類。在后續(xù)的研究中,將進(jìn)一步應(yīng)用本文提出的算法框架研究多標(biāo)簽心電[21~22]異常識(shí)別問題并降低心電自動(dòng)診斷模型復(fù)雜程度。