錢煒 鄭威 徐偉 劉健
(江蘇科技大學電子信息學院 鎮江 212003)
心臟疾病是一種嚴重威脅人類,特別是50歲以上中老年人健康的常見病,具有高患病率、高致殘率和高死亡率的特點[1]。所以心臟疾病的早期預防和檢測已經成為重中之重,而心電圖是目前檢測心臟疾病最有效的手段,它檢測到的心電信號波形是由T波、P波、QRS波、U波組成的一種周期性的波形[2]。波形的變化反應出病人是否患有心臟疾病,但是心電信號極易受到外界因素的干擾,比如醫療設備的干擾,生理活動,身體活動產生的運動干擾等等。嚴重影響了波形和心電信號的細節信息給醫療檢測帶來了困難。針對這一情況,國內外提出了許多心電信號去噪方法。比如小波變換法,它可以在去除心電信號噪聲的同時去除傳統的高斯噪聲,但是在實驗中發現利用小波變換法完成心電信號降噪后得到的心電信號的幅值出現了降低的現象。經驗模態分解法[3~4],這種方法可以分析多組信號達到快速降噪的效果,但是在降噪過程中有可能會丟失信號的有用信息。自適應濾波法[5],它是一種常用的去噪方法,算法實現簡單,但是這種算法具有局限性不能去除所有的心電信號噪聲。還有頻譜分解法[6],改進的小波變換[7~8]等等。這些方法都存在一些問題。
隨著時代的發展,大數據時代來臨,網上存在的大量心電信號數據完全可以支撐用深度學習的方法實現心電信號去噪,在大數據的支持下深度學習方法可以更好地學到數據的本質特征[14]。所以本文利用降噪自動編碼器[9]形成深度神經網絡完成心電信號降噪,提高心電信號算法的降噪能力。
本文采用的基礎網絡模型Auto-Encoder(AE)是20世紀80年代晚期提出的,它是一種無監督的數據維度壓縮方法,使用了反向傳播算法,讓網絡輸出值等于網絡輸入值[10]。
自動編碼器屬于最基本的一種神經網絡,最基本的AE可以看做一個簡單的三層神經網絡結構:一個輸入層、一個隱藏層和一個輸出層,其中輸出層與輸入層的網絡節點是相同的。它的目的是在經過神經網絡的編碼解碼過程將輸入信號重建得到輸出信號,最理想的情況是輸入信號與輸出信號相同。具體的網絡結構如圖1所示。

圖1 自動編碼器網絡結構
自動編碼器的編碼解碼過程可以表示為
編碼過程:

編碼過程:

其中w1,b1是屬于編碼的權重和偏置,w2,b2是屬于解碼的權重和偏置。編碼器的激活函數sf屬于非線性變換,通常采用sigmoid,tanh和rule等函數。解碼器的激活函數sg一般采用sigmoid函數或者恒等函數。所以自動編碼器的網絡參數θ={w1,w2,b1,b2}。當輸入信號x與重建信號y的誤差很小時,代表自動編碼器的神經網絡已經訓練完成。用重構誤差函數L(x,y)來表示x和y的誤差。
如果解碼器的激活函數sg為恒等函數,那么重構誤差函數:

如果解碼器的激活函數sg為sigmoid函數時,則重構誤差函數:


2.2.1 降噪自動編碼器(DAE)模型
傳統的自動編碼器只是通過最小化輸入信號與重構信號之間的誤差來獲取信號的有用信息,縮小重構誤差只能使模型學習到輸入信號,所以這個模型在提取數據特性上還需要改進。為了解決傳統自動編碼器的抗干擾能力差的問題,學者提出了降噪自動編碼器模型(DAE)[10~11,13],它的原理和AE基本相同,區別在于它在輸入信號輸入模型的過程中人為地添加了噪聲干擾,然后用含噪聲的輸入信號樣本重新構建出無噪聲的干凈的輸出信號。這種訓練方式使降噪自動編碼器可以學習到輸入信號基本的數據特征,幫助提取輸入信號更深層的特征表達。DAE模型如圖2所示,DAE也是通過輸入信號和重構信號之間的誤差來調整網絡參數達到誤差最小化,這個訓練方式與傳統的自動編碼器相同,它的不同點主要在于輸入信號x不是直接輸入網絡,隱藏層的特征表達不是由原始輸入信號通過編碼函數得到,而是由含噪聲的輸入信號樣本得到。用這種方式可以提高模型的抗干擾能力,增加噪聲魯棒性約束。

圖2 降噪自動編碼器結構
降噪自動編碼器具體的模型訓練過程如圖2所示,原始輸入信號x通過降噪自動編碼器以一定概率把輸入層節點的值置為0,從而得到含噪聲的輸入數據x*,被破壞的輸入數據通過編碼函數映射到隱藏層得到隱藏層的特征表達h,h通過解碼函數映射到輸出層得到輸出數據z,通過原始輸入數據x和輸出數據得到重構誤差函數L(x,z)。
DAE的編碼過程:

DAE的解碼過程:

根據自動編碼器和上面公式可得所DAE整體的損失函數為

根據上述式(8)通過梯度下降算法求得損失函數的最小值得到網絡的最佳參數。
2.2.2 SDAE網絡模型結構
本文通過堆疊多個降噪自動編碼器形成的深度神經網絡[15]。首先,輸入信號會根據DAE的基本原理,訓練得到第一個隱含層,丟棄DAE的解碼部分;然后,用訓練得到的隱含層作為輸入信號,再次使用DAE的工作原理,訓練得到第二個隱含層,并且再次丟棄DAE的解碼部分,從下到上完成堆疊DAE形成多層降噪自動編碼器。網絡結構如圖3所示。
基于降噪自動編碼器的心電信號去噪方法實驗流程圖如圖4所示。

圖4 實驗流程圖
本文使用的是PhysioNet/MIT-BIH中的心律失常數據庫(MIT-BIH Arrhythmia Database),隨機選取100號到119號共19條心電數據,每個心電信號數據選取2000到2300個心電周期,共計38000到43700個心電周期組成心電信號數據集。分別給每個ECG記錄疊加基線漂移[12](BW),肌電干擾[12](MA),電極干擾[12](EM)三種不同的噪聲(噪聲信號來自MIT-BIH數據庫中的噪聲數據庫),生成含噪聲的心電信號對網絡進行訓練和測試。其中訓練樣本為102到113號心電數據和117號心電數據。構造的訓練樣本分為無標簽的心電信號和有標簽的含噪聲心電信號兩部分。網絡訓練完成后利用118號數據進行測試。保證訓練集和測試集沒有重合部分,保證實驗的嚴謹性。
網絡預訓練就是采用非監督的逐層訓練方法,對網絡的各個隱藏層進行逐步訓練,然后把各個網絡層單獨訓練得到的權重作為多層降噪自動編碼器的初始網絡參數。本次實驗使用103號,117號,110號,113號心電信號數據集作為無標簽純凈的心電數據訓練降噪自動編碼器的參數,把得到的參數作為構建神經網絡的參數初始值,完成網絡預訓練。
把網絡預訓練使用的心電信號數據集分別疊加三種不同的噪聲信號形成有標簽的含噪聲的心電數據訓練樣本對整體的網絡參數進行調優,利用BP算法將所有層的網絡參數進行微調得到最優網絡參數,達到重構誤差最小化要求,神經網絡訓練完成。
本實驗利用信噪比(SNR)和均方根誤差(RMSE)來評價降噪自動編碼器(DAE)和多層降噪自動編碼器(SDAE)的去噪效果,原始心電信號為x(n),經過降噪處理后的得到的心電信號為xm(n),所以就可以求出降噪之后的心電信號和剩余噪聲信號的SNR:

均方根誤差:

DAE是由一個輸出層,一個隱藏層和一個輸出層組成,隱藏層的個數影響了神經網絡學習數據的能力,那么對心電信號降噪也會造成影響。所以本文利用降噪自動編碼器設置不同的隱藏層數搭建神經網絡完成心電信號降噪。為了保證本實驗的嚴謹性,都利用118號心電信號數據進行實驗,用一個降噪自動編碼器(DAE)形成淺層神經網絡,用兩個降噪自動編碼器(SDAE)堆疊形成深度神經網絡。為了保證輸入的心電信號擁有一個完整的心電周期,根據PhysioNet/MIT-BIH數據庫中的參考注釋和采樣頻率,設置輸入層和輸出層神經元個數設置為270,隱藏層神經元都設置為135。則DEA網絡結構為270-135-270,SDAE網絡結構為270-135-135-270。分別給118號心電信號疊加信噪比為0的基線漂移,肌電干擾,電極干擾三種不同的噪聲,得到含噪聲的心電信號。用這兩個神經網絡分別對疊加了三種不同噪聲的118號樣本進行實驗。
4.2.1 濾除基線漂移實驗結果對比
圖5從上到下依次顯示的是118號原始心電信號,疊加了BW噪聲的118號心電信號波形圖,經過DAE濾除BW噪聲后得到的心電信號結果圖,經過SDAE濾除BW噪聲后得到的心電信號結果圖。經過DAE處理后心電信號的信噪比為14.36dB,經過SDAE處理后信噪比為18.16dB,均方根誤差分別為0.077,0.045。

圖5 濾除基線漂移實驗結果對比
4.2.2 濾除電極干擾實驗結果對比
圖6從上到下依次顯示的是118號原始心電信號,疊加了EM噪聲的118號心電信號波形圖,經過DAE濾除EM噪聲后得到的心電信號結果圖,經過SDAE濾除EM噪聲后得到的心電信號結果圖。從實驗對比可以看出,經過DAE處理后心電信號的信噪比為13.21dB,經過SDAE處理后信噪比為19.38dB,均方根誤差分別為0.089,0.037。

圖6 濾除電極干擾實驗結果對比
4.2.3 濾除肌電干擾實驗結果對比
圖7從上到下依次顯示的是118號原始心電信號,疊加了肌電干擾噪聲的118號心電信號波形圖,經過DAE濾除MA噪聲后得到的心電信號實驗結果圖,經過SDAE算法濾除MA噪聲后得到的心電信號實驗結果圖。從實驗對比可以看出,經過DAE處理后心電信號的信噪比為14.95dB,經過SDAE處理后信噪比為19.54dB,均方根誤差分別為0.067,0.038。

圖7 濾除肌電干擾實驗結果對比
4.2.4 實驗分析
從以上實驗結果和經過算法降噪處理之后得出的信噪比SNR可以看出,無論是單隱藏層的降噪自動編碼器還是雙隱藏層的降噪自動編碼器都有效地去除了三種噪聲,但從DAE算法和SDAE算法的去噪效果的細節來看,DAE去除噪聲的能力還是遜色于SDAE。原因在于只有一個隱藏層的降噪自動編碼器(DAE)形成的淺層神經網絡無法深度記憶心電信號的本質特征,所以學習能力一般,降噪之后的ECG信號波形雖然大致與原始信號一樣,但是波形明顯加粗仍有一些噪聲殘余,P波的幅度受到了一定程度的影響,降噪效果不理想,而兩層隱藏層的多層降噪自動編碼(SDAE)形成的深度神經網絡,對數據進行更深層次的學習,使其能夠更有效地去除噪聲,基本還原了原始心電信號的形態。
為了體現SDAE算法對心電信號去噪效果的優越性,分別與DAE算法和文獻[7]中提到的S變換法三種去噪算法進行對比。

表1 不同信噪比下濾除基線漂移

表2 不同信噪比下濾除電極干擾

表3 不同信噪比下濾除肌電干擾
從上面三個表可以看出S變換法在對心電信號降噪的過程中,算法的降噪效果取決于心電信號中所含噪聲的多少即信噪比的大小,當信噪比越大時降噪效果越好,反之降噪效果越差,而本文提到的DAE算法和SDAE算法的降噪效果是相對穩定的,無論信噪比如何變化都能穩定的去除心電信號噪聲。所以從降噪的穩定性來看S變換法遠低于本文提到的算法。從降噪效果來看無論是DAE算法還是SDAE算法的降噪能力都遠遠超過了S變換法。
本文利用降噪自動編碼器對噪聲抗干擾能力強的優點同時結合多層降噪自動編碼器能有效地提取心電信號本質特征的特點完成心電信號降噪。在心電信號降噪過程中,完全可以利用多層降噪自動編碼器完成降噪處理。通過實驗表明多層降噪自動編碼器相比于傳統ECG去噪算法在面對非線性、非平穩的噪聲時具有更好的降噪效果。單隱藏層的降噪自動編碼器(DAE)的去噪能力也遠低于多層降噪自動編碼器(SDAE),所以深度神經網絡在學習深層次的數據特征比淺層神經網絡更具有優勢,那么在訓練網絡的過程中適當的增加隱藏層層數,可以提高算法的去噪能力。從理論上網絡模型可以無限增加網絡深度,隱藏層層數越多,節點越多,在訓練模型上的效果越好,甚至會達到100%預測精度,但是層數的增多,網絡參數也會增多,導致模型復雜度過高,就會出現神經網絡模型過擬合的情況。所以今后研究的方向是考慮網絡訓練的有效深度,選擇合適的網絡結構使模型能達到較好的預測效果的同時不會出現過擬合的情況。