朱 喆,許少華
(山東科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,山東青島266590)
(*通信作者電子郵箱810905105@qq.com)
非線性系統(tǒng)時(shí)變信號(hào)是一種頻率和幅值隨時(shí)間變化的多成分信號(hào),具有非線性、非平穩(wěn)、對(duì)時(shí)間變化高度依賴等特性[1],特別是多通道信號(hào)的組合過(guò)程特征呈現(xiàn)出高度的復(fù)雜性[2],它的分類處理一直是信號(hào)分析與人工智能研究領(lǐng)域中的一個(gè)重要問(wèn)題。在目前的研究中,大多數(shù)的處理方法是將時(shí)變信號(hào)視為短時(shí)平穩(wěn)且線性的,其關(guān)注重點(diǎn)是時(shí)域和頻域包含的信息[3],而信號(hào)隨時(shí)間變化所承載的信息部分被忽略或損失掉[4],影響了對(duì)時(shí)變信號(hào)變化特征提取的完整性。
人工神經(jīng)網(wǎng)絡(luò)是目前信號(hào)處理和分析中一種常用而有效的方法。隨著深度學(xué)習(xí)理論的發(fā)展,一些新的可用于時(shí)變信號(hào)分析的神經(jīng)網(wǎng)絡(luò)模型不斷被提出。Hochreiter 等[5]提出了一種基于梯度的長(zhǎng)短記憶(Long Short-Term Memory,LSTM)方法,有效解決了長(zhǎng)時(shí)間依賴、誤差反向流衰退等問(wèn)題;Hüsken等[6]利用循環(huán)網(wǎng)絡(luò)的動(dòng)態(tài)行為將輸入序列分類為不同的特定類別,通過(guò)內(nèi)部結(jié)構(gòu)調(diào)整來(lái)表示輸入序列的主要特征以解決分類問(wèn)題;Sutskever 等[7]提出了一種非線性序列模型簇,對(duì)序列數(shù)據(jù)的多級(jí)特征采取隱層學(xué)習(xí)方法,實(shí)現(xiàn)了利用高維和非線性數(shù)據(jù)進(jìn)行建模訓(xùn)練;Bengio 等[8]提出一種時(shí)序自動(dòng)編碼器(AutoEncoder,AE)模型,通過(guò)擴(kuò)展AE 網(wǎng)絡(luò)輸入端節(jié)點(diǎn)單元和在網(wǎng)絡(luò)隱層設(shè)置記憶存儲(chǔ)單元,實(shí)現(xiàn)對(duì)時(shí)序信號(hào)的處理;Sutskever 等[9]提出了循環(huán)時(shí)間受限波爾茲曼機(jī)(Recurrent Temporal Restricted Boltzmann Machine,RTRBM),具有在高維序列上準(zhǔn)確地模擬復(fù)雜概率分布的能力。綜合分析,目前可進(jìn)行時(shí)序信號(hào)分析的神經(jīng)網(wǎng)絡(luò)模型,大多是在已有“端到端”模型的基礎(chǔ)上,通過(guò)擴(kuò)展網(wǎng)絡(luò)的輸入端節(jié)點(diǎn)數(shù),將時(shí)間關(guān)系轉(zhuǎn)換為空間關(guān)系來(lái)實(shí)現(xiàn)時(shí)序信號(hào)的輸入和處理。對(duì)于復(fù)雜多變量系統(tǒng),或采樣數(shù)據(jù)密集、時(shí)間序列長(zhǎng)的情況,存在輸入層、隱層呈現(xiàn)超高維度,模型信息傳遞流程和求解算法復(fù)雜等問(wèn)題,給時(shí)變信號(hào)的分析帶來(lái)困難。
針對(duì)時(shí)空維信息處理和時(shí)變信號(hào)過(guò)程特征的提取和表示問(wèn)題,2000 年,何新貴等[10-11]提出了過(guò)程神經(jīng)網(wǎng)絡(luò)(Process Neural Network,PNN)的概念和模型。PNN 的結(jié)構(gòu)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同之處在于其輸入和連接權(quán)等都可以是時(shí)變函數(shù),神經(jīng)元內(nèi)增加了一個(gè)對(duì)于時(shí)間效應(yīng)的聚合算子,在機(jī)制上可同時(shí)表達(dá)多種影響因素的共同作用和對(duì)時(shí)間效應(yīng)的累積。該模型以輸入層和過(guò)程神經(jīng)元(Process Neuron,PN)隱層之間的連接權(quán)函數(shù)矩陣來(lái)抽取和表示時(shí)變信號(hào)樣本的過(guò)程特征,并形成對(duì)信號(hào)樣本特征的記憶和存儲(chǔ)。在時(shí)變信號(hào)分類[12-13]、非線性系統(tǒng)過(guò)程模擬[14]、狀態(tài)預(yù)測(cè)[15-16]等領(lǐng)域獲得成功應(yīng)用。目前,在PNN 的理論研究和應(yīng)用中還存在一些困難,主要包括:現(xiàn)有各類PNN 是一種淺層結(jié)構(gòu)模型,對(duì)復(fù)雜時(shí)變信號(hào)特征的提取、表征和高層次綜合能力不足;確定連接權(quán)函數(shù)的算法復(fù)雜度高,在訓(xùn)練樣本集規(guī)模較小或?qū)ο到y(tǒng)變換特征的表達(dá)不完備的情況下,存在泛化能力不穩(wěn)定的情況。
卷積運(yùn)算是信號(hào)分析中一種常用的處理方法,具有信號(hào)特征表示、權(quán)值共享等性質(zhì)[17]。而深度神經(jīng)網(wǎng)絡(luò)具有優(yōu)異的特征學(xué)習(xí)能力、在訓(xùn)練上的難度可以通過(guò)基于無(wú)監(jiān)督學(xué)習(xí)的“逐層初始化”算法來(lái)有效克服等優(yōu)勢(shì),因此,如果在PNN 模型和信息處理中引入卷積運(yùn)算和深度學(xué)習(xí)機(jī)制,則可為上述PNN存在的問(wèn)題提供一種新的解決方法。
本文針對(duì)非線性系統(tǒng)時(shí)變信號(hào)模式分類問(wèn)題,提出了一種降噪自編碼器深度卷積過(guò)程神經(jīng)網(wǎng)絡(luò)(Denoising AutoEncoder Deep Convolution Process Neural Network,DAEDCPNN)。該模型由時(shí)變信號(hào)輸入層、基于時(shí)變輸入信號(hào)與一維卷積核運(yùn)算的過(guò)程神經(jīng)元(Convolution Process Neuron,CPN)隱層、深度DAE 網(wǎng)絡(luò)結(jié)構(gòu)和softmax 分類器構(gòu)成。通過(guò)將各通道輸入信號(hào)與可調(diào)整參數(shù)的卷積核進(jìn)行基于滑動(dòng)窗口的離散卷積運(yùn)算,實(shí)現(xiàn)時(shí)序信號(hào)的時(shí)空聚合和過(guò)程特征提取。DAE 深度網(wǎng)絡(luò)以CPN 隱層輸出為輸入,進(jìn)行分布式高層次特征分析和綜合,形成綜合特征矩陣。softmax 分類器以綜合特征矩陣為輸入,實(shí)現(xiàn)基于概率的多通道信號(hào)分類。DAEDCPNN擴(kuò)展了PNN的深度結(jié)構(gòu),提高了PNN的對(duì)信號(hào)樣本多樣性的表示和特征辨識(shí)能力。同時(shí),將現(xiàn)有DAE 網(wǎng)絡(luò)的數(shù)據(jù)處理擴(kuò)展到時(shí)間域,在機(jī)制上可有效解決時(shí)變信號(hào)的過(guò)程特征表示、信息時(shí)間關(guān)聯(lián)等問(wèn)題。文中分析了DAE-DCPNN 的性質(zhì),建立了按PNN、DAE 網(wǎng)絡(luò)、softmax 分類器等信息單元分別進(jìn)行賦初值訓(xùn)練、模型參數(shù)整體調(diào)優(yōu)的綜合訓(xùn)練算法。目前,基于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)的心電圖(ElectroCardioGram,ECG)信號(hào)分類研究取得了許多重要進(jìn)展和好的結(jié)果,例如一維卷積神經(jīng)網(wǎng)絡(luò)[18]、堆疊式稀疏自編碼器神經(jīng)網(wǎng)絡(luò)[19]、深度雙向LSTM 網(wǎng)絡(luò)和小波序列[20]、殘差卷積遞歸神經(jīng)網(wǎng)絡(luò)[21]等,但實(shí)驗(yàn)主要是針對(duì)心拍或較少導(dǎo)聯(lián)數(shù)進(jìn)行的。本文以基于12 導(dǎo)聯(lián)ECG 長(zhǎng)信號(hào)的7 種心血管疾病分類為例,進(jìn)行模型和算法的可行性和有效性驗(yàn)證。
卷積過(guò)程神經(jīng)元由時(shí)序信號(hào)xi(t)=(xi(t1),xi(t2),…,xi(tT))輸入,與卷積核=(wi(t1),wi(t2),…,wi(tT))離散卷積運(yùn)算、閾值激勵(lì)輸出等運(yùn)算組成,其結(jié)構(gòu)如圖1所示。
圖1 卷積過(guò)程神經(jīng)元模型Fig. 1 Convolution process neuron model
圖1 中,xi(t)=(xi(t1),xi(t2),…,xi(tT))(i=1,2,…,n),T為時(shí)間序列長(zhǎng)度;*為卷積算子,∑為求和運(yùn)算,f為激勵(lì)函數(shù)。
考慮xi(t)和=(wi(t1),wi(t2),…,wi(tk))的卷積運(yùn)算yi(t)=xi(t)*,根據(jù)時(shí)序信號(hào)離散卷積的定義,序列yi(p)的長(zhǎng)度為2T- 1,且
令根據(jù)式(1),卷積過(guò)程神經(jīng)元的輸入輸出關(guān)系描述為:
其中:λi(p)為與yi(p)等長(zhǎng)的離散序列,用于實(shí)現(xiàn)對(duì)yi(p)的加權(quán)。
構(gòu)建的卷積過(guò)程神經(jīng)網(wǎng)絡(luò)(Convolutional Process Neural Network,CPNN)為三層多輸入多輸出結(jié)構(gòu),由時(shí)序信號(hào)輸入層、卷積過(guò)程神經(jīng)元隱層、MP 神經(jīng)元輸出層構(gòu)成。模型結(jié)構(gòu)如圖2所示。
圖2 卷積過(guò)程神經(jīng)網(wǎng)絡(luò)Fig. 2 Convolutional process neural network
圖2 中,輸入層n個(gè)節(jié)點(diǎn),隱層m個(gè)節(jié)點(diǎn),輸出層K個(gè)節(jié)點(diǎn);wij(t)=(wij(t1),wij(t2),…,wij(tk))為輸入層到CPN 隱層的連接權(quán)序列;隱層和輸出層均采用Sigmoid激勵(lì)函數(shù)。
其中SDAEk(·)為SDAE輸出層第k個(gè)節(jié)點(diǎn)的輸出。
DAE-DCPNN的學(xué)習(xí)過(guò)程分為3個(gè)階段:第1階段,進(jìn)行雙隱層CPNN 單元連接權(quán)參數(shù)的賦初值訓(xùn)練;第2 階段,以CPNN 第2 隱層節(jié)點(diǎn)的輸出作為DAE 深度網(wǎng)絡(luò)的輸入,進(jìn)行DAE 模型參數(shù)的賦初值學(xué)習(xí),并對(duì)softmax 分類器參數(shù)賦初值;第3階段,采用BP 算法實(shí)現(xiàn)對(duì)DAE-DCPNN 的全體參數(shù)進(jìn)行整體調(diào)優(yōu)。
設(shè)DAE-DCPNN 訓(xùn)練集共有N個(gè)樣本,第l個(gè)樣本為(X(l)(t);dl)(l= 1,2,…,N),其中:
其中,dl為對(duì)應(yīng)X(l)(t)的期望輸出。
設(shè)yp為對(duì)應(yīng)于輸入X(l)(t)網(wǎng)絡(luò)的實(shí)際輸出,定義誤差函數(shù)定義為:
根據(jù)E(W,θ1,V,θ2)的定義,采用梯度下降算法,確定出CPNN的連接權(quán)值和閾值。
DAE 預(yù)訓(xùn)練的目標(biāo)是得到優(yōu)化的連接權(quán)W和偏差b。采用隨機(jī)梯度訓(xùn)練方法,最小均方差作為代價(jià)函數(shù),利用梯度下降法在每一次迭代過(guò)程中更新一次權(quán)值。設(shè)DAE 的輸出為yp,原始輸入為xp,根據(jù)式(7)定義DAE的目標(biāo)函數(shù)為:
權(quán)值修正迭代公式為:
其中:ε為學(xué)習(xí)率,H為DAE中間隱層節(jié)點(diǎn)數(shù)。
在CPNN 賦初值訓(xùn)練、DAE 逐層初始化訓(xùn)練和softmax 賦初值訓(xùn)練完成后,根據(jù)訓(xùn)練集樣本信號(hào)的類別標(biāo)簽,采用BP算法對(duì)DAE-DCPNN 全體參數(shù)進(jìn)行微調(diào)。DAE-DCPNN 算法流程如圖4所示。
圖4 DAE-DCPNN算法流程Fig. 4 Flow chart of DAE-DCPNN algorithm
心電圖(ECG)信號(hào)反映人體心臟興奮的電活動(dòng)過(guò)程,是診斷心臟疾病的重要指標(biāo)。ECG 信號(hào)具有多峰、周期、非線性,不平穩(wěn)和含背景噪聲等特點(diǎn),不同心血管疾病具有不同的信號(hào)分布特征。
本實(shí)驗(yàn)所用數(shù)據(jù)集來(lái)自CCDD(Chinese Cardiovascular Disease Database)數(shù)據(jù)庫(kù)中12 導(dǎo)聯(lián)的ECG 信號(hào)樣本,采樣頻率為500 Hz,每條記錄時(shí)間為10 s左右,樣本標(biāo)注了專家對(duì)疾病的診斷結(jié)果。在候選樣本中,刪除標(biāo)記模糊、時(shí)長(zhǎng)不足、測(cè)量有誤的樣本,確定其中7 類共21 196 個(gè)樣本構(gòu)成樣本集。各類樣本分布見(jiàn)表1。
表1 實(shí)驗(yàn)樣本數(shù)據(jù)分布Tab. 1 Distribution of experimental sample data
在數(shù)據(jù)處理中,由于人體的生理機(jī)能、疾病類型不同,使得相同ECG 采樣時(shí)間內(nèi)包含的樣本點(diǎn)數(shù)也不完全相同,且由于信號(hào)采集的不確定性,使得信號(hào)起始位置也不相同。為便于計(jì)算,本實(shí)驗(yàn)使用QRS 波檢測(cè)法,對(duì)所有ECG 信號(hào)統(tǒng)一取第一個(gè)R 波的峰值作為樣本信號(hào)的起點(diǎn),截取4 500 個(gè)樣本點(diǎn)。由于房性心動(dòng)過(guò)速和房顫伴快速心室率樣本數(shù)較少,實(shí)驗(yàn)中選擇小波閾值去噪方法增加兩類樣本數(shù)量。利用Sym8小波基函數(shù)將原始心電信號(hào)進(jìn)行10 層小波分解,采用極大極小閾值估計(jì)法確定閾值[23]。將分解后的高頻信號(hào)與低頻信號(hào)重構(gòu),分別得到300和551個(gè)新的信號(hào)樣本。原始信號(hào)樣本與新的信號(hào)樣本混合在一起,共同參與網(wǎng)絡(luò)模型的訓(xùn)練和測(cè)試。同時(shí),考慮各導(dǎo)聯(lián)量綱不同、量級(jí)差別較大的問(wèn)題,對(duì)樣本信號(hào)統(tǒng)一進(jìn)行歸一化處理,其公式為:x′(t)=(x(t)- minx(t))(maxx(t)- minx(t))。 其 中,minx(t)和maxx(t)為ECG測(cè)量區(qū)間內(nèi)導(dǎo)聯(lián)信號(hào)的最小值和最大值。
將數(shù)據(jù)增強(qiáng)后的樣本集本按疾病類型比例隨機(jī)分為4組,其中3 組構(gòu)成訓(xùn)練集,1 組為測(cè)試集。對(duì)于12 導(dǎo)聯(lián)輸入信號(hào),每導(dǎo)聯(lián)經(jīng)去噪和抽稀處理后,共獲得2 250 個(gè)采樣點(diǎn)。卷積運(yùn)算采用5 階梯度卷積核,對(duì)應(yīng)各導(dǎo)聯(lián)輸入信號(hào),卷積核初始值均?。?1,-1.5,-2,-0.5,1),反映信號(hào)梯度變化特征。
DAE-DCPNN 的結(jié)構(gòu)參數(shù)選擇如下:CPNN 的輸入層有12個(gè)過(guò)程信號(hào)輸入節(jié)點(diǎn),每個(gè)輸入節(jié)點(diǎn)的輸入為一個(gè)長(zhǎng)度是2 250 的導(dǎo)聯(lián)信號(hào);CPN 隱層節(jié)點(diǎn)數(shù)為64,輸入層到CPN 隱層的卷積核函數(shù)取為12×5×64 的卷積核矩陣,利用權(quán)值共享的思想,每個(gè)CPN 隱層節(jié)點(diǎn)共用一個(gè)長(zhǎng)度為5、步長(zhǎng)為2 的卷積核;CPNN 第2 隱層節(jié)點(diǎn)數(shù)為320 個(gè),CPN 隱層到CPNN 第2 隱層的連接權(quán)函數(shù)取為64×320的連接權(quán)矩陣。SDAE 部分的輸入層節(jié)點(diǎn)數(shù)為320,共堆疊3 個(gè)DAE 網(wǎng)絡(luò),其隱層數(shù)為160。Softmax分類器輸入節(jié)點(diǎn)數(shù)為320,輸出層節(jié)點(diǎn)數(shù)為7。實(shí)驗(yàn)硬件環(huán)境為Intel Xeon Gold 5118 CPU @ 2.30 GHz,實(shí)驗(yàn)平臺(tái)為MATLAB R2016b。在訓(xùn)練中,CPNN 的迭代次數(shù)設(shè)為1 000,DAE 深度網(wǎng)絡(luò)迭代次數(shù)為500,全體參數(shù)調(diào)優(yōu)BP 算法代次數(shù)為1 000,各迭代公式學(xué)習(xí)率均取為0.05。對(duì)測(cè)試樣本集進(jìn)行測(cè)試,5 500 個(gè)樣本共有4 693 個(gè)判斷正確,正確率為85.327%,其分類的混淆矩陣如表2 所示。這在12 導(dǎo)聯(lián)ECG長(zhǎng)信號(hào)識(shí)別中是一個(gè)較好的結(jié)果。
表2 DAE-DCPNN模型分類混淆矩陣 單位:%Tab. 2 Classification confusion matrix of DAE-DCPNN model unit:%
在對(duì)比實(shí)驗(yàn)中,本文選擇可直接進(jìn)行ECG 信號(hào)處理的過(guò)程神經(jīng)網(wǎng)絡(luò)PNN[24-25]、堆疊稀疏自動(dòng)編碼器SSAEs[19]和殘差卷積遞歸神經(jīng)網(wǎng)絡(luò)RhythmNet[21]與本文提出模型進(jìn)行對(duì)比。其中PNN 采用基于正交函數(shù)基展開(kāi)的雙隱層過(guò)程神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)為:12-120-480-1,采用256 階Walsh 正交函數(shù)基;SSAEs 的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)為四層,為120-60-30-15、Softmax 為分類器;RhythmNet網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置為卷積-殘差-池化×16+全連接×1+循環(huán)層×3+全連接×1+softmax。采用四折交叉的實(shí)驗(yàn)方案,將各類疾病的樣本集信號(hào)按比例隨機(jī)分成4 組,每組5 500個(gè)樣本。任選其中3組作為訓(xùn)練樣本集,1組作為測(cè)試樣本集進(jìn)行實(shí)驗(yàn)。每種方法實(shí)驗(yàn)采用相同的訓(xùn)練集和測(cè)試集,以準(zhǔn)確率、召回率、精確率和F1-Score 值作為評(píng)價(jià)模型的指標(biāo),并以4次實(shí)驗(yàn)的平均值進(jìn)行對(duì)比,結(jié)果見(jiàn)表3。
由表3知,本文建立的DAE-DCPNN 模型和算法對(duì)測(cè)試集樣本的綜合評(píng)價(jià)要優(yōu)于其他三種方法。這是由于該模型保留了PNN 對(duì)時(shí)間信號(hào)時(shí)頻特性分析能力,及卷積核和卷積運(yùn)算對(duì)時(shí)變信號(hào)特征的提取和表示能力,并通過(guò)DAE 深度網(wǎng)絡(luò)提高了對(duì)復(fù)雜數(shù)據(jù)特征的高層次綜合分層特征的提取及對(duì)類別屬性關(guān)聯(lián)能力,因此取得了較好的實(shí)驗(yàn)結(jié)果。
表3 相同數(shù)據(jù)集上各模型結(jié)果對(duì)比 單位:%Tab. 3 Comparison of the results by different models on same dataset unit:%
本文建立了一種基于降噪自編碼器深度卷積過(guò)程神經(jīng)網(wǎng)絡(luò)分類模型。該模型在信息處理機(jī)制上融合了過(guò)程神經(jīng)網(wǎng)絡(luò)所具有的可同時(shí)表達(dá)時(shí)變系統(tǒng)多種影響因素的共同作用和對(duì)時(shí)間效應(yīng)的累積等性質(zhì),以及深度學(xué)習(xí)框架所具有的特征提取與特征高層次綜合能力、較好的泛化和學(xué)習(xí)性質(zhì);提高了網(wǎng)絡(luò)對(duì)系統(tǒng)輸入輸出之間復(fù)雜關(guān)系的映射能力和對(duì)于信號(hào)特征的辨識(shí)能力。通過(guò)在ECG 信號(hào)樣本集上測(cè)試實(shí)驗(yàn),結(jié)果表現(xiàn)出了比其他單一模型更好的準(zhǔn)確率和網(wǎng)絡(luò)性質(zhì)。但是,該模型雖然在大類別(正常、心房顫動(dòng)、房性早搏、房性心動(dòng)過(guò)速、房顫伴快速心室率)的分類中有較好的識(shí)別效果,但是在同一大類下的不同小類(偶發(fā)性早搏、頻發(fā)性早搏)中的錯(cuò)分率較高,這需要今后進(jìn)一步的研究加以改善。