贺煜航,刘棪,陈刚
(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 网络进行端到端结合,提高心电图多标签分类准确率。