王 莉,張紫燁,郭曉東,牛群峰
(河南工業大學 電氣工程學院,鄭州450001)
心電圖是心臟電活動在人體體表的反應,是檢測和診斷心臟疾病的重要依據。 早期心臟疾病診斷主要憑借醫生豐富的經驗,長時間診斷中可能存在誤檢或錯檢;隨著計算機技術的快速發展,實現心電信號自動分析成為研究的熱點。
心電信號分類的本質是模式識別,在研究中采用最廣泛的分類方法是神經網絡。BP 神經網絡是一種按誤差逆傳播算法訓練的多層前饋神經網絡,具有自組織、自學習、自適應的能力,且原理簡單,易于實現, 是目前應用最廣泛的神經網絡模型之一。但是BP 神經網絡存在學習過程收斂速度慢、學習效率低和學習過程易陷于局部極小等局限,尤其是BP網絡隱含層神經元個數的選取對神經網絡的學習能力和泛化能力有較大影響[1]。 針對BP 神經網絡的缺陷,許多學者提出了優化BP 網絡的學習算法,常見的有遺傳算法[2-4],布谷鳥算法[5],粒子群算法等[6]。
粒子群算法的本質是一種隨機搜索算法,這種算法實現容易、精度高、收斂快,被廣泛應用于許多學科。 文獻[7]中采用基于分塊的神經網絡(BBNN),通過粒子群算法優化神經網絡的結構和權重, 對5種心跳類型患者的心電圖進行分類,準確率達到了97%;文獻[8]中提出了一種基于粒子群算法優化徑向基函數神經網絡的心電圖分類方法,通過和徑向基函數神經網絡心電信號分類對比,結果表明經過粒子群算法優化的徑向基函數神經網絡結構更小、效果更優。 本研究提出了一種粒子群優化BP 神經網絡的心電信號分類方法, 通過修正BP 神經網絡的權值和閾值, 克服BP 神經網絡訓練易陷入局部極小的局限。 仿真結果表明,粒子群優化的BP 神經網絡分類精度更高,收斂速度更快。

圖1 典型三層BP 神經網絡結構Fig.1 Structure diagram of a typical three-layer BP neural network
BP 網絡是一種多層前饋神經網絡,由輸入層,隱含層和輸出層組成。 層與層之間有2 種信號在流通:一種是工作信號,它是施加輸入信號后向前傳播直到在輸出端產生實際輸出的信號,是輸入和權值的函數;另一種是誤差信號,誤差信號是網絡實際輸出與期望輸出間的差值,它由輸出端開始逐層向后傳播。 圖1 所示為一個典型的三層BP 神經網絡的結構圖,其中xj表示輸入層第j 個節點的輸入,j=1,…,M;wi,j表示隱含層第i 個節點到輸入層第j個節點之間的權值;θi表示隱含層第i 個節點的閾值;φ 表示隱含層的激勵函數;wk,i表示輸出層第k個節點到隱含層第i 個節點之間的權值,i=1,…,q;ak表示輸出層第k 個節點的閾值,k=1,…,L;ψ 表示輸出層的激勵函數;ok表示輸出層第個節點的輸出。
粒子群算法,也稱粒子群優化算法(PSO)。 PSO是模擬鳥群隨機搜尋食物的捕食行為。在PSO 中每個優化問題的潛在解都可以想象成搜索空間的一只鳥,稱之為“粒子”。 粒子主要追隨當前的最優粒子在解空間中搜索,PSO 初始化為一群隨機粒子,然后通過迭代找到最優解。 在每一次迭代中,粒子通過跟蹤2 個極值來更新自己:第一個就是粒子本身所找到的最優解,這個解稱為個體極值;另一個極值是整個種群目前找到的最優解,這個極值是全局極值。 在找到這2 個最優極值時,粒子根據如下公式來更新自己的速度和位置:

式中:xid是第i 個粒子的位置,vid是第i 個粒子的速度,pid是第i 個粒子搜索到最優位置,pgd是整個粒子群搜索到的最優位置;c1和c2為學習因子,r1和r2為[0,1]范圍內的均勻隨機數。
由于PSO 算法是基于啟發式學習的算法,具有同時搜索解空間的不同區域、 避免陷入局部極小、實現全局最優的特點[9]。 本研究將PSO 算法應用于BP 神經網絡訓練,構建PSO-BP 神經網絡模型,將每個神經元的權值和閾值作為解空間的一個粒子迭代尋優,PSO 優化BP 神經網絡算法具體步驟如下:
(1)確定BP 神經網絡的拓撲結構,設置BP 神經網絡每層神經元個數;初始化粒子種群,隨機設置各個粒子的速度和位置,粒子群算法主要運行參數設置見表1;
(2)計算每個粒子的適應度值Fit[i];
(3)比較每個粒子的適應度值Fit[i]和個體極值,如果Fit[i]>pbest(i),則用Fit[i]替換掉pbest(i);
(4)比較每個粒子的適應度值Fit[i]和全局極值gbest(i),如果Fit[i]>gbest(i),則用Fit[i]替換掉gbest(i);
(5)根據式(1)和式(2)更新粒子的位置和速度;
(6)如果滿足條件(誤差足夠好或達到最大循環次數),則退出,否則返回第二步;
(7)將得到的全局極值gbest(i)作為BP 神經網絡的權值和閾值,用訓練樣本訓練神經網絡;
(8)用測試樣本進行仿真,得到心電信號類型分類結果。

表1 PSO 算法參數設置Tab.1 PSO algorithm parameter settings
本研究中用于分析的心電信號均來自于MITBIH Arrhythmia Database, 該數據庫包含48 組心電數據,采樣頻率為360 Hz,時間長度一般為30 min。每一數據樣本包含3 個文件:頭文件(.hea),數據文件(.dat)和注釋文件(.atr),其中注釋文件是心電診斷專家對信號分析的結果,包括心跳,節律和信號質量等[10]。48 組記錄中,每組記錄包含約650000個采樣點,全部正常心拍(Normal)(或異常心拍在2%以下)有23 組,左束支傳導阻滯(LBBB)有2組,右束支傳導阻滯(RBBB)有2 組,起搏心拍(Paced beat)有1 組,其余的記錄樣本則大多為正常心拍,左束支傳導阻滯、右束支傳導阻滯、房性早搏、室性早搏、起搏等心拍的混合,具體樣本分類見表2(只列出正常和完全異常的心電信號樣本)。

表2 MIT-BIH 心率異常數據庫樣本分類Tab.2 Sample classification of MIT-BIH arrhythmia database
本研究主要針對正常、左束支傳導阻滯和右束支傳導阻滯3 種心電信號進行分類識別,3 種典型心電信號類型的心電圖如圖2 所示。

圖2 三種典型心電信號心電圖Fig.2 Three typical ECG
從圖2 可以看出,左束支傳導阻滯QRS 波群時限≥0.12 s,右束支傳導阻滯QRS 波群時限≥0.12 s,均比正常心電信號QRS 波群時限長;左束支傳導阻滯呈寬大,較深的S 波,右束支傳導阻滯S 波增寬且有切跡;左束支傳導阻滯和右束支傳導阻滯R 峰時間均比正常信號時間長[11]。
本研究利用小波多分辨率分析原理,在小波域上對心電信號去除基線漂移干擾,然后運用極大極小值過零點原理檢測R 波峰值,采用平面幾何法定位QS 波峰值, 在零基線附近定位QRS 波起止點,依據圖2 的分析,在108000 個采樣點中提取RR 間期,QRS 波間期和R 波,Q 波,S 波振幅5 個特征參數作為特征向量,每種心電類型100 組數據,共300組樣本。
在本研究中, 選擇只有1 個隱含層的3 層BP神經網絡, 將心電信號提取的5 組特征值作為輸入;因此,網絡輸入層有5 個神經元;隱含層神經元數目的選擇往往需要根據設計者的經驗和多次實驗來確定,本研究根據參考公式設置隱含層為10 個神經元, 其中m 為輸出神經元數,n為輸入單元數,a 為[1,10]之間的常數;輸出層為3種心電信號類型的分類結果, 所以輸出層設置為3個神經元;神經網絡的輸出向量采樣“n”中取“1”法表示,即分別用001,010,100 表示正常,左束支傳導阻滯,右束支傳導阻滯類型。綜上所述,PSO-BP 網絡的拓撲結構為5-10-3。
首先,初始化網絡中的參數,選取正常、左束支傳導阻滯、右束支傳導阻滯共210 組樣本作為訓練樣本,另一部分作為測試樣本,對特征向量樣本歸一化處理,分別用BP 神經網絡和PSO-BP 神經網絡訓練樣本并仿真。 粒子適應度是反應粒子當前位置優劣的一個參數, 圖3 是粒子群的適應度變化曲線,可以看出,隨著迭代次數的增加,適應度值越來越小,與之相反,個體的適應度會越來越高。

圖3 適應度變化曲線Fig.3 Fitness curve
圖4和圖5 分別是BP 神經網絡和PSO-BP 神經網絡訓練過程中驗證樣本、測試樣本與訓練樣本的誤差曲線, 可以看出,BP 神經網絡和PSO-BP 神經網絡都能較好地對不同的心電信號類型分類,但是PSO-BP 神經網絡的均方誤差更小, 分類精度更高;同時,由于粒子群算法具有更快的計算速度和更好的全局搜索能力,可以有效地避免陷入局部極值,因此PSO-BP 算法迭代次數更少,收斂速度更快。

圖4 BP 網絡訓練誤差Fig.4 BP network training error

圖5 PSO-BP 網絡訓練誤差Fig.5 PSO-BP network training error
BP 算法和PSO-BP 算法對心電信號的分類結果見表3,可以看出,相較于BP 算法,PSO-BP 算法分類效果更好,準確率達到了98.20%。

表3 兩種算法的分類結果Tab.3 Classification results of the two algorithms
本研究將粒子群算法用于BP 神經網絡, 并構建PSO-BP 神經網絡模型,實現對BP 神經網絡權值和閾值的優化, 克服BP 訓練過程易陷入局部極小的缺陷;通過對比BP 神經網絡和PSO-BP 神經網絡對心電信號特征提取分類結果, 研究結果表明,基于PSO-BP 神經網絡的心電信號分類方法比BP 神經網絡分類精度更高,收斂速度更快,對于心電疾病的自動診斷具有較高的應用價值。