包志強,趙志超,王宇霆
(西安郵電大學 通信與信息工程學院,陜西 西安 710121)
心電信號(electrocardiogram,ECG)為反映人體心臟活動的一種時間序列[1]。目前心電自動分類診斷常用離散小波變換[2,3]、特征選擇[4,5]、隱馬爾可夫模型(HMM)[6,7]、混合專家[8]等技術。Subramanian B等[3]提出了一種小波變換技術用于心電信號節拍的壓縮。Teijeiro T等[5]提出一種對心電圖的外展解釋,獲得每一次心跳的一組定性形態學和節律特征的方法。Jorge Oliveira等[6]提出隱馬爾可夫模型用于心電圖節拍分割和分類。這些方法需要一定的信號先驗知識以及經常需要專家輸入,這些限制了該方法的應用。
研究者們將目光轉向卷積神經網絡[9-11],將快速傅里葉變換和卷積神經網絡結合并取得不錯的效果[12,13]。Tahmid Abtahi等[12]比較了直接卷積、基于快速傅里葉變換的卷積和快速傅里葉重疊加卷積,發現快速傅里葉重疊加卷積較前兩者減少了運行時間。Mihir Mody等[13]提出了一種避免內存增長的頻域算法,直接對系數進行傅里葉變換,在頻域內進行有效的二維卷積。
為了減少卷積運算的復雜度,本文在改進的基于快速傅里葉變換的卷積模型上提出一種改進的模型快速傅里葉變換-卷積神經網絡(fast Fourier transform-convolutional neural network,FFT-CNN),該模型卷積部分首先以固定步長對心拍數據進行劃分,接著對所劃分的數據首尾均以首尾數據延長固定個長度,然后對所補數據經過快速傅里葉變換并與卷積核相乘,最后經過快速傅里葉逆變換并分別相加,本文將該模型應用于一維心拍信號實現了4種心拍的預測,在減少運行復雜度的基礎上取得了較好的預測效果,有效提高了運算效率。
傳統卷積神經網絡的卷積使用的是一種滑動窗口的技術,需要卷積核在數據上滑動,在每個滑動位置處卷積核與相應的數據之間執行乘法累積,如式(1)所示

(1)
由于卷積神經網絡在分類方面的優越性,在以往心拍分類中,一維卷積神經網絡[14]和二維卷積神經網絡[11]模型都會被使用。卷積的過程是提取特征重要的部分,而恰恰卷積是傳統卷積神經網絡最耗時的部分,大約接近于90%的時間用于卷積階段[12],為了有效地提高網絡的運行效率,本文基于快速傅里葉重疊以及加法卷積提出了一種深度學習算法。原始一維心拍數據為L_1,卷積核的長度為L,為了使模型能夠不受數據長短的影響,對原始心拍數據進行統一長度操作,通過計算,將所有數據統一補零至L_2,補零后的數據表示如式(2)所示
L_2=[(0,…,0),L_1,(0,…,0)]
(2)
將補零后的數據按固定長度L依次切割為n個塊數據如式(3)所示,并對每個數據兩端各補5個首尾值,補值后數據d(n)表示如式(4)所示
d1(n)=L_2(nL-L+1,nL)
(3)

(4)
對每一塊數據分別做快速傅里葉變換,再對卷積核做快速傅里葉變換,將每塊數據頻域的結果和卷積核頻域的結果相乘,每一塊乘積B(n)如式(5)所示

(5)
對每一塊乘積分別做快速傅里葉逆變換,接著將逆變換的結果分別相加起來得到本文定義的卷積結果,如式(6)所示
(6)
傳統的一維卷積神經網絡與本文提出的模型FFT-CNN中卷積結構如圖1所示。傳統的卷積神經網絡卷積部分是先以卷積核的長度5個采樣點按照步長一個采樣點取數據,接著實現數據和卷積核的相乘和相加,得到卷積后的結果。本文模型中提出的卷積部分首先將心拍數據按照3個采樣點進行劃分,并且在首尾位置分別延長一個單位,數據分別補為首尾的數據,將每個延長的數據分別通過快速傅里葉變換,再與卷積核相乘,對乘積經過快速傅里葉逆變換,最后把每個數據的結果相加起來則得到本文模型定義的卷積。最終,將卷積的結果經過池化實現特征的降維,進而壓縮參數,再經過全連接層將前面的特征綜合起來,最后經過softmax函數輸出4種類型的概率值,通過反向傳播不斷更新網絡參數,一次次迭代得到最終網絡模型,最后通過概率值判斷類別。

圖1 傳統卷積神經網絡和本文模型的卷積結構
FFT-CNN與BP網絡類似,都是通過反向傳播來進行權重和偏置的調節,使用梯度下降法更新。
1.3.1 反向傳播步驟
(1)實現網絡的前向傳播,并得到每個節點的輸出值;
(2)求出該網絡的損失函數;
(3)計算輸出層樣本值與輸出的殘差δnl;
(4)計算出其余每層各節點的殘差δl;

(6)根據梯度下降法更新權值w和偏置b。
1.3.2 殘差傳遞
(1)損失函數
對于一個樣本集{(x1,y1),(x2,y2),…,(xn,yn),每個樣本的損失函數定義如式(7)所示
(7)
此損失函數為softmax損失函數,softmax層最后輸出每個類別的概率值,式中sj表示的是輸出量s的第j個值,表示的是這個樣本屬于第j類的概率,j的范圍為從1到類別的個數T,所以y是一組1*T的向量,且里面的T個值只有一個值為1,其它的T-1個值均為0。為1的那個值就是真實標簽對應的位置,其它都是0。
(2)輸出層的殘差與其它層略有不同,對于輸出層nl的每個節點i的殘差計算公式如式(8)所示
(8)
(3)由于池化層的操作是將輸出的特征層每一個元素對應卷積層一塊區域。所以需要將池化層的殘差上采樣傳遞到卷積層。殘差計算如式(9)-式(10)所示
(δl+1)′=(δl+1)
(9)
(10)
卷積層的殘差為卷積核轉置與上采樣后的殘差做卷積運算,再乘以激活函數的導數。由于本文的結構在前項傳播中沒有進行池化,故只需將池化層的殘差順利搬移到卷積層。
1.3.3 參數更新
由上面得到的殘差,進而計算出損失函數對權值w,偏置b的偏導數。計算公式如式(11)-式(12)所示
(11)
(12)
對于權值w的偏導,由于在進行前向卷積的時候對數據和卷積核都用到了快速傅里葉變換,在此處更新時同樣要用到快速傅里葉變換。傳統的卷積神經網絡對權值w的偏導為第l層的數據直接與第l+1層的殘差相乘,本文的模型里,要首先對第l層的數據做快速傅里葉變換,接著將快速傅里葉變換的結果與第l+1層的殘差相乘進而得到損失函數對權值w的偏導。
對于一個矩陣維度為1×4,卷積核維度為1×3,輸出維度則為1×2,則反向傳播的殘差也是1×2矩陣。按照上面的描述,對權值w的偏導表示如式(13)所示
(13)
令數據的快速傅里葉變換如式(14)所示
(14)
對權值w的偏導重新表示如式(15)所示

(15)
則對這個卷積核矩陣每一個卷積核的偏導表示如式(16)-式(18)所示
(16)
(17)
(18)
對于偏置b的偏導同常規的偏置一樣為第l+1層的殘差。
REN Jie, HUANG Hai-dong, WANG Qin, YANG Yu-guang, HUANG Yi, LI Qiang, BAI Chong
根據上面得到的對權值w,偏置b的偏導數,進而根據梯度下降法更新權值w和偏置b。計算公式如式(19)-式(20)所示
(19)
(20)

ECG記錄了人體心臟在一個周期的活動情況[15],ECG由眾多個心電節拍組成,也簡稱心拍。一個心拍表示了心臟的一次搏動,正常的一次心拍包含P波、QRS波和T波,如圖2所示。人類的心臟病態各異,心拍的形態也千變萬化。

圖2 正常心拍波形
為了驗證所提出模型FFT-CNN的分類效果,采用來自某機構真實的心電數據,該數據共包含兩個通道,本文選取了4種類型數據,包括心房顫動、心房撲動、右束支傳導阻滯和正常。每種類型每個通道均截取心拍750個,一通道包含數據3000個,二通道同樣包含數據3000個。
在實驗過程中,選取80%的數據作為訓練集,20%的數據作為測試集,將整體的預測正確率作為評價準則。所用數據統一經過數據歸一化處理。設置核尺寸為1×20,yita=0.001。為了評估所提出模型的有效性,設計了兩組對比實驗。分別和傳統一維卷積神經網絡,基于快速傅里葉變換卷積兩種模型進行對比。
為了描述復雜度,此處統一規定數據的維度為N×1,卷積核的維度為K×1。3種模型復雜度見表1。

表1 3種模型復雜度
從表1中很明顯可以得到,傳統的卷積神經網絡計算復雜度最高,用于計算的成本會更高。由于引入了快速傅里葉變換,基于快速傅里葉變換卷積復雜度較傳統卷積神經網絡有明顯降低。本文模型具有較低的復雜度,能有效地減少用于卷積的時間,大大提高模型的效率。
本文實驗平臺為Intel Core(TM) i5-3337U CPU @3.30 GHz,內存為8 GB,仿真軟件為Matlab R2014b。3種模型整體預測正確率和運行時間比較見表2。

表2 3種模型效果比較
從表2中可以看出,3種模型的比較中,本文提出的模型FFT-CNN平均正確率最高,達到了98.5%的預測正確率,說明了本文模型預測效果最優,其次是傳統的卷積神經網絡,達到98%正確率,效果稍差的為基于快速傅里葉變換的卷積,預測正確率為97%。在運行時間方面,本文模型具有最短的時間,說明本文模型較好于其它兩種模型。
因為二通道的數據信噪比普遍優于一通道,故在結果上表現二通道效果略強于一通道。本文模型對數據進行快速傅里葉變換時,通過在數據兩端各補5個首尾數據,延長做快速傅里葉變換的數據長度,使模型充分學習到每段數據的連接部位特征,這些細節可能恰恰是診斷疾病類型的重要因素,顯著地提高了模型的預測準確率。同時,由于使用了快速傅里葉變換以及簡單的乘法操作大大減小了運算復雜度,故在運行時間上有縮短。說明本文模型可以準確并快速的預測心拍分類。
傳統卷積神經網絡、基于快速傅里葉變換的卷積和本文所提出的算法在訓練過程中的LOSS值如圖3所示。LOSS值反映了模型對數據預測的概率,LOSS值越小,預測的概率越高。可發現3種模型總體上都最終趨于收斂,本文提出的模型雖在前面迭代時收斂速度略緩于之前的兩種模型,但在迭代次數達到50次之后,本文模型的LOSS值達到了最小,進一步體現了本文模型的泛化性和魯棒性,也從另一個方面說明了神經網絡的優勢。

圖3 訓練過程LOSS值
表1反映本文模型具有較低的模型復雜度,表2反映本文模型擁有較高的預測正確率,圖3反映本文模型具有較好的泛化性和魯棒性。總之,本文模型可以有效應用于心拍類別預測。
本文基于傳統卷積神經網絡,在快速傅里葉重疊以及加法卷積的基礎上提出了一種改進的深度學習模型FFT-CNN,將快速傅里葉變換引入卷積神經網絡中卷積部分,融合兩種方法的優勢以充分提取到心拍數據各個部分的特征。實驗結果表明,本文利用快速傅里葉變換提出的深度學習模型FFT-CNN與傳統的卷積神經網絡和基于快速傅里葉變換的卷積兩種模型相比,有效地減少了運算的復雜度,并且提升了預測效果,可以應用于便攜式心電診療設備,作為臨床醫生的輔助手段。