APP下载

基于改进ResNet50的心音分类算法研究

2022-05-30李嘉琪全星日

电脑知识与技术 2022年21期

李嘉琪 全星日

摘要:心音自动分类算法广泛使用浅层卷积神经网络和递归神经网络,针对其特征提取能力较弱、感受野大小单一的不足,提出了基于改进ResNet50的心音分类算法。使用ResNet50网络作为分类模型,并引入空间注意力机制SK conv(Selective Kernel convolution)和混合空洞卷积(HDC, Hybrid Dilated Convolution)方法。使用经短时傅里叶变换提取的时频图作为输入,在PhysioNet Challenge2016数据集上进行正常与异常心音分类测试。实验结果表明,与ResNet50网络相比,该方法获得了更高的分类精度,平均准确率达到92.6%。

关键词:心音分类;ResNet50;Selective Kernel convolution;混合空洞卷积

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2022)21-0076-03

开放科学(资源服务)标识码(OSID):

心血管疾病严重危害著人们的健康,对其防治变得日益重要。心音信号中包含着心脏运动的生理信息,利用心音对心血管病患者进行初期筛查是有效的手段,心音自动分类算法受到了广泛关注。

随着人工智能技术的发展,各种性能优异的分类模型层出不穷。在机器学习发展的早期,心音分类算法主要利用传统机器学习对心音分类,但有耗时长、特征工程复杂等不足之处。随着深度学习快速发展后,心音分类算法引入卷积神经网络(CNN)与循环神经网络(RNN)等算法,对于卷积神经网络来说,以浅层卷积神经网络[1]和基于浅层卷积神经网络的混合网络[2]为主,但有特征提取能力较弱,感受野大小单一的缺点。自残差网络诞生以来,深度卷积神经网络依靠强大的特征学习能力在计算机视觉领域大展拳脚。Nassralla M等人[3]引入ResNet50网络作为心音自动分类算法的分类模型,但其也存在感受野大小单一的问题。以往的研究,多是通过改变浅层卷积神经网络的结构或优化心音信号特征提取方法,本研究使用ResNet50网络,在其中引入SK conv,使得网络能够根据输入数据特点自适应改变感受野大小,应用混合空洞卷积, 增加网络感受野大小的多样性,以获取心音时频图的多尺度上下文信息。

1分类模型

1.1 ResNet50网络

随着社会不断发展,浅层卷积神经网络的性能已经不能满足一些领域的需要,研究趋向于通过增加网络深度来提高性能。但发现随着网络深度增加,其性能却出现了退化,由何凯明等人[4]提出,基于残差思想的ResNet网络解决了这个难题。

通过简单堆积卷积构成的网络在训练时,非线性层直接拟合期望的基础映射。如图1所示,ResNet利用残差学习思想引入短路连接(shortcut connection),使得非线性层拟合残差映射。在残差模块中,当使用[x]表示输入,[Hx]表示期望的基础映射时,那么非线性层学习的是残差[Fx=Hx- x]。一般来说,残差比期望的基础映射小,更容易学习,有效降低了网络的训练难度。当网络中某层残差模块难以训练,学不到新的信息时,残差模块只需要做恒等映射[x],即[Fx=0],这样至少不会导致网络性能退化。

考虑到计算的成本,在实现ResNet网络时,根据网络深度不同,设计了两种残差模块。ResNet50网络使用的是bottleneck模块,bottleneck模块为1×1 +3×3 +1×1的卷积结构,相较于block模块,bottleneck模块通过先使用1×1卷积降维,再利用1×1卷积还原维度,在保证精度的同时,降低了计算量。

1.2混合空洞卷积

空洞卷积对于标准卷积的改进方法与插值操作类似,在标准卷积核的像素间,插入值为0的行列,在不增加计算量的同时,增加了卷积的感受野大小。空洞卷积的尺寸计算方法如公式(1)所示,其中[x]表示空洞卷积的尺寸,[ r]表示空洞卷积的膨胀率,即在原像素间插入的行列数,[k]表示原卷积核大小:

[x = k + k+1×r-1]                  (1)

当网络中连续使用膨胀率相同的空洞卷积时,该方法会损失原特征图信息的连续性;利用间隔采样设计的空洞卷积是为了获取长距离信息,而间隔采样会丢失细节信息。针对这两个问题,Wang Panqu等人[5]提出了混合空洞卷积。它是根据膨胀率计算公式(2)设计的锯齿状空洞卷积序列 [r1, …,ri, …,rn], 能够实现感受野覆盖全图的目的,小膨胀率空洞卷积提取基础信息,大膨胀率空洞卷积提取长距离信息,在获取更宽阔的区域信息的同时,又能在保持接收野大小不变的情况下提高信息利用率。公式中[ri]是第[i]层的膨胀率,而[Mi]是指第[i]层最大膨胀率。

[Mi=maxMi+1-2ri,Mi+1-2Mi+1-ri,ri]  (2)

1.3 Selective Kernel convolution

李翔等人[6]提出的SK conv结合了通道注意力机制SENet、分组卷积和多支路设计的思想。李翔等人共分为Split、Fuse和Select三步。Split是对输入特征图分别作不同卷积核大小的完整卷积操作(包括分组卷积、Batch Normalization和激活函数ReLU),按照图4所示,一组为3×3的标准卷积,一组为3×3的空洞卷积(膨胀率r=2),然后将生成的两个特征图[U]和[U]按照相应通道元素相加,得到特征图U;Fuse首先是对特征图U做全局平均池化操作,得到特征向量s,其中每一数值代表着相应通道的全局信息。然后经过一个简单全连接层,得到紧凑特征向量z,用于精确和调整的选择,同时进行了降维处理。Select是让特征向量z分别经过一个全连接层,再对得到的结果进行softmax操作,从而得到两个支路的权重a与b(a+b=1),将特征图[U]和特征图[U]与各自权重a与b分别相乘后再相加,得到最终的特征图V。

2基于改进ResNet50的心音自动分类算法

2.1预处理与特征提取

心音信号的预处理是整个心音自动分类算法的基础。先对原始信号进行1000 Hz重采样,用来消除不同子数据库采样频率不一致的影响,之后通过巴特沃斯带通滤波器对心音记录在25Hz~400Hz范围之间带通滤波,最后使用D.Spring等人[7]提出的方法去除心音中的毛刺。

心音信号是一种非平稳信号,通过使用短时傅里叶变换技术,获取能够很好地表征心音信号时频特性的时频图。为了在时频图中体现心音信号的完整信息,将心音记录按3.2秒截取。

2.2改进的ResNet50网络

李翔等人经过在验证SK conv可行性时发现,当SK conv应用在网络前半部分时,网络会根据特征图特点自适应的选择卷积核大小,而SK conv应用在网络末尾时,网络没有明确的倾向去选择更大或更小的卷积。因此只在ResNet50中con2_x与con3_x层使用,将con2_x与con3_x层中的卷积核大小为3×3的标准卷积替换为SK conv。

通过在ResNet50网络的con4_x层使用空洞卷积,弥补原网络感受野大小单一的不足,捕获特征图的多尺度上下文信息,进一步提高网络特征学习能力。为了避免空洞卷积计算时丢失特征图细节信息和损失信息的连续性,使用公式(2)来确定con4_x层各bottleneck模块中空洞卷积的膨胀率。ResNet50网络的con4_x层由6个bottleneck模块组成,第一个bottleneck模块输入的特征图大小为28×28,其余五个输入的特征图大小均为14×14,由于该层的特征图尺寸较小,在此使用的锯齿状空洞卷积序列为[1、2、3、1、2、3]。

3 实验结果分析

3.1 运行环境

实验的仿真平台为Pycharm,利用Pytorch框架对网络进行了训练和测试。GPU为RTX2080Ti(11G),操作系统为Windows10,编程语言为Python3.6。实验选用Adam优化器,损失函数为交叉熵损失函数,初始学习率设为0.001。对PhysioNet Challenge 2016公开数据集,所有方法均进行60次迭代训练,批次大小为16。

3.2实验数据集与数据平衡

实验数据集使用PhysioNet Challenge 2016公开数据集,由六个不同的数据库组成,共3240条心音记录,其中包括训练集2939条(正常心音记录2425条和异常心音记录514条)和挑战测试集301条(正常心音记录150条和异常心音记录151条),心音记录时长在5秒到120秒之间。

在PhysioNet Challenge 2016公开数据集的训练集中,正常心音记录数量大约是异常心音记录的5倍,数据不平衡会影响网络训练,为了避免这种情况,从正常心音记录中心位置截取一段3.2秒心音,而将异常心音记录每3.2秒截取一次,不足3.2秒的心音片段舍去,再从中随机抽取与异常心音片段相同的数量。将4850个心音片段根据来源按照8:2随机抽取,分别为训练集与验证集,其数据均不同源,应用PhysioNet 2016心音挑战赛中所用测试集作为测试数据。

3.3评价指标

对实验结果的评估应用PhysioNet2016心音挑战赛使用的评价指标,包括敏感度(Sensitivity)、特异性(Specificity)和平均准确率。在公式(3)~(5)中,TP表示将正常心音信号预测为正常的数目,FP表示将异常心音信号预测为正常的数目,TN表示将异常心音信号预测为异常的数目,FN表示将正常心音信号预测为异常的数目。

3.4 实验结果分析

为了验证改进方法对正常与异常心音分类任务的有效性,在ResNet50网络上分别引入SK conv和HDC方法构建ResNet50+HDC网络和ResNet50+SK conv网络,将与SK conv和HDC方法同时使用,得到最终改进的ResNet50网络进行比较。本实验在PhysioNet2016心音挑战赛的公开数据集上,对ResNet50网络和三个改进网络进行训练和测试,得到的结果如表1所示,可以看出,单独引入空间注意力机制和混合空洞卷积都能够有效提升网络性能,但前者方法更好,而在ResNet50中同時引入注意力机制和混合空洞卷积的方法与之相比,能够更加有效地对正常与异常心音信号分类。

4结论

本研究使用ResNet50网络作为识别正常与异常心音信号的分类模型,并结合空间注意力机制和混合空洞卷积的优势,将原网络中的感受野大小增加且多样化,还使网络可以根据输入数据特点自适应的改变感受野大小,提高网络特征学习效率。通过在PhysioNet Challenge 2016公开数据集上评估,得到敏感度为0.929、特异性为0.923和平均准确率为0.926的指标。该网络具有一定的优异性,能够对心音信号进行有效分类。

参考文献:

[1] Cheng X F,Huang J Z,Li Y Y,et al.Design and application of a laconic heart sound neural network[J].IEEE Access,7:124417-124425.

[2] 李伟,杨向东,陈恳.基于CNN和RNN联合网络的心音自动分类[J].计算机工程与设计,2020,41(1):46-51.

[3] Nassralla M,Zein Z E,Hajj H.Classification of normal and abnormal heart sounds[C]//2017 Fourth International Conference on Advances in Biomedical Engineering (ICABME).October 19-21,2017,Beirut,Lebanon.IEEE,2017:1-4.

[4] He K M,Zhang X Y,Ren S Q,et al.Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition.June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:770-778.

[5] Wang P Q,Chen P F,Yuan Y,et al.Understanding convolution for semantic segmentation[C]//2018 IEEE Winter Conference on Applications of Computer Vision.March 12-15,2018,Lake Tahoe,NV,USA.IEEE,2018:1451-1460.

[6] Li X,Wang W H,Hu X L,et al.Selective kernel networks[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).June 15-20,2019,Long Beach,CA,USA.IEEE,2019:510-519.

[7] Springer D B,Tarassenko L,Clifford G D.Logistic regression-HSMM-based heart sound segmentation[J].IEEE Transactions on Bio-Medical Engineering,2016,63(4):822-832.

【通联编辑:唐一东】