高碩 許少華



摘 要 :針對復雜非線性多通道時變信號模式分類問題,提出了一種集成卷積神經網絡(CNN)與隨機森林(RF)相融合的方法。該方法以CNN為基學習器,自動提取信號樣本的抽樣特征,同時省去降維與人工選擇特征的過程,以RF為次級學習器,增加樣本擾動,同時增加屬性擾動。為增強樣本多樣性,使得該模型盡可能充分利用信息,在訓練集中隨機抽取7份子訓練集,再利用7份子訓練集訓練出7個不同的學習器;最后通過投票法和學習法建立集成模型,提高了識別精度。實驗結果表明,在測量區間上,該方法對3種ECG信號類別的平均分類精度達94.60%,提高了1.1%,取得了良好結果,驗證了模型和算法的有效性。
關鍵詞:非線性時變信號;心電信號分類;卷積神經網絡;隨機森林;集成學習
DOI:10. 11907/rjdk. 191705 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP301文獻標識碼:A 文章編號:1672-7800(2019)007-0024-04
Application of An Ensemble CNN Model in ECG Signal Classification
GAO Shuo,XU Shao-hua
(College of Computer Science and Engineering,Shandong University of Science and Technology,Qingdao 266590, China)
Abstract:Aiming at the problem of complex nonlinear multi-channel time-varying signal pattern classification, we propose a method of ensemble convolutional neural network (CNN) and random forest (RF). The method uses CNN as the base learner to automatically extract the sampling features of signal samples, and eliminates the process of dimension reduction and manual selection. RF is the secondary learner which increases the sample disturbance and increases the attribute disturbance. In order to enhance the sample diversity, the model makes full use of the information, randomly extracts the 7 sub-training set in the training set, and then uses the 7 sub-training set to train 7 different learners. Finally, the ensemble model is constructed by voting method and learning method, then the classification accuracy is improved. The experimental results show that the average classification accuracy of the three ECG signal classes is 94.60% and 1.1% higher in the measurement interval, and good results are obtained, which verify the validity of the model and algorithm.
Key Words:nonlinear time-varying signal; ECG signal classification; convolutional neural network;random forest;ensemble learning
基金項目:山東省重點研發計劃項目(2015GGH309003)
作者簡介:高碩(1992-),男,山東科技大學計算機科學與工程學院碩士研究生,研究方向為云計算、大數據處理;許少華(1962-),男,山東科技大學計算機科學與工程學院教授、博士生導師,研究方向為人工智能、大數據分析。本文通訊作者:許少華。
0 引言
在信號處理領域,頻率和幅值隨時間變化而變化的多成分信號,被稱為時變信號(Time Varying Signal,TVS),如語音、音樂、生物醫學和地震信號等[1]。信號樣本往往高度依賴于時間變化,其模態特征可以是可變的或不規則的,特別是對于一些復雜的多變量非線性系統[2]。例如,心電圖信號是非線性、非平穩等特性的信號,包括多個峰值、周期和其它具有挑戰性的特征。它們還表現出由生理機制差異引起的心跳頻率、心跳間隔和信號強度變化。因此,多通道信號的組合特性非常復雜,給時變信號系統分析和建模帶來了挑戰[3]。
心血管疾病(CVDs)是世界范圍內的主要死亡原因,其管理已成為全球的當務之急[4]。心電信號(ECG)作為一種能夠表征心臟狀況的生理信號,對心血管疾病的檢測和診斷具有重要意義。最近研究發現,CNN在時間序列生物信號中的應用前景廣闊,如ECG[5-6]、EGG[7-8]。CNN框架可利用大的訓練數據集提高分類性能,與許多傳統方法相比,不需采用人工方式,也不需顯式的特征提取、特征選擇和降維過程。
基于心電信號的心血管疾病診斷是醫學信息技術和人工智能領域的熱點問題。2017年,Hong等[9]提出了將專家特征與神經網絡相結合進行心電分類的方法;Zhou等[10]提出了一種利用一維卷積神經網絡進行AF檢測的方法;Pyakillya[11]等提出了一種一維卷積層和FCN層用于心律失常檢測的深度學習結構;2018年,Salem等[12]將每個數據實例都通過光譜圖轉換成圖像,圖像被輸入到一個預先訓練好的DenseNet(一個161層的深度CNN)中,通過找到12個中間卷積層的輸出實現特征提取。
本文對ECG時變信號在測量區間段進行識別分類,不進行心拍識別,這大大減少了人工標注成本。為進一步提高分類精度,使用集成學習方法,可獲得比單一學習器顯著優越的泛化性能[13]。為獲得好的集成,個體學習器應 “好而不同”,即個體學習器不能太壞,要有一定準確性,并且要有多樣性,即學習器之間具有差異性[13]。因此,本文采用CNN作為心電信號識別個體學習器。由于數據集差異對CNN的分類能力有重要影響,本文利用不同數據子集訓練出不同的個體學習器,盡可能充分利用信息。首先,通過截取和抽析方法對數據預加工,再采用低通濾波進行降噪處理,將12導聯信號構成二維結構樣本;然后,本文進行數據樣本擾動,在訓練集中隨機抽取7份子訓練集,再利用不同的數據子集訓練出不同的個體學習器,通過投票法和隨機森林分類器建立集成模型。實驗結果表明,該方法有利于提升ECG信號分類效果。
1 卷積神經網絡與隨機森林
1.1 卷積神經網絡
卷積神經網絡[14](Convolutional Neural Network, CNN)作為一種經典的深度學習方法,在分類識別領域中發揮著重要作用。本文重點之一是設計合理有效的CNN結構以獲得較好的ECG信號識別精度。
1.1.1 卷積層
卷積層是卷積神經網絡的核心,其主要作用是對輸入數據進行特征提取。計算式為:
[xlj=fi∈Mjxl-1i×wlij+blj]? (1)
其中,[xlj]表示第[l]層特征圖第[j]個特征;[Mj]為選取的輸入特征圖;[xl-1i]表示第[l-1]層特征圖第[i]個特征;[wlij]表示第[l]層的第[j]個特征與[l-1]層的第[i]個特征的連接權值;[blj]為相對應的偏置參數;[f(?)]為激勵函數。
1.1.2 池化層
池化層也稱子抽樣,它通常根據特定因素對輸入特征映射進行子抽樣,目的是降低輸入時間序列的分辨率,使其對以前學習特性的小變化具有魯棒性。目前常用的池化方法包括最大池化(Maximum Pooling)與平均池化(Average Pooling)。
1.1.3 全連接層
全連接層也稱內積層,在整個卷積神經網絡中起到對提取的特征進行歸類的作用。計算式如下:
[δlj=f(i=1nxl-1i×klji+blj)] (2)
其中,[l]表示全連接層;[n]為相鄰層的神經元個數;[klji]表示該層神經元[j]與相鄰神經元[i]的權重;[blj]表示該層的偏置;[f(?)]表示對應的激活函數。
1.1.4 Softmax分類器
對于CNN的輸出向量,常用Softmax函數進行歸一化,映射為概率值,該函數式為:
[zi=softmax(oi)=exp(oi)cexp(oc)] (3)
其中,[oi]是對應于第[i]個類別的輸出神經元的值。
1.2 隨機森林
隨機森林[15](Random Forest,RF)可以視為Bagging算法的一種擴展方法,對異常值和噪聲具有很強的容忍能力,且不易過擬合,識別精度高,其基學習器是決策樹。相比普通決策樹,隨機森林中的決策樹不僅增加了樣本擾動,還增加了屬性擾動,使得個體學習器的差異進一步增大,有助于提升集成后的效果。本文采用CART(Classification And Regression Tree)算法生成決策樹,而節點處最優特征的選擇以及該特征的最優二值切分點以基尼指數為指標進行選擇[16-17]。
CART決策樹使用基尼指數選擇屬性,使用基尼值衡量數據集D的純度。
[Gini(D)=k=1yk'≠kpkpk'=1-k=1yp2k] (4)
直觀而言,[Gini(D)]反映了從數據集D中隨機抽取兩個樣本,其類別標簽不一樣的概率。因此,[Gini(D)]越小,則數據集D的純度越高。
屬性a的基尼指數定義為:
[Gini_index(D,a)=v=1VDvDGini(Dv)] (5)
因此,在候選屬性特征集合A中,選擇那個使得劃分后基尼指數最小的屬性作為要選擇的最優劃分屬性,即:
[a?=argmina∈A Gini_index(D,a)] (6)
2 集成卷積神經網絡
2.1 數據集與CNN結構設計
數據樣本分布對CNN的網絡分類結果有重要影響,為使模型具有較大的差異化即多樣性大的基學習器,且充分利用信息,首先將數據集按3∶1分為訓練集和測試集,然后在訓練集中隨機抽取其3/4的樣本數,抽取k次,共獲得k個子訓練數據集,對應k個CNN分類器,分別為 CNN1~ CNNk。為了保證所有訓練集數據都有機會參與訓練,在前兩次抽取過程中對樣本重復次數進行了控制,使得前兩個模型中不重復的樣本數覆蓋了訓練集。
在k個CNN模型中,池化層方法選擇平均池化,并在網絡最后添加Softmax分類器,節點數設定為3。設定卷積核步長在各方向均為1,邊界處理采取不補零措施,激活函數選用修正線性單元(Relu),池化方法選擇平均池化,網絡損失函數采用交叉熵[18](Cross-entropy),模型訓練算法采用自適應動量估計(Adam)[19]。
CNN基學習器的信息處理流程和結構參數如圖1所示。首先將提取的ECG信號二維結構樣本作為網絡輸入,然后進行五層卷積池化操作,提取和降維樣本抽象特征,之后經過三層全連接層變換至3個輸出點,通過連接Softmax分類器獲得最終結果。
圖1 卷積神經網絡信息流程結構
圖1中每個階段由3個級聯層組成:卷積層、激活層和池化層。根據模板C1(Size)-S1-C2(Size)-S2-C3(Size)-S3-C4(Size)-S4-C5(Size)-S5-H1-H2-O,C1到C5分別是第一階段到第五階段的過濾器數量,Size表示卷積核的大小,S1和S2是子抽樣因子,H1、H2和O表示全連接層和輸出層中的單元數。
本文設計的CNN網絡結構參數為:32(5)-4-64(5)-4-64(5)-4-128(5)-4-128(5)-4-2000-256-3。這里的卷積核均為一維卷積。
2.2 集成策略
采用集成學習方法,可獲得比單一學習器顯著優越的泛化性能[13]。集成學習需要各基分類器之間存在一定的差異性,從而能夠克服單個模型易陷入過擬合的缺陷。
本文在k個CNN基分類的基礎上,通過投票法和學習法的集成策略,得到最終分類結果。[subset1~subsetk]為子訓練集,[CNN1~CNNk]為基學習器,[feature={x1,x2,?],[xm}]為Softmax概率輸出融合的新特征向量。
(1)投票法。根據基分類器的分類結果,按照“少數服從多數”的策略,提取出現最多的類別為最終分類標簽。主要步驟如下:
Step1:采用K個子訓練集訓練出K個CNN學習器,訓練完成后固化模型參數;
Step2:使用K個CNN固化模型并列提取測試集的輸出結果標簽;
Step3:按照“少數服從多數”的策略,提取出現最多的類別為最終分類標簽。
(2) 學習法。即通過另一個學習器加以結合,框架如圖2所示。學習法的主要步驟如下:
Step1:采用K個子訓練集訓練出K個CNN學習器,訓練完后固化模型參數;
Step2:使用K個CNN固化模型并列提取訓練集數據的Softmax概率輸出結果作為特征向量;
Step3:融合提取的特征向量作為新特征向量,組成新的特征集;
Step4:將新的特征集送入隨機森林分類器,訓練隨機森林分類器;
Step5:測試集重復Step2和Step3,然后送入訓練好的隨機森林分類器進行測試。
3 在ECG信號分類中的應用
3.1 ECG數據準備和預處理
本實驗所用數據集來自中國心血管病數據庫[20](the Chinese Cardiovascular Disease Database,CCDD)數據庫中12導聯的ECG信號樣本,采樣頻率為500Hz,每條記錄時間為10s左右,標注了專家對疾病的診斷結果。疾病名稱和樣本數如表1所示。
表1 實驗樣本數據分布
在數據處理中,由于人體的生理機能、疾病類型不同,使得相同ECG采樣時間內包含的采樣點數也不完全相同。為便于計算,本文統一選擇截取4 500個點,再使用抽析的處理方法使每個導聯統一成長度為2 250維的向量。處理完后,每副心電圖轉換為一個12*2 250的二維矩陣,將其作為一個樣本。
為了去除噪聲對實驗結果的影響,在對數據截取之前,使用了MATLAB工具箱自帶的巴特沃斯濾波器(Butterworth)對數據進行了低通濾波處理。截止頻率Wn為0.08,濾波器的階數N為4。
3.2 實驗環境配置
實驗數據處理環境為:MATLAB R2016b win64,Windows 7旗艦版系統,硬件配置Intel(R) Core(TM) i7-3770 CPU、主頻3.40GHz、內存8GB。
算法運行云平臺環境:Python3.6.4|Anaconda+tensorflow1.5.1,16.04.1-Ubuntu SMP,硬件配置CPU8核、內存32G、NVIDIA TITAN?X GPU一塊。
3.3 實驗參數設置
本文隨機抽取樣本次數k為7,構建7個CNN學習器。訓練Bachsize中的訓練數據樣本數為256個,初始學習率設置為0.01。學習率采用了更靈活的學習率設置方法——指數衰減法。衰減系數是0.95,衰減速度是30輪一次。本文針對激活函數使用Relu函數,在其前面都添加了BN(Batch Normalization),并在全連接層后添加了Dropout方法。隨機森林選擇基學習器個數為200。
3.4 實驗結果與分析
子模型和集成模型的識別率如表2和表3所示。
集成模型策略2,CNNRF在測試集中每類Precision、Recall、F1-score上的表現如表4所示。
表2 子模型識別率
表3 集成子模型與集成模型識別率
表4 CNNRF在各指標上的表現
[標簽\&Precision\&Sensitivity/Recall\&F1-score\&0\&0.96\&0.96\&0.96\&1\&0.96\&0.97\&0.96\&2\&0.91\&0.90\&0.90\&]
與其它方法相比,結果如表5所示。
表5 與其它方法相比結果
各子模型CNN1~CNN7的準確率均低于集成模型CNNRF;CNNRF相比于CNNS(訓練集)模型的準確率提高了1.09%,并且略優于CNN(投票法)。Reference[10,12]在2導聯的ECG信號分類上的識別率達到了較高的識別水平,Reference[12]中對心房顫動的識別精度為94.76%,本文識別精度為96%,Reference[9,11]的準確率明顯低于本文結果。相比而言,本文采用CCDD數據庫中的12導聯ECG信號更加復雜,在測量區間段,三分類準確率達94.60%,能夠滿足ECG信號識別研究需要。
4 結語
本文提出了一種基于集成卷積神經網絡的心電信號識別方法,利用CNN可以自動提取樣本抽象特征,避免了人工設計算法提取特征與降維等步驟,并設計了抽樣方案,借助集成學習優勢,集成了7個不同樣本的基學習器,充分發揮了數據多樣性的優勢,獲得了94.60%的分類準確率。但同時,深度學習對樣本的數量要求較多,本文方法針對數據不均衡的數據集效果欠佳。針對這一不足,可以考慮使用生成式對抗網絡進行數據增強,這也是下一步研究的方向。
參考文獻:
[1] KODERA K,GENDRIN R,VILLEDARY C. Analysis of time-varying signals with small BT values[J]. IEEE Transactions on Acoustics, Speech and Signal Processing,1978,26(1):64-76.
[2] BOUOUDEN S,CHADLI M,KARIMI HR. Control of uncertain highly nonlinear biological process based on Takagi-Sugeno fuzzy models[J]. Signal Process,2015,108:195-205.
[3] GAO J,MURPHEY Y L,ZHU H. Multivariate time series prediction of lane changing behavior using deep neural network[J]. Applied Intelligence,2018,48(10):3523-3537.
[4] World Health Organization. 2017-2030全球病媒控制對策草案[Z]. 2017.
[5] KIRANYAZ S,INCE T,GABBOUJ M. Real-time patient-specific ECG classification by 1-D convolutional neural networks[J]. IEEE transactions on bio-medical engineering,2015,63(3):664-675.
[6] 項延德. 基于卷積神經網絡的心電信號檢測和分類研究[D]. 杭州:浙江大學,2018.
[7] 魏琛,陳蘭嵐,張傲. 基于集成卷積神經網絡的腦電情感識別[J/OL]. 華東理工大學學報:自然科學版,2018-07-05.http://kns.cnki.net/KCMS/detail/31.1691.TQ.20180705.0940.001.html.
[8] 陳占剛. 基于深度神經網絡的腦電情感識別研究[D]. 合肥:合肥工業大學,2018.
[9] HONG S,WU M,ZHOUY,et al. Encase: an ensemble classifier for ECG classification using expert features and deep neural networks[J]. Computing in cardiology (CinC),2017:1-4.
[10] ZHOU X, ZHU X,NAKAMURA K,et al. Atrial fibrillation detection using convolutional neural networks[C]. 2018 9th International Conference on Awareness Science and Technology (iCAST), 2018.
[11] PYAKILLYA B,KAZACHENKO N,MIKHAILOVSKY N. Deep learning for ECG classification[J]. Journal of Physics: Conference Series,2017,913(1):012004.
[12] SALEM M,TAHERI S,SHIUN-YUAN J. ECG arrhythmia classification using transfer learning from 2-Dimensional deep CNN features[C]. ?IEEE Biomedical Circuits and Systems (BioCAS),2018.
[13] 周志華. 機器學習[M]. 北京:清華大學出版社, 2016.
[14] LECUN Y L,BOTTOU L,BENGIO Y,et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE,1998,86(11):2278-2324.
[15] BREIMAN L. Randam forests[J]. Machine Learning,2001,45(1):5-32.
[16] TAISUKE S. A statistical learning method for logic programs with distribution semantics[C]. Logic Programming: The 12th International Conference,1995.
[17] 李航. 統計學習方法[M]. 北京:清華大學出版社,2012.
[18] BOER P T D,KROESE D P,MANNOR S,et al. A tutorial on the cross-entropy method[J]. Annals of Operations Research,2005,134(1):19-67.
[19] DIEDERIK K,JIMMY B. Adam:a method for stochastic optimization[C]. Proceedings of the 3rd International Conference on Learning Representations (ICLR),2015.
[20] ZHANG J W,LIU X,DONG J. CCDD: An enhanced standard ECG database with its management and annotation tools[J]. International Journal of Artificial Intelligence Tools, 2012,21(5):44-51.
(責任編輯:孫 娟)