賀煜航,劉棪,陳剛
(1.武漢大學 空天信息安全與可信計算教育部重點實驗室,武漢 430072;2.武漢大學 國家網絡安全學院,武漢 430072)
根據世界衛生組織2019 年的研究報告,心臟疾病已經成為全球最主要的死亡原因之一[1]。心臟疾病泛指由高脂血癥、血液粘稠、動脈粥樣硬化、高血壓等導致的心臟缺血性或出血性心臟病。心臟疾病發作之前,通常有明顯的心血管異常表現,如心悸、暈厥、胸痛、氣短等。如果能夠在這些疾病早期癥狀出現時,精確診斷所患疾病,并介入治療,將有助于控制疾病發展。
心電圖(Electrocardiogram,ECG)分析[2]是一種被廣泛應用的重要心臟疾病診斷方法。傳統心電圖診斷需要醫生人工分析被測量者的心電圖,判斷被測量者的病情。但傳統心電圖分析嚴重依賴醫生的個人水平,由于心臟疾病種類多樣、隱匿性心臟病的存在等,易出現誤診、漏診現象,且效率較低。同時,已有研究表明,心電圖中的高頻信號對心臟的健康情況能進行更全面的分析[3-4]。為了提高診斷準確率和效率,如何進行高效、準確的心電圖自動分類并更好地利用其中的高頻信息是一個亟需解決的問題。
在深度學習發展前,已有多種傳統機器學習方法被應用于心電圖自動分類問題。CEYLAN等[5]使用離散小波變換對心電圖RR 間期進行特征提取,構建前饋神經網絡對心電圖進行分類,取得較好成果。WANG等[6]將主成分分析(Principal Components Analysis,PCA)及主題模型方法應用于心電圖特征提取,并構建概率神經網絡(Probabilistic Neural Network,PNN)分類器對心電圖進行分類。ZIDELMAL等[7]使用小波變換對心電圖進行去噪及特征提取,通過支持向量機對心電圖進行分類。上述機器學習方法首先從心電圖中人工提取特征,然后將提取特征輸入到決策樹、支持向量機等判別模型中進行分類預測,其表現依賴于人工提取特征和判別模型。而人工提取的特征存在一些不足:難以準確表示心電圖信息,易導致錯誤;需要大量專業醫學知識用于特征工程,這會降低整體效率。
近年來,深度學習成為人工智能領域的核心話題,并逐漸應用于心電圖分類任務。深度學習通過網絡模型自動提取特征,有效地解決了傳統方法中人工提取特征的局限性。其中,以卷積神經網絡(Convolutional Neural Network,CNN)為基礎的模型被越來越多地應用于心電圖分類任務并取得了一定的成果。CAI等[8]提出以殘差神經網絡(Residual Neural Network,ResNet)為基礎,結合深度可分離卷積、通道域注意力(Squeeze and Excitation,SE)模塊構建的Multi-ECGNet 模型,取得了較好的分類效果。WANG等[9]提出并構建了基于非局部卷積注意模塊的卷積神經網絡模型Automated-ECG,通過非局部注意力獲取心電圖數據空間、通道及時間上的信息,并結合學習矩陣進行融合,學習矩陣在上述三類信息中挖掘關系信息并最終完成分類,該模型在多個數據集中取得了較好的結果。
上述CNN 模型在進行分類時,均通過適當的方法增強模型的表征能力,以提取有效的心電圖特征,并用于心電圖分類。但一方面,單一的卷積神經網絡由于受感受野的限制和權重共享的影響,不能很好地利用全局信息,對特征空間鄰域中其他樣本提供的信息利用不夠,影響了分類結果的準確率。另一方面,在實際病例中,心臟疾病患者常同時出現多種癥狀,且部分癥狀是不獨立的,而目前的大部分網絡模型傾向于關注一種或幾種心臟疾病,并沒有對多標簽進行分析研究。
本文提出一種基于注意力機制與圖卷積網絡的心電圖多標簽分類模型(Multi-Label Classification Model of Electrocardiogram Based on Attention Mechanism and Graph Convolutional Network,MLECG-AGCN),并結合損失函數和評價指標從多標簽角度考慮分類,以高效利用高頻信號及特征空間中的全局信息和鄰域信息。
注意力機制最初被用于機器翻譯[10],現已成為神經網絡領域的一個重要概念。注意力機制的基本思想是使模型忽略無關信息而關注重點信息。一般而言,在神經網絡學習中,模型參數越多則模型的表達能力越強,模型所存儲的信息量也越大,但這會帶來信息過載的問題。通過引入注意力機制,在眾多的輸入信息中聚焦于對當前任務更關鍵的信息,降低對其他信息的關注度,甚至過濾掉無關信息,就可以解決信息過載問題,提高任務處理的效率和準確性。
近年來,注意力機制被逐漸應用于計算機視覺領域,并在圖像分類、圖像識別等任務中取得良好的效果。JADERBERG等[11]提出一種將注意力機制應用于空間域進行圖像分類的模型(Spatial Transformer Networks,STN),通過將基于注意力機制的空間轉換器模塊代替卷積神經網絡中的池化層,將原始圖片的空間信息變換至另一空間并聚焦關鍵信息,提升圖像分類準確率。HU等[12]提出一種顯示建模通道間相互依賴性的通道域注意力機制網絡(SE Networks,SENet),在所使用數據集上獲得高于基線網絡的效果。WANG等[13]提出一種殘差注意力網絡(Residual Attention Network),并設計一種注意力殘差學習訓練方法訓練此網絡模型,該網絡模型在CIFAR-10 和CIFAR-100 數據集上表現良好,對噪聲標簽具有較強的魯棒性。CAI等[8]在其心電圖像分類模型中添加SE 模塊,為網絡引入注意力機制,提升了模型的分類性能。
本文針對心電圖特點,構建基于拉普拉斯濾波器和SE 模塊的注意力機制模塊,將注意力機制應用于心電圖特征提取,增強網絡關注心電圖高頻信號的能力,提取更有效的心電圖特征。
圖卷積網絡(Graph Convolutional Network,GCN)最初被用于文本分類[14],因其強大的結構表示能力,近年來已在圖像[15-16]、文本[17]、非歐式數據[18]等領域中表現出優越性能。GCN 的基本思想是通過在節點間傳遞信息來更新節點表示,與標準卷積不同,GCN 的目標是學習圖g上的函數f(·,·),g以特征描述Hl∈RN×d和矩陣A∈RN×N為輸入,更新節點特征為Hl+1∈RN×d′,每一個GCN 層都可以表示為一個非線性函數,如式(1)所示:

通過卷積運算,f(·,·)可以表示為式(2)所示:

其中:Wl∈Rd×d′為學習變化矩陣為歸一化的相關矩陣A;h(·)為非線性運算,GCN 以此對節點間復雜的相互關系進行構建和學習。由式(1)和式(2)可知,與CNN 不同,GCN 在得到節點表示時,關注圖中的全局信息和鄰域節點信息,GCN 通過對節點間關系進行構建、學習得到節點的輸出表示。
根據圖卷積的定義,GCN 可分為光譜法和空間法。基于光譜的GCN[19-21]一般指基于圖傅里葉變換(Graph Fourier Transform)的卷積,而基于空間的GCN[17,22]是直接對圖節點及其鄰域節點進行人工定義的卷積。在應用方面,GCN 可以同時處理轉換設置[20-21]和歸納設置[17,22]問題。在轉換設置中,訓練數據和測試數據是同一固定圖中的節點,而在歸納設置中,模型需要跨不同的圖進行推理。
本文將擁有強大結構表示能力的GCN 與CNN網絡相結合,改善單一卷積神經網絡受感受野的限制和權重共享的影響,解決無法充分利用全局信息的問題,有效利用特征空間中的全局信息和鄰域信息。
心電圖數據首先經過數據加載模塊,該模塊使用wfdb 庫讀取心電圖數據,得到預處理后的數據X∈RN×C×L,其中:N為訓練集樣本總數;C為通道數;L為時序信號長度,將其作為MLECG-AGCN 的輸入。
MLECG-AGCN 由兩部分網絡組成:用于心電圖特征提取的基于注意力機制的CNN 網絡(以下簡稱注意力機制CNN);用于多標簽分類的自適應GCN。MLECG-AGCN 網絡流程如圖1 所示。

圖1 MLECG-AGCN 網絡結構Fig.1 MLECG-AGCN network structure
圖1(b)為本文設計的注意力機制CNN 網絡,用來提取心電圖特征。該網絡結構包含2 個分支,一個分支是心電圖基本特征提取模塊(圖1(b)左側分支),用于提取心電圖基本特征;另一個分支為注意力機制模塊(圖1(b)右側分支),用于增強心電圖高層特征。數據X經過圖1(b)輸出信息增強的特征Xout∈,作為圖1(c)的輸入。
圖1(c)為自適應GCN 網絡,用來構建、提取樣本上下文信息特征并應用于分類。其中的節點為每個心電圖樣本經圖1(b)后提取的特征向量,圖的構建使用轉換設置,即數據集中訓練集、測試集樣本均構建在同一圖Gin中,通過掩碼進行劃分。圖Gin經過自適應GCN,輸出包含樣本上下文信息的特征Zout∈RN×D(D為類別總數),最后經過Sigmoid 完成分類。
MLECG-AGCN 模型的總體設計思路是,首先通過基于拉普拉斯濾波器設計的注意力機制CNN,增強對心電圖高頻信號的利用率,提高網絡的表征能力。然后,自適應圖卷積模塊采用圖的形式對樣本間的相互依賴關系進行建模,這是一種在特征空間中捕獲拓撲結構的靈活方法。在模型結構層面,MLECG-AGCN 模型將各心電圖樣本經注意力機制CNN 提取的特征作為節點組織成圖,使用自適應圖卷積顯式地建模樣本依賴關系,通過GCN 中自適應更新的鄰接矩陣,吸收鄰域中相關節點的信息,并對節點特征進行更新。自適應圖卷積網絡經過學習得到各樣本的分類器,這些分類器能更有效地利用全局信息和特征空間鄰域樣本信息,并可直接應用于心電圖特征進行分類,提高分類準確率。
心電圖基本特征提取模塊的結構如圖1 所示(圖1(b)左側分支),首先,輸入X經過一維卷積、一維批量歸一化(Batch Normalization,BN),非線性激活函數激活和池化層池化輸出淺層特征X1∈后,X1經過堆疊特別設計的殘差單元[23],輸出高層特征X2∈,殘差單元結構如圖2 所示,然后,在其中使用深度可分離卷積[24]代替常規卷積,降低參數量,并結合非線性激活函數層增強模型非線性表達能力。最后,X2經維度展平操作得到輸出Xfeature∈。

圖2 殘差單元結構Fig.2 Structure of residual unit
在心電圖中,大多數疾病均能通過其中的高頻信號顯示。這部分波形相較于其余部分有著波形突變性強的特征,而拉普拉斯濾波器的特點是可以突出圖像中強度發生快速變化的區域。
基于上述特點,本文構建如圖1 所示的注意力機制模塊(圖1(a)右側分支),網絡輸入為經過預處理的心電圖X∈RN×C×L,第1層為拉普拉斯濾波器層,對X中波形突變性較強的部分進行增強,得到更關注心電圖高頻信號的輸出特征Y∈RN×C×L。拉普拉斯濾波器層使用一維高斯拉普拉斯濾波器(Laplacian of Gaussian,LoG),先利用一維高斯平滑濾波對輸入降噪,再使用一維拉普拉斯算子的離散卷積核[1,-2,1]對降噪后的心電圖進行濾波操作,得到輸出特征Y。Y經過一維卷積層、一維BN 層、非線性激活函數層和池化層輸出淺層特征Y1∈。Y1經過堆疊的注意力機制殘差單元得到更高層特征Y2∈,注意力機制殘差單元結構如圖2(b)中RES Attention Module 所示,其中SE模塊通過學習的方式自動獲取各通道重要程度,以此篩選網絡對通道的注意力。特征Y2經池化層池化和維度展平后,得到注意力機制模塊的輸出Yatt∈RN×d′。Yatt與Xfeature拼接得到最終輸出特征Xout∈。
大多數心臟疾病與心電圖中高頻信號相關,而傳統CNN 對高頻信息利用不充分。因此,注意力機制模塊使用拉普拉斯濾波器,突出心電圖中強度發生快速變化的區域,得到增強心電圖高頻信號的特征,再通過堆疊特別設計的RES Attention Module 對其進行高層特征提取,以此實現對心電圖高頻信號的注意力增強,并得到增強后的心電圖高層特征。注意力機制CNN 網絡通過級聯操作拼接增強心電圖高層特征和心電圖基本特征,全面保留了信息增強后的心電圖高層特征和心電圖提取的基本特征,并將拼接后特征作為后續模型的輸入,有效利用了先驗信息,增加了提取特征的信息量。
自適應GCN 網絡以圖Gin為輸入,其包含初始節點特征矩陣Xout∈RN×d(N為樣本總數,d為樣本特征向量的維度)和初始鄰接矩陣A∈RN×N,參數可更新。Gin的初始化流程如圖3 所示。首先計算并記錄節點特征向量間的歐式距離dist(X,Y)=,之后新建鄰接矩陣A∈RN×N,根據KNN 算法尋找各節點的鄰域節點(如圖3(b)所示),在矩陣A中進行記錄,各節點對應行中的鄰域節點位置設置值為1。最后遍歷各節點,完成圖Gin的初始化。

圖3 圖初始化流程Fig.3 Initialization procedure of graph
自適應GCN 網絡結構如圖1(c)所示,第1 層為圖卷積層,計算式如(3)所示:

其中:G=g(Xout,A)表示大小為N×N的聚合矩陣,每行之和為1,g(·)是Xout和A的一個函數;操作符“∥”表示沿著特征維度進行拼接;W為權重矩陣,維度為2d×d1;σ(·)為非線性激活函數。
圖卷積層運算主要包括兩步。第1 步為Xout與G相乘,對節點鄰域節點的信息進行聚合;然后輸入節點特征Xout與鄰域聚合信息在特征維度上進行拼接。第2 步為對融合特征通過一組線性濾波器進行轉換,其參數為可學習的權重矩陣W。經圖卷積層,輸出圖G1,包含變換后的節點特征矩陣Ζ1∈(d1為輸出特征維度)和鄰接矩陣A1∈。第2 層為非線性激活函數層,Z1經激活輸出Z2∈。第3 層為圖卷積層,以G1為輸入,包含Z2和A1,經圖卷積層,輸出節點高層特征矩陣Z3∈和更新后鄰接矩陣A2∈RN×N。Z3經過ReLU 非線性函數激活層、線性等維映射層和PReLU非線性激活函數層,線性分類器層輸出Zout∈RN×D(D為類別總數),最后經過Sigmoid 完成分類。
與標準GCN 不同,本文的自適應GCN 模塊將鄰接矩陣A設置為參數自適應更新,能夠自適應地調整鄰域節點的權重,在多次迭代中效果較好。
自適應GCN 模塊通過基于GCN 的映射函數從輸入Gin中學習相互依賴的對象分類器Zout∈RN×D,其中D表示類別總量;N表示樣本總數。基于GCN的映射函數在構建中通過級聯操作拼接輸入節點特征信息和鄰域節點聚合信息,有效利用了節點特征空間的鄰域樣本信息,又不丟失節點自身信息。GCN 網絡通過每一個GCN 層更新節點狀態,每一個節點對應一個樣本的分類器,經過兩個堆疊的GCN層后,最終節點的特征向量長度達到總類別數D,再通過sigmoid 即可完成分類。
本文采用加權的二元交叉熵函數作為損失函數,其表達式如下:


其中:x表示預測值;y為真實標簽;σ(·)表示Sigmoid激活函數;c表示類別總數,此處設置為44;N表示每一個batch 樣本數;pc表示各類別的權重系數;w為各樣本權重,實驗中設置為1。
pc的定義如式(6)所示:

其中:num(c)表示類別c的樣本總數,各類別對應的權重系數與其數量成反比,以此提高小樣本類預測時對損失函數的影響,解決因數據集分布不均勻可能導致的分類偏差。
本文選用PTB-XL 數據集[25]進行實驗,PTB-XL數據集是一個大型心電圖數據集,包含來自18 885名患者長度為10 s 的21 837 個臨床12 導聯心電圖。PTB-XL 數據庫的采樣頻率為500 Hz。經數據加載,得到形如X∈RN×C×L的原始心電圖數據,其中:N為心電圖數據集樣本總數;C為通道數;L為單個樣本單導聯的時序信號值長度。
PTB-XL 數據集針對診斷類標簽給出了超類-子類-具體類的層次結構,其中超類包含NORM(正常心電圖)、CD(傳導干擾)、MI(心肌梗塞)、HYP(肥大)、STTC(ST/T 段改變)。本文針對樣本的診斷類標簽具體類別進行多標簽分類,將所研究問題轉化為一個44 類多標簽分類問題,表1 給出了其中4 個樣例類的詳細說明,包括該類標簽名、該類標簽的詳細描述、其在數據集中的樣本數以及所屬超類。

表1 樣例類詳細說明Table 1 Sample class details
本文采用PTB-XL 數據集推薦的訓練集和測試集進行實驗。其中訓練集數據為19 267 條,測試集數據2 163 條,推薦的測試集數據擁有高質量的標簽且數據分布與訓練集數據類似。
設備:CPU 使用的 是4 核32 GB 內存,GPU 使用Tesla-V100-SXM-32 GB×1。環境:Pytorch1.7.1+cuda10.0。
本文分別基于下列基準模型進行實驗對比:
1)ResNet18[23]:ReseNet18 是一個18 層的殘差結構CNN,在本實驗中使用一維卷積代替二維卷積,對ResNet18 進行了微調。
2)ResNet101[23]:ResNet101 是一個101 層的殘差結構深度CNN,對原網絡結構使用一維卷積進行微調。
3)Multi-ECGNet[8]:以殘差神經網絡為基礎,結合深度可分離卷積、SE 模塊構建殘差塊的CNN 網絡。
4)XceptionNet[24]:XceptionNet 是以Inception V3為基礎,使用深度可分離卷積改進的CNN,使用一維卷積對原網絡結構進行微調。
5)InceptionNet[26]:InceptionNet 是由多個大小卷積核提取圖像不同尺度信息并進行融合的CNN。一維卷積進行微調。
6)注意力機制CNN+線性分類層:使用本文設計的注意力機制CNN 網絡提取特征,并結合線性分類層完成分類的網絡。
7)注意力機制CNN+非自適應GCN:使用本文設計的注意力機制CNN 網絡提取特征,并結合非自適應GCN 完成分類的網絡。
本文所針對的分類任務為多標簽分類任務,參考現有心電圖多標簽分類研究所使用指標[9,27],本文選擇宏平均受試者工作特征線下面積值(Area Under the Receiver Operating Characteristic Curve,AUROC)作為主評價指標。另外,使用3 種常見的多標簽分類評價指標[28-29]作為副評價指標,包括標簽集排序損失(Label Ranking Loss,RL)[30],最大概率預測標簽錯誤率(OE)[31],全覆蓋偏差(Coverage Error,Cov)[28]。其中AUROC 值越高代表模型該指標越好,RL、OE、Cov 值越低代表模型該指標越好。
圖4所示為MLECG-AGCN模型各類別的AUROC值。如圖4 所示,MLECG-AGCN 模型在INJIL、3AVB等樣本數量較小的類別上均取得了大于0.99的AUROC值,在NORM、IMI 等樣本數量較大的類別上分別取得了0.946、0.935的AUROC值,這從側面驗證了本文所用損失函數的合理性。本文模型在LAO/LAE、IVCD 等個別類上表現不佳,這可能是由于該類樣本數量過少,或其在高頻心電圖中與其他疾病相似度過高等原因導致,但總體來說,MLECG-AGCN 模型在絕大多數類別的分類中表現較好。

圖4 MLECG-AGCN 模型的各類別AUROC值Fig.4 AUROC value for each class of MLECG-AGCN model
自適應圖卷積網絡測試集上的AUROC 值及其他評價指標值,以及訓練集及測試集損失隨訓練輪數變化如表2 所示。不同于CNN 模型的訓練方式,自適應圖卷積網絡在訓練時,需要構建原始圖,以原始圖為輸入進行訓練。自適應圖卷積網絡每一個epoch 只對模型進行一次更新,因此需要更多的迭代輪數以使loss收斂。本文設置epoch 為4 000 輪,由表2 可知,MLECGAGCN 模型在數據訓練開始后快速收斂,且并未欠擬合或過擬合。在初始20~50 輪迭代中,AUROC 值從0.661 快速提升至0.684;經500 輪迭代后,AUROC 值提升至0.870,在500 輪迭代前模型尚未穩定,AUROC 值的提升較快。經2 000輪迭代后,AUROC值達到0.934,已經接近ResNet101 基準模型的最高值。經過4 000 輪迭代后,AUROC 值為0.941,訓練中測試集AUROC 值最高值達到0.943,在這部分的迭代中,模型逐漸穩定,AUROC 值緩慢提升。

表2 自適應圖卷積網絡的實驗結果Table 2 Experimental results of adaptive graph convolutional network
表3 所示為不同模型在PTB-XL 數據集下,使用采樣頻率為500 Hz 心電圖數據進行對比實驗的結果,由表3 可知,ResNet101模型相較于ResNet18 模型的分類準確率更高,AUROC 值提升了0.011。為了驗證深度可分離卷積模型的有效性及其效果,將XceptionNet 與IncetionNet 模型進行對比,發現前者的AUROC 值提高了0.053。此外,將本文設計的注意力機制CNN+線性分類層網絡與Multi-ECGNet 對比,結果發現,結合了本文注意力機制和深度可分離卷積的注意力機制CNN 網絡取得了更好的結果,AUROC 值達到0.941,這驗證了本文設計的注意力機制CNN 在提高模型性能方面具有一定作用。MLECG-AGCN 模型與注意力機制CNN+非自適應GCN 相比,使用自適應GCN 的MLECG-AGCN 模型取得了更好的效果,這驗證了鄰接矩陣參數自適應更新在一定程度上能提高模型性能。MLECGAGCN 模型與注意力機制CNN+線性分類層相比,AUROC 值提高0.002,達到最高的0.943,這說明MLECG-AGCN 模型中自適應GCN 模塊對提高模型性能具有重要作用。

表3 不同模型在PTB-XL 數據集(500 Hz)下的實驗結果對比Table 3 Comparison of experimental results of different models in PTB-XL dataset(500 Hz)
為更全面地驗證MLECG-AGCN模型對不同類型心電圖數據的多標簽分類能力,本文還使用PTB-XL數據集中采樣頻率為100 Hz的心電圖數據對各模型進行了對比實驗,結果如表4 所示。由表4 可知,MLECGAGCN模型取得了最高的AUROC值0.930,同時其他指標值也略高于對比模型。實驗結果表明,MLECG-AGCN模型通過圖卷積網絡可以更有效地利用特征空間中的全局信息和鄰域信息,提高分類準確率。

表4 不同模型在PTB-XL 數據集(100 Hz)下的實驗結果對比Table 4 Comparison of experimental results of different models in PTB-XL dataset(100 Hz)
綜合上述實驗結果,與Multi-ECGNet 模型[8],以及以ResNet18、ResNet101、Xception 等為代表 的基準模型相比,MLECG-AGCN 模型取得了最高的主評價指標值,達0.943 639。同時,本文提出的注意力機制CNN 結合線性分類層在Cov 評價指標上取得了最高值,其他指標值略低于MLECG-AGCN 模型,驗證了本文注意力機制的優越性。
本文提出一種基于自適應圖卷積網絡的心電圖多標簽分類模型MLECG-AGCN,通過基于拉普拉斯濾波器設計的注意力機制CNN,增強對心電圖高頻信號的利用率,提高網絡的表征能力。使用自適應圖卷積,有效利用全局信息和特征空間鄰域樣本信息進行樣本分類,提高分類準確率。此外,本文設計并使用適用于多標簽分類的損失計算方法和評價指標,從多標簽角度考慮問題,從而高效利用高頻信號。實驗結果表明,注意力機制CNN 與自適應圖卷積網絡的結合有效提升了心電圖分類精度,MLECG-AGCN 模型能適用于心電圖分類工作。下一步將使自適應圖卷積網絡與CNN 網絡進行端到端結合,提高心電圖多標簽分類準確率。