錢煒 鄭威 徐偉 劉健
(江蘇科技大學(xué)電子信息學(xué)院 鎮(zhèn)江 212003)
心臟疾病是一種嚴(yán)重威脅人類,特別是50歲以上中老年人健康的常見病,具有高患病率、高致殘率和高死亡率的特點(diǎn)[1]。所以心臟疾病的早期預(yù)防和檢測(cè)已經(jīng)成為重中之重,而心電圖是目前檢測(cè)心臟疾病最有效的手段,它檢測(cè)到的心電信號(hào)波形是由T波、P波、QRS波、U波組成的一種周期性的波形[2]。波形的變化反應(yīng)出病人是否患有心臟疾病,但是心電信號(hào)極易受到外界因素的干擾,比如醫(yī)療設(shè)備的干擾,生理活動(dòng),身體活動(dòng)產(chǎn)生的運(yùn)動(dòng)干擾等等。嚴(yán)重影響了波形和心電信號(hào)的細(xì)節(jié)信息給醫(yī)療檢測(cè)帶來(lái)了困難。針對(duì)這一情況,國(guó)內(nèi)外提出了許多心電信號(hào)去噪方法。比如小波變換法,它可以在去除心電信號(hào)噪聲的同時(shí)去除傳統(tǒng)的高斯噪聲,但是在實(shí)驗(yàn)中發(fā)現(xiàn)利用小波變換法完成心電信號(hào)降噪后得到的心電信號(hào)的幅值出現(xiàn)了降低的現(xiàn)象。經(jīng)驗(yàn)?zāi)B(tài)分解法[3~4],這種方法可以分析多組信號(hào)達(dá)到快速降噪的效果,但是在降噪過(guò)程中有可能會(huì)丟失信號(hào)的有用信息。自適應(yīng)濾波法[5],它是一種常用的去噪方法,算法實(shí)現(xiàn)簡(jiǎn)單,但是這種算法具有局限性不能去除所有的心電信號(hào)噪聲。還有頻譜分解法[6],改進(jìn)的小波變換[7~8]等等。這些方法都存在一些問(wèn)題。
隨著時(shí)代的發(fā)展,大數(shù)據(jù)時(shí)代來(lái)臨,網(wǎng)上存在的大量心電信號(hào)數(shù)據(jù)完全可以支撐用深度學(xué)習(xí)的方法實(shí)現(xiàn)心電信號(hào)去噪,在大數(shù)據(jù)的支持下深度學(xué)習(xí)方法可以更好地學(xué)到數(shù)據(jù)的本質(zhì)特征[14]。所以本文利用降噪自動(dòng)編碼器[9]形成深度神經(jīng)網(wǎng)絡(luò)完成心電信號(hào)降噪,提高心電信號(hào)算法的降噪能力。
本文采用的基礎(chǔ)網(wǎng)絡(luò)模型Auto-Encoder(AE)是20世紀(jì)80年代晚期提出的,它是一種無(wú)監(jiān)督的數(shù)據(jù)維度壓縮方法,使用了反向傳播算法,讓網(wǎng)絡(luò)輸出值等于網(wǎng)絡(luò)輸入值[10]。
自動(dòng)編碼器屬于最基本的一種神經(jīng)網(wǎng)絡(luò),最基本的AE可以看做一個(gè)簡(jiǎn)單的三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):一個(gè)輸入層、一個(gè)隱藏層和一個(gè)輸出層,其中輸出層與輸入層的網(wǎng)絡(luò)節(jié)點(diǎn)是相同的。它的目的是在經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)的編碼解碼過(guò)程將輸入信號(hào)重建得到輸出信號(hào),最理想的情況是輸入信號(hào)與輸出信號(hào)相同。具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 自動(dòng)編碼器網(wǎng)絡(luò)結(jié)構(gòu)
自動(dòng)編碼器的編碼解碼過(guò)程可以表示為
編碼過(guò)程:
編碼過(guò)程:
其中w1,b1是屬于編碼的權(quán)重和偏置,w2,b2是屬于解碼的權(quán)重和偏置。編碼器的激活函數(shù)sf屬于非線性變換,通常采用sigmoid,tanh和rule等函數(shù)。解碼器的激活函數(shù)sg一般采用sigmoid函數(shù)或者恒等函數(shù)。所以自動(dòng)編碼器的網(wǎng)絡(luò)參數(shù)θ={w1,w2,b1,b2}。當(dāng)輸入信號(hào)x與重建信號(hào)y的誤差很小時(shí),代表自動(dòng)編碼器的神經(jīng)網(wǎng)絡(luò)已經(jīng)訓(xùn)練完成。用重構(gòu)誤差函數(shù)L(x,y)來(lái)表示x和y的誤差。
如果解碼器的激活函數(shù)sg為恒等函數(shù),那么重構(gòu)誤差函數(shù):
如果解碼器的激活函數(shù)sg為sigmoid函數(shù)時(shí),則重構(gòu)誤差函數(shù):
2.2.1 降噪自動(dòng)編碼器(DAE)模型
傳統(tǒng)的自動(dòng)編碼器只是通過(guò)最小化輸入信號(hào)與重構(gòu)信號(hào)之間的誤差來(lái)獲取信號(hào)的有用信息,縮小重構(gòu)誤差只能使模型學(xué)習(xí)到輸入信號(hào),所以這個(gè)模型在提取數(shù)據(jù)特性上還需要改進(jìn)。為了解決傳統(tǒng)自動(dòng)編碼器的抗干擾能力差的問(wèn)題,學(xué)者提出了降噪自動(dòng)編碼器模型(DAE)[10~11,13],它的原理和AE基本相同,區(qū)別在于它在輸入信號(hào)輸入模型的過(guò)程中人為地添加了噪聲干擾,然后用含噪聲的輸入信號(hào)樣本重新構(gòu)建出無(wú)噪聲的干凈的輸出信號(hào)。這種訓(xùn)練方式使降噪自動(dòng)編碼器可以學(xué)習(xí)到輸入信號(hào)基本的數(shù)據(jù)特征,幫助提取輸入信號(hào)更深層的特征表達(dá)。DAE模型如圖2所示,DAE也是通過(guò)輸入信號(hào)和重構(gòu)信號(hào)之間的誤差來(lái)調(diào)整網(wǎng)絡(luò)參數(shù)達(dá)到誤差最小化,這個(gè)訓(xùn)練方式與傳統(tǒng)的自動(dòng)編碼器相同,它的不同點(diǎn)主要在于輸入信號(hào)x不是直接輸入網(wǎng)絡(luò),隱藏層的特征表達(dá)不是由原始輸入信號(hào)通過(guò)編碼函數(shù)得到,而是由含噪聲的輸入信號(hào)樣本得到。用這種方式可以提高模型的抗干擾能力,增加噪聲魯棒性約束。
圖2 降噪自動(dòng)編碼器結(jié)構(gòu)
降噪自動(dòng)編碼器具體的模型訓(xùn)練過(guò)程如圖2所示,原始輸入信號(hào)x通過(guò)降噪自動(dòng)編碼器以一定概率把輸入層節(jié)點(diǎn)的值置為0,從而得到含噪聲的輸入數(shù)據(jù)x*,被破壞的輸入數(shù)據(jù)通過(guò)編碼函數(shù)映射到隱藏層得到隱藏層的特征表達(dá)h,h通過(guò)解碼函數(shù)映射到輸出層得到輸出數(shù)據(jù)z,通過(guò)原始輸入數(shù)據(jù)x和輸出數(shù)據(jù)得到重構(gòu)誤差函數(shù)L(x,z)。
DAE的編碼過(guò)程:
DAE的解碼過(guò)程:
根據(jù)自動(dòng)編碼器和上面公式可得所DAE整體的損失函數(shù)為
根據(jù)上述式(8)通過(guò)梯度下降算法求得損失函數(shù)的最小值得到網(wǎng)絡(luò)的最佳參數(shù)。
2.2.2 SDAE網(wǎng)絡(luò)模型結(jié)構(gòu)
本文通過(guò)堆疊多個(gè)降噪自動(dòng)編碼器形成的深度神經(jīng)網(wǎng)絡(luò)[15]。首先,輸入信號(hào)會(huì)根據(jù)DAE的基本原理,訓(xùn)練得到第一個(gè)隱含層,丟棄DAE的解碼部分;然后,用訓(xùn)練得到的隱含層作為輸入信號(hào),再次使用DAE的工作原理,訓(xùn)練得到第二個(gè)隱含層,并且再次丟棄DAE的解碼部分,從下到上完成堆疊DAE形成多層降噪自動(dòng)編碼器。網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
基于降噪自動(dòng)編碼器的心電信號(hào)去噪方法實(shí)驗(yàn)流程圖如圖4所示。
圖4 實(shí)驗(yàn)流程圖
本文使用的是PhysioNet/MIT-BIH中的心律失常數(shù)據(jù)庫(kù)(MIT-BIH Arrhythmia Database),隨機(jī)選取100號(hào)到119號(hào)共19條心電數(shù)據(jù),每個(gè)心電信號(hào)數(shù)據(jù)選取2000到2300個(gè)心電周期,共計(jì)38000到43700個(gè)心電周期組成心電信號(hào)數(shù)據(jù)集。分別給每個(gè)ECG記錄疊加基線漂移[12](BW),肌電干擾[12](MA),電極干擾[12](EM)三種不同的噪聲(噪聲信號(hào)來(lái)自MIT-BIH數(shù)據(jù)庫(kù)中的噪聲數(shù)據(jù)庫(kù)),生成含噪聲的心電信號(hào)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和測(cè)試。其中訓(xùn)練樣本為102到113號(hào)心電數(shù)據(jù)和117號(hào)心電數(shù)據(jù)。構(gòu)造的訓(xùn)練樣本分為無(wú)標(biāo)簽的心電信號(hào)和有標(biāo)簽的含噪聲心電信號(hào)兩部分。網(wǎng)絡(luò)訓(xùn)練完成后利用118號(hào)數(shù)據(jù)進(jìn)行測(cè)試。保證訓(xùn)練集和測(cè)試集沒有重合部分,保證實(shí)驗(yàn)的嚴(yán)謹(jǐn)性。
網(wǎng)絡(luò)預(yù)訓(xùn)練就是采用非監(jiān)督的逐層訓(xùn)練方法,對(duì)網(wǎng)絡(luò)的各個(gè)隱藏層進(jìn)行逐步訓(xùn)練,然后把各個(gè)網(wǎng)絡(luò)層單獨(dú)訓(xùn)練得到的權(quán)重作為多層降噪自動(dòng)編碼器的初始網(wǎng)絡(luò)參數(shù)。本次實(shí)驗(yàn)使用103號(hào),117號(hào),110號(hào),113號(hào)心電信號(hào)數(shù)據(jù)集作為無(wú)標(biāo)簽純凈的心電數(shù)據(jù)訓(xùn)練降噪自動(dòng)編碼器的參數(shù),把得到的參數(shù)作為構(gòu)建神經(jīng)網(wǎng)絡(luò)的參數(shù)初始值,完成網(wǎng)絡(luò)預(yù)訓(xùn)練。
把網(wǎng)絡(luò)預(yù)訓(xùn)練使用的心電信號(hào)數(shù)據(jù)集分別疊加三種不同的噪聲信號(hào)形成有標(biāo)簽的含噪聲的心電數(shù)據(jù)訓(xùn)練樣本對(duì)整體的網(wǎng)絡(luò)參數(shù)進(jìn)行調(diào)優(yōu),利用BP算法將所有層的網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)得到最優(yōu)網(wǎng)絡(luò)參數(shù),達(dá)到重構(gòu)誤差最小化要求,神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成。
本實(shí)驗(yàn)利用信噪比(SNR)和均方根誤差(RMSE)來(lái)評(píng)價(jià)降噪自動(dòng)編碼器(DAE)和多層降噪自動(dòng)編碼器(SDAE)的去噪效果,原始心電信號(hào)為x(n),經(jīng)過(guò)降噪處理后的得到的心電信號(hào)為xm(n),所以就可以求出降噪之后的心電信號(hào)和剩余噪聲信號(hào)的SNR:
均方根誤差:
DAE是由一個(gè)輸出層,一個(gè)隱藏層和一個(gè)輸出層組成,隱藏層的個(gè)數(shù)影響了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)的能力,那么對(duì)心電信號(hào)降噪也會(huì)造成影響。所以本文利用降噪自動(dòng)編碼器設(shè)置不同的隱藏層數(shù)搭建神經(jīng)網(wǎng)絡(luò)完成心電信號(hào)降噪。為了保證本實(shí)驗(yàn)的嚴(yán)謹(jǐn)性,都利用118號(hào)心電信號(hào)數(shù)據(jù)進(jìn)行實(shí)驗(yàn),用一個(gè)降噪自動(dòng)編碼器(DAE)形成淺層神經(jīng)網(wǎng)絡(luò),用兩個(gè)降噪自動(dòng)編碼器(SDAE)堆疊形成深度神經(jīng)網(wǎng)絡(luò)。為了保證輸入的心電信號(hào)擁有一個(gè)完整的心電周期,根據(jù)PhysioNet/MIT-BIH數(shù)據(jù)庫(kù)中的參考注釋和采樣頻率,設(shè)置輸入層和輸出層神經(jīng)元個(gè)數(shù)設(shè)置為270,隱藏層神經(jīng)元都設(shè)置為135。則DEA網(wǎng)絡(luò)結(jié)構(gòu)為270-135-270,SDAE網(wǎng)絡(luò)結(jié)構(gòu)為270-135-135-270。分別給118號(hào)心電信號(hào)疊加信噪比為0的基線漂移,肌電干擾,電極干擾三種不同的噪聲,得到含噪聲的心電信號(hào)。用這兩個(gè)神經(jīng)網(wǎng)絡(luò)分別對(duì)疊加了三種不同噪聲的118號(hào)樣本進(jìn)行實(shí)驗(yàn)。
4.2.1 濾除基線漂移實(shí)驗(yàn)結(jié)果對(duì)比
圖5從上到下依次顯示的是118號(hào)原始心電信號(hào),疊加了BW噪聲的118號(hào)心電信號(hào)波形圖,經(jīng)過(guò)DAE濾除BW噪聲后得到的心電信號(hào)結(jié)果圖,經(jīng)過(guò)SDAE濾除BW噪聲后得到的心電信號(hào)結(jié)果圖。經(jīng)過(guò)DAE處理后心電信號(hào)的信噪比為14.36dB,經(jīng)過(guò)SDAE處理后信噪比為18.16dB,均方根誤差分別為0.077,0.045。
圖5 濾除基線漂移實(shí)驗(yàn)結(jié)果對(duì)比
4.2.2 濾除電極干擾實(shí)驗(yàn)結(jié)果對(duì)比
圖6從上到下依次顯示的是118號(hào)原始心電信號(hào),疊加了EM噪聲的118號(hào)心電信號(hào)波形圖,經(jīng)過(guò)DAE濾除EM噪聲后得到的心電信號(hào)結(jié)果圖,經(jīng)過(guò)SDAE濾除EM噪聲后得到的心電信號(hào)結(jié)果圖。從實(shí)驗(yàn)對(duì)比可以看出,經(jīng)過(guò)DAE處理后心電信號(hào)的信噪比為13.21dB,經(jīng)過(guò)SDAE處理后信噪比為19.38dB,均方根誤差分別為0.089,0.037。
圖6 濾除電極干擾實(shí)驗(yàn)結(jié)果對(duì)比
4.2.3 濾除肌電干擾實(shí)驗(yàn)結(jié)果對(duì)比
圖7從上到下依次顯示的是118號(hào)原始心電信號(hào),疊加了肌電干擾噪聲的118號(hào)心電信號(hào)波形圖,經(jīng)過(guò)DAE濾除MA噪聲后得到的心電信號(hào)實(shí)驗(yàn)結(jié)果圖,經(jīng)過(guò)SDAE算法濾除MA噪聲后得到的心電信號(hào)實(shí)驗(yàn)結(jié)果圖。從實(shí)驗(yàn)對(duì)比可以看出,經(jīng)過(guò)DAE處理后心電信號(hào)的信噪比為14.95dB,經(jīng)過(guò)SDAE處理后信噪比為19.54dB,均方根誤差分別為0.067,0.038。
圖7 濾除肌電干擾實(shí)驗(yàn)結(jié)果對(duì)比
4.2.4 實(shí)驗(yàn)分析
從以上實(shí)驗(yàn)結(jié)果和經(jīng)過(guò)算法降噪處理之后得出的信噪比SNR可以看出,無(wú)論是單隱藏層的降噪自動(dòng)編碼器還是雙隱藏層的降噪自動(dòng)編碼器都有效地去除了三種噪聲,但從DAE算法和SDAE算法的去噪效果的細(xì)節(jié)來(lái)看,DAE去除噪聲的能力還是遜色于SDAE。原因在于只有一個(gè)隱藏層的降噪自動(dòng)編碼器(DAE)形成的淺層神經(jīng)網(wǎng)絡(luò)無(wú)法深度記憶心電信號(hào)的本質(zhì)特征,所以學(xué)習(xí)能力一般,降噪之后的ECG信號(hào)波形雖然大致與原始信號(hào)一樣,但是波形明顯加粗仍有一些噪聲殘余,P波的幅度受到了一定程度的影響,降噪效果不理想,而兩層隱藏層的多層降噪自動(dòng)編碼(SDAE)形成的深度神經(jīng)網(wǎng)絡(luò),對(duì)數(shù)據(jù)進(jìn)行更深層次的學(xué)習(xí),使其能夠更有效地去除噪聲,基本還原了原始心電信號(hào)的形態(tài)。
為了體現(xiàn)SDAE算法對(duì)心電信號(hào)去噪效果的優(yōu)越性,分別與DAE算法和文獻(xiàn)[7]中提到的S變換法三種去噪算法進(jìn)行對(duì)比。
表1 不同信噪比下濾除基線漂移
表2 不同信噪比下濾除電極干擾
表3 不同信噪比下濾除肌電干擾
從上面三個(gè)表可以看出S變換法在對(duì)心電信號(hào)降噪的過(guò)程中,算法的降噪效果取決于心電信號(hào)中所含噪聲的多少即信噪比的大小,當(dāng)信噪比越大時(shí)降噪效果越好,反之降噪效果越差,而本文提到的DAE算法和SDAE算法的降噪效果是相對(duì)穩(wěn)定的,無(wú)論信噪比如何變化都能穩(wěn)定的去除心電信號(hào)噪聲。所以從降噪的穩(wěn)定性來(lái)看S變換法遠(yuǎn)低于本文提到的算法。從降噪效果來(lái)看無(wú)論是DAE算法還是SDAE算法的降噪能力都遠(yuǎn)遠(yuǎn)超過(guò)了S變換法。
本文利用降噪自動(dòng)編碼器對(duì)噪聲抗干擾能力強(qiáng)的優(yōu)點(diǎn)同時(shí)結(jié)合多層降噪自動(dòng)編碼器能有效地提取心電信號(hào)本質(zhì)特征的特點(diǎn)完成心電信號(hào)降噪。在心電信號(hào)降噪過(guò)程中,完全可以利用多層降噪自動(dòng)編碼器完成降噪處理。通過(guò)實(shí)驗(yàn)表明多層降噪自動(dòng)編碼器相比于傳統(tǒng)ECG去噪算法在面對(duì)非線性、非平穩(wěn)的噪聲時(shí)具有更好的降噪效果。單隱藏層的降噪自動(dòng)編碼器(DAE)的去噪能力也遠(yuǎn)低于多層降噪自動(dòng)編碼器(SDAE),所以深度神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)深層次的數(shù)據(jù)特征比淺層神經(jīng)網(wǎng)絡(luò)更具有優(yōu)勢(shì),那么在訓(xùn)練網(wǎng)絡(luò)的過(guò)程中適當(dāng)?shù)脑黾与[藏層層數(shù),可以提高算法的去噪能力。從理論上網(wǎng)絡(luò)模型可以無(wú)限增加網(wǎng)絡(luò)深度,隱藏層層數(shù)越多,節(jié)點(diǎn)越多,在訓(xùn)練模型上的效果越好,甚至?xí)_(dá)到100%預(yù)測(cè)精度,但是層數(shù)的增多,網(wǎng)絡(luò)參數(shù)也會(huì)增多,導(dǎo)致模型復(fù)雜度過(guò)高,就會(huì)出現(xiàn)神經(jīng)網(wǎng)絡(luò)模型過(guò)擬合的情況。所以今后研究的方向是考慮網(wǎng)絡(luò)訓(xùn)練的有效深度,選擇合適的網(wǎng)絡(luò)結(jié)構(gòu)使模型能達(dá)到較好的預(yù)測(cè)效果的同時(shí)不會(huì)出現(xiàn)過(guò)擬合的情況。