史健婷, 孫 駿
(黑龍江科技大學 計算機與信息工程學院, 哈爾濱 150022)
煤礦產(chǎn)業(yè)是我國國民經(jīng)濟支柱產(chǎn)業(yè)之一。據(jù)估計,我國煤礦井下作業(yè)人員人數(shù)超過600萬[1]。這些工人在從事勞動生產(chǎn)過程中,長期處于粉塵、噪聲、局部振動和高溫高濕等環(huán)境中[2]。長期結(jié)果會導致塵源性肺氣腫,使肺血管阻力增加,產(chǎn)生肺動脈高壓,進而引起心肌收縮抑制與心室復極延緩、復極化不均,從而導致心律失常的發(fā)生[3]。目前,國內(nèi)外很重視對煤礦工人心律失常方面的研究,在心律失常的檢測診斷中,心電圖起著重要的作用。心電圖反映了心臟興奮的產(chǎn)生、傳導和恢復過程中的生物電變化,可以檢測并比較煤礦工人在不同生產(chǎn)環(huán)境下的各種心率指標[4]。在心電圖的分析中,T波代表心室復極,T波顯著抬高、T波倒置是診斷煤礦工人有無心肌缺血、心肌梗死、電解質(zhì)紊亂的重要指標。因此,T波識別是檢測心律失常的一種有效手段,然而T波噪聲較大,形態(tài)多樣,往往識別的效果不理想。筆者基于長短時記憶網(wǎng)絡(luò)(Long short-term memory,LSTM)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,CNN)結(jié)合的模型,提出一種經(jīng)過鯨魚優(yōu)化算法(Whale optimization algorithm,WOA)優(yōu)化的T波識別方法,以提升T波識別的準確率。
采用卡爾曼濾波對心電信號進行數(shù)據(jù)預處理去噪??柭鼮V波采用狀態(tài)空間方法描述系統(tǒng),算法采用遞推形式,數(shù)據(jù)存儲量少,不僅可以處理平穩(wěn)隨機過程,也可以處理多維和非平穩(wěn)隨機過程[5]??柭鼮V波器遞推迭代過程分為預測和更新兩步遞推算法主要有三步。
步驟1計算預測部分
(1)
(2)
式中:A——狀態(tài)轉(zhuǎn)移矩陣;
B——控制矩陣;
L——采樣點的長度;
P——狀態(tài)估計值的方差;
Q——系統(tǒng)噪聲方差矩陣。
步驟2計算更新部分。根據(jù)式(2)可得卡爾曼增益為
(3)
式中:C——系數(shù)矩陣;
R——觀測噪聲方差矩陣。
由式(1)可化簡得估計值為
式中,y——觀測值。
步驟3更新真實值與估計值的協(xié)方差矩陣:
式中,I——兩行兩列的單位陣。
經(jīng)過卡爾曼濾波器預處理后的心電信號如圖1所示。
圖1 初始信號與濾波信號
T波位于 S-T 段之后,正常T波方向與R波的方向一致,呈現(xiàn)鈍圓型,如圖2所示。
圖2 正常心電圖示意
心電圖中的R波由于波峰明顯,識別方便,設(shè)定好時間窗口的長度和取樣時間,搜尋出極大值點,該點極為QRS波群波峰的位置。圖3為一段經(jīng)過卡爾曼濾波預處理之后的R波峰值心電圖,峰值用星型符號標出。
圖3 R波波峰檢測
以測到的R波為基準點,在R波之后定義一個包含有T波的長度和位置的滑動窗口,將得到的候選段截取出來,其中,每個T波候選段截取分兩步。
步驟1根據(jù) RR 間期估算出T波起點[6]
式中:T——T波起點;
tRR——心電圖上兩個R波之間的間隔時間。
步驟2根據(jù) RR 間期估計T波的長度TL,已知T波通常滯后R波50 ms左右,估算T波的長度為
CNN是一種前饋神經(jīng)網(wǎng)絡(luò),由卷積層、池化層和全連接層組成,可以提取局部特征,保持權(quán)值共享,降低過擬合,但卷積核的大小尺寸決定了難以學習到序列數(shù)據(jù)的前后時間邏輯,而LSTM通過引入記憶單元和門機制能夠彌補這一缺陷。因此,文中提出LSTM和CNN組合的深度學習模型來完成心電圖的自動分類[7]。LSTM-CNN模型如圖4所示。
圖4 LSTM-CNN網(wǎng)絡(luò)模型
鯨魚優(yōu)化算法是[8]一種新型的智能優(yōu)化算法。該算法是一種模擬座頭鯨捕食行為的仿生智能優(yōu)化算法,算法流程如圖5所示。
圖5 鯨魚優(yōu)化算法流程
(1)WOA算法首先隨機初始化一組解,在每次迭代中,搜索代理根據(jù)隨機選擇的搜索代理或到目前為止獲得的最優(yōu)解更新它們的位置,則
(4)
X(t+1)=X*(t)-A·D,
(5)
式中:D——搜索代理到目標食物的距離向量;
t——當前迭代次數(shù);
C、A——系數(shù)向量;
X*——局部最優(yōu)解;
X——位置向量。
(2)將參數(shù)a由2隨迭代次數(shù)降為0,則有
C=2·r,
A=2a·r-a,
式中,r——0至1之間的隨機數(shù)。
(3)當|A|≥1時,根據(jù)式(6)、(7)選擇隨機搜索代理;當|A|<1時,根據(jù)式(6)選擇最優(yōu)解更新搜索代理位置。
D=|C·Xr-X(t)|,
(6)
X(t+1)=Xr-A·D,
(7)
式中,Xr——隨機獲得的位置向量。
(4)螺旋更新位置。鯨魚首先計算出自身位置到獵物位置之間的距離,接著在鯨魚與獵物之間創(chuàng)建一個螺旋等式,來模擬鯨魚螺旋狀移動的行為。
D′=|X*(t)-X(t)|,
(8)
X(t+1)=D′·ebl·cos 2πl(wèi)+X*(t),
(9)
式中:D′——最佳距離向量;
b——常量;
l——-1到1之間的隨機數(shù)。
鯨魚在捕食的過程中有收縮包圍和螺旋更新兩種機制,因此,用這兩種方法進行數(shù)學建模。假定鯨魚用式(5)或式(9)更新自身位置的概率各為50%,更新位置為
式中,p——[0,1]之間的隨機數(shù)。
WOA算法優(yōu)化的過程,是優(yōu)化網(wǎng)絡(luò)中的各個參數(shù),使得網(wǎng)絡(luò)的訓練誤差最小的過程[9-11]。適應(yīng)度可以評價個體的性能,建立個體適應(yīng)度與網(wǎng)絡(luò)驗證誤差的關(guān)系,選擇網(wǎng)絡(luò)參數(shù)保證網(wǎng)絡(luò)參數(shù)全局最優(yōu)。適應(yīng)度公式的評價能力直接決定整個優(yōu)化的效果。算法訓練流程分為三步。
步驟1在優(yōu)化過程中,計算適應(yīng)度值。適應(yīng)度函數(shù)的設(shè)計,通過鯨魚優(yōu)化算法優(yōu)化LSTM-CNN神經(jīng)網(wǎng)絡(luò)的參數(shù),優(yōu)化函數(shù)為
f(·)=fCNN(α,β1,β2,β3,β4,N,K1,K2,K3)。
(10)
這九個參數(shù)分別表示LSTM-CNN的學習率,LSTM-CNN的4個偏移變量,特征金字塔網(wǎng)絡(luò)(FPN)的分層數(shù)量,多個層次的加權(quán)系數(shù)K1~K3。
步驟2優(yōu)化算法的優(yōu)化變量。假設(shè)優(yōu)化算法的個數(shù)是n,則遺傳優(yōu)化變量是n×9的一個二維矩陣,則每個優(yōu)化變量,均有n個遺傳優(yōu)化變量來進行迭代優(yōu)化。
假設(shè)遺傳優(yōu)化變量為Xn×9,即:
α=Xn×1[1],β1=Xn×1[2],β2=Xn×1[3],
β3=Xn×1[4],β4=Xn×1[5],
N=Xn×1[6],K1=Xn×1[7],
K2=Xn×1[8],K3=Xn×1[9]。
步驟3通過上述的過程之后,可以根據(jù)式(10)計算出每個變量對應(yīng)的適應(yīng)度值fitness。對于LSTM-CNN的最優(yōu)參數(shù),假設(shè)為:αo、βo1、βo2、βo3、βo4、No、Ko1、Ko2、Ko3。此時這組參數(shù)下對應(yīng)的LSTM-CNN,其訓練誤差將達到最優(yōu)。此時通過優(yōu)化后,得到一個由N層構(gòu)成的LSTM-CNN神經(jīng)網(wǎng)絡(luò),假設(shè)為:LSTM-CNN1,LSTM-CNN2,…,LSTM-CNNN。
通過這N個LSTM-CNN,對信號進行多尺度的訓練。
假設(shè)訓練后得到的神經(jīng)網(wǎng)絡(luò)權(quán)值分別為{wij}1,{wij}2,…,{wij}N。
設(shè)置N最大值為4,得到的最終的LSTM-CNN神經(jīng)網(wǎng)絡(luò)的權(quán)值w,可以表示為
wij=K1×{wij}1+K2×{wij}2+...+
(1-K1-K2-...)×{wij}N。
圖6是T波識別構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型。將心電信號進行特征提取出T波候選段,輸入到LSTM,由LSTM層提取時序特征,將輸入生成一個新的序列數(shù)據(jù),LSTM層的輸出緊接著輸入到可以提取局部特征卷積層中。在卷積層中加入了特征金字塔網(wǎng)絡(luò)(FPN)。FPN算法可以將具有不同尺寸,不同特征的目標區(qū)分開來。實驗分3層,輸出目標的復雜度隨著層數(shù)的增加而增加。在卷積層1-1與卷積層1-2中都分布著一個3×3的卷積核和3×3的空洞卷積核。下采樣層對卷積層輸出的特征向量進行池化,將原輸入的特征壓縮為原來的一半,最后由輸出層計算結(jié)果。整個LSTM-CNN網(wǎng)絡(luò)搭建完成后,置入WOA中進行優(yōu)化,獲得最優(yōu)網(wǎng)絡(luò)層參數(shù)。
圖6 T波識別神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
實驗采用464名某煤礦公司井下一線作業(yè)工人采集的心電數(shù)據(jù)作為樣本集,平均年齡23~55歲,均為井下一線煤礦工人,工作時間為1~15 a,均為成年男性,所有信號都以125 Hz的頻率采樣,通過礦用智能手表發(fā)送到調(diào)度室監(jiān)測平臺上,最終數(shù)據(jù)集中劃分為訓練集樣本18 000個,測試集樣本7 700個。
實驗運行環(huán)境 Win10 64 位操作系統(tǒng),CPU 為英特爾i7-8750H,主頻率2.20 GHz,采用 MatlabR2019a進行實驗,內(nèi)存大小為16 GB,顯卡為GTX 1060,程序所使用算法軟件包為 DeepLearnToolbox-master。
在心電圖分類的問題中,通常以準確率(PA)、特異性(Sp)和敏感性(Se)為指標來評價模型的性能。文中運用了混淆矩陣的四個評價指標,即算真陽性(nTP)、假陽性(nFP)、假陰性(nFN)、真陰性(nTN)這四個參數(shù)來表示準確率、特異性和敏感性。
準確率為預測正確的樣本占整個樣本的比例為
特異性是指預測為陰性的樣本數(shù)占實際陰性樣本數(shù)的比例為
靈敏度指預測為陽性的樣本數(shù)占實際陽性樣本數(shù)的比例為
實驗中的WOA優(yōu)化算法的最大迭代次數(shù)為50,初始化種群規(guī)模為100,搜索空間維數(shù)為9,學習率優(yōu)化范圍是[0.001,0.2],圖7為損失函數(shù)變化曲線。
圖7 WOA優(yōu)化過程
由圖7可知,訓練情況收斂,得出的適應(yīng)度值組成的向量。根據(jù)實驗結(jié)果后發(fā)現(xiàn),當?shù)螖?shù)過小則會導致整個模型無法充分學習心電信號特征,使模型總體識別效率降低。若將迭代次數(shù)設(shè)定的太小則會過擬合,同時也會使得仿真時間延長。經(jīng)過反復驗證,當將最大迭代次數(shù)設(shè)置為200時,能夠很好地對信號特征進行學習,使目標函數(shù)收斂。在僅CPU的訓練條件下,訓練過程所需時間為40.8 h。
為了驗證LSTM-CNN網(wǎng)絡(luò)模型的訓練效果,文中將7 700個測試集劃分為正常T波、T高尖和T波倒置三部分,分別進行分類。分類結(jié)果如表1所示。
表1 分類結(jié)果
識別算法識別出的T波高尖和T波倒置如圖8和9所示。
圖8 T 波高尖
圖9 T 波倒置
圖10的ROC曲線展示了文中的算法與傳統(tǒng)機器學習算法SVM性能比較,從圖10中可以看出,經(jīng)過WOA優(yōu)化的LSTM-CNN算法準確率顯著高于SVN。AUC值高達0.993,證明方法的識別能力強,用于有效檢測心律失常的價值最佳。
表2為已有算法得到的結(jié)果。從表2可知,基于傳統(tǒng)機器學習方法識別心電信號的準確率較低,而且對T波異常的識別能力比較差,容易發(fā)生誤診、漏診。
圖10 ROC曲線比較
表2 所提方法性能指標與其他方法對比
研究表明,常用的特征提取函數(shù)的擬合能力有限,未能完全捕捉到心電圖中的隱藏特征。通過對比可以得出,通過WOA優(yōu)化LSTM-CNN神經(jīng)網(wǎng)絡(luò)的參數(shù),將誤差最小化,利用 LSTM 提取心電圖的時序特性,F(xiàn)PN改進CNN網(wǎng)絡(luò)的特征提取方式,可以使最終輸出的特征更好地表示出輸入信號的信息,模型輸出結(jié)果可以達到較高的準確率。
(1)分析了心電圖中T波的特點,運用時間搜索窗口提取了T波段位置,提出了基于LSTM-CNN的神經(jīng)網(wǎng)絡(luò)模型識別T波,通過WOA優(yōu)化算法優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù),訓練并計算獲得每個個體對應(yīng)的適應(yīng)度值作為神經(jīng)網(wǎng)絡(luò)的參數(shù),此方法可以有效改進陷入局部最優(yōu)。
(2)在訓練與測試階段選取了2萬多個樣本,測試的結(jié)果準確率為99.35%,特異性為99.70%,靈敏度為99.40%,對于準確有效的檢測出煤礦工人的心律失常具有較好的作用。因此,對煤礦工人進行心電圖檢查,減少職業(yè)病的發(fā)生具有十分重要的指導意義。