APP下载

基于注意力神经网络的糖尿病视网膜病变识别*

2022-12-22彤,孟

计算机工程与科学 2022年3期
关键词:准确率卷积注意力

张 彤,孟 亮

(太原理工大学信息与计算机学院,山西 晋中 030600)

1 引言

糖尿病视网膜病变DR(Diabetic Retinopathy)是由糖尿病引起的一种主要致盲疾病[1],由于糖尿病患者体内过高的血糖会使视网膜内形成渗出物、厚血管、微动脉瘤甚至出血等,进而影响视觉[2]。在造成成年人失明的诸多因素中,DR占据首位[3],如果糖尿病患者能够较早发现并及时获得规范的治疗,大多数患者就可以抑制DR病情的发展,进而避免失明的风险。因此,对DR的分类研究不仅有重要的意义,而且有很大的临床应用价值,这已经成为目前研究的热点[4]。

在实际诊断DR中,分类准确率主要受以下因素的影响:过度依赖于眼科医生多年积累的临床经验;视网膜图像的质量会受到光线、设备和操作技术等方面影响;图像中存在一些难以用肉眼分辨的微小特征等[5]。目前卷积神经网络可以很好地解决上述问题,许多经典的网络可以用于处理和识别医学图像,很大程度上提高了对医学图像识别的准确率。但是,目前很多文献使用卷积神经网络对DR图像进行二分类或三分类,对五分类问题研究较少,并且存在数据处理复杂、识别准确率较低和网络性能不高的问题。

目前,国内研究人员使用卷积神经网络对DR图像进行识别分类的研究现状如下所示:丁蓬莉等[4]使用CompactNet经典网络对DR图像进行分类,分类准确率达到69%。Zhang等[6]采用深层残差网络对DR图像进行三分类,分类准确率达到80.8%。Luo等[7]对经典的残差网络进行改进,使用改进后的模型对DR图像进行分类,最终分类准确率为93.04%。陈榕[8]提出了一种改进的AlexNet深度学习方法对DR图像进行三分类,在小数据集上取得了较理想的效果,分类准确率达到了96.64%。熊彪[9]利用迁移学习的方法对DR图像进行分类,分类准确率有所提升。国外研究人员利用卷积神经网络对DR图像进行分类的相关研究如下所示:Ghosh等[10]利用卷积神经网络识别视网膜上微动脉瘤和出血等特征,在二分类和五分类任务上分别取得了95%和85%的准确率。Pratt等[11]利用支持向量机对DR进行三分类,最终取得75%的准确率。Shankar等[12]使用协同深度学习模型SDL对眼底图像进行五分类,在1 200幅彩色眼底图像上达到了95.5%的准确率。

上述方法中对DR进行细粒度分类的研究较少,且存在数据预处理较复杂、识别准确率较低和网络性能不高的问题。本文对目前广泛应用在图像识别领域中的DenseNet进行改进,针对网络中连接数和参数数量规模较大的问题,利用二阶马尔可夫的思想对DenseNet进行改进,提出了2-DenseNet网络,提高了网络收敛速度和泛化能力。深度学习中注意力机制可以指导网络关注图像中最有辨识度的信息,能有效提高糖尿病视网膜这类细粒度图像的分类准确率。目前,国内外很少利用嵌入注意力模块的卷积神经网络对DR图像进行分类。将SE(Squeeze-and-Excitation)注意力机制引入到2-DenseNet中,对准确率的提高并不明显。因此,本文借助残差网络中的Shortcut连接思想对SE进行改进,将其引入到2-DenseNet中,对DR图像进行正常、轻度、中度、严重和增殖性五分类,进一步提高了网络性能和分类准确率。

2 相关网络

2.1 2-DenseNet网络

研究表明,可以通过增加网络深度或宽度来提高卷积神经网络识别图像的准确率,但当网络深度或宽度增加到一定程度的时候,会出现一个问题:当输入信息或梯度信息通过很多层之后,可能会消失。为了解决梯度消失,保持前馈特性并确保层与层之间的最大信息流,DenseNet的每一层均连接到前面所有的层,并将当前层的特征映射作为所有后续层的输入。DenseNet模型由密集块和连接密集块的过渡层组成,图1表示模型中某个密集块。

Figure 1 A dense block in DenseNet

在一个l层的密集块中,每一层的输入定义为x1,x2,…,xl,则第l层的输入可用式(1)来表示:

xl=Fl(⊗(xl-1,xl-2,xl-3,…,x1))

(1)

其中,函数Fl(·)是由3个连续运算的复合函数组成的,这3个函数分别执行批标准化BN(Batch Normalization)、ReLU(Rectified Linear Units)激活操作和卷积操作;⊗是聚合操作符,表示将各层的特征图连接起来。

DenseNet虽然缓解了梯度消失问题,加强了特征重用且有利于特征的传播,但由于每2层之间都有直接的连接,所以会出现过度拟合和大内存消耗的问题。

N阶马尔可夫模型[13]是一种统计模型,其当前的状态仅仅依赖于前N个状态,与前N个状态之前的状态无关。P(·)表示依赖关系,其定义如式(2)所示:

P(xt|xt-1,xt-2,…,x1)=

P(xt|xt-1,xt-2,…,xt-N)

(2)

二阶马尔可夫模型是N阶马尔可夫模型的子模型,其当前状态只与前2个状态有关,并且有更高的分类准确率和泛化能力[14],已广泛应用在自然语言处理和语音识别等领域。

DenseNet和二阶马尔可夫模型在原理上均强调当前状态依赖于之前的状态,并对之前的状态或特征进行利用。因此,本文利用二阶马尔可夫的思想来简化DenseNet,提出了2-DenseNet,该网络通过聚合前2层的输入供后续层使用,减少了连接数,从而减少了网络参数,提高了网络收敛速度。与传统的神经网络相比,该模型有更好的分类准确率和较优的泛化能力。在2-DenseNet中的某个密集块中,第l层的输入仅来自于前2层,如图2所示,其可用式(3)来表示:

xl=Fl(⊗(xl-1,xl-2))

(3)

Figure 2 A dense block in 2-DenseNet

通过对比图1和图2可知,DenseNet和2-DenseNet的相同点是第l层都依赖于之前的层,实现了特征重用;不同点是前者第l层需连接之前所有的层,后者的连接具有针对性和规律性,第l层仅依赖于前2层。为了进一步探究DenseNet和2-DenseNet的运算量,对某个密集块中第l层的前向传播运算定义如式(4)所示:

Xl(i,j)=[Xl-1⊗w](i,j)+b=

(4)

其中,向量Xl-1和Xl分别表示第l层的输入和输出,w和b分别表示权重值和偏置值,⊗表示卷积运算,k表示通道总数,m和n是卷积核的尺寸。假设有M个密集块,L为密集块中的层数,DenseNet网络中有ML(L-1)/2个连接,2-DenseNet网络中有2M(L-1)个连接。当L=5时,2-DenseNet相比DenseNet连接数减少了46.7%,参数量也随之减少。

上述分析表明,2-DenseNet除了可以实现特征重用、缓解梯度消失外,还可以减少连接的数量,极大减少运算量,使得网络收敛速度更快并且运行时间更短,在保证分类精度的前提下,解决了DenseNet中出现的问题。

2.2 注意力机制算法

当观察一幅图像时,人类视觉会快速扫描整个区域,获得需要重点关注的目标区域,并在这个区域投入更多的精力,从而获得有用的信息,这就是人类大脑中所特有的视觉注意力机制,深度学习中的注意力机制即受此启发得以产生。最近,注意力机制在语音识别、图像识别和自然语言处理等领域都得到了广泛应用,该机制可用于指导网络关注图像中最有辨识度的信息,因此适用于糖尿病视网膜这类细粒度图像的分类[15]。

神经网络可以在空间维度、通道维度或者混合维度上引入注意力机制,SE-Net[16]是在通道维度上引入的。SE-Net通过自动学习来获取每个通道的重要程度,然后根据重要程度为每个通道赋予权值,使得神经网络重点关注权值大的通道并学习有用的特征。已有研究表明,在ResNet、Inception和Inception-Restion传统网络中加入SE模块会明显提高网络性能,但将该模块引入到2-DenseNet中实验效果并不明显。

为了进一步增强网络性能,本文针对SE模块进行改进,提出了一种新的注意力机制模块,该模块由卷积模块和注意力模块组成,如图3所示。

Figure 3 Attention mechanism module

注意力机制以主网络2-DenseNet的特征映射为输入,假设输入向量为x,图3左边是卷积模块,用H(x)表示,右边是注意力模块,用F(x)表示。卷积模块是2-DenseNet密集块中的3×3卷积,注意力机制模块由1个全局池化层和2个1×1卷积模块组成。通过在H×W×C的特征图上进行全局池化,可得到一个1×1×C的一维特征向量,代表的是每个通道信息的重要程度。1×1卷积模块执行BN、ReLU 和1×1 卷积操作,是为了对全局池化之后的结果进行非线性变换。残差网络中通过加入Shortcut连接,变得更容易被优化,本文借鉴Shortcut连接思想,将全局池化层和第1个卷积模块的输出作为第2个卷积模块的输入,第2个卷积模块的输出用于调整原始网络的输出,其输出的特征图大小为1×1×C,最后将输入的H×W×C特征图与1×1×C特征图进行全乘操作得到每个通道的权值,网络将自动关注权值大的通道并学习有用特征。经过注意力机制模块最后的结果可表示为H(x)+H(x)×F(x)。

3 网络框架

注意力机制有助于增强模型的特征表达能力[17],综合不同信息,提高网络的理解能力[18]。将深度学习中的注意力机制应用在卷积神经网络中,使得神经网络可以自动获取到DR图像特征通道中的重要信息[19],比如微动脉瘤、渗出物、厚血管和出血等有价值的特征,进而加快网络的训练速度,提高网络性能和识别准确率。

本文在2-DenseNet中引入注意力机制模块后,总体框架如图4 所示。网络中包含了3个密集块,块之间的层称为过渡层,它执行卷积和合并操作,过渡层由1×1 卷积层和2×2 平均池化层组成。在每个密集块之后执行全局平均池化,然后附加一个Softmax 分类器,用来监督网络模型的学习。引入注意力机制,进一步提高了网络性能和DR图像分类精度。

Figure 4 Network framework

4 实验设计

4.1 数据集

实验数据来源于Kaggle社区竞赛的EYEPACS数据集,数据集中图像有多种分辨率,每位被试者有左右2幅眼底图像,这2幅眼底图像有相同的分辨率。该数据集包含35 126幅由7名专业眼科医生诊断为不同严重程度的高分辨率视网膜图像,其严重程度分为正常、轻度、中度、严重和增殖性5大类,且已被标注图像病变程度,数字0~4表示严重程度,其中,“0”表示正常,“1”表示轻度,以此类推。如图5所示,图5a对应正常DR图像,图5b对应轻度DR图像,以此类推,图5e对应增殖性DR图像。从图5可以看出,各类DR图像之间的差异并不明显,轻度DR和中度DR图像病变特征难以用肉眼区分,人为地进行特征提取并分类病变程度可能会导致错误。

EYEPACS数据集在不同病变程度上的图像数量如表1所示,从表1中可以看出各类视网膜图像数据分布严重不平衡。

Table 1 Distribution of EYEPACS dataset

4.2 预处理方法

各类视网膜图像之间数据分布差距较大,在训练过程中经过多层卷积后,可能在一定程度上导致梯度方向发生变化。为了解决这个问题,本文对分类器训练集中5类图像进行批归一化处理,且各类中的图像数量相等,该处理使分类器偏向某个类的机会减小。

数据集的大小对于模型训练结果起着至关重要的作用,本文采用了一些数据增强的方法,比如旋转180°和270°。原始图像的分辨率、亮度和对比度各不相同,本文采用归一化技术使得图像具有相同的分辨率,所有图像均被调整为512像素。同时还根据视网膜图像中眼球的半径进行裁剪,使得所有图像具有相同的视场半径。为了固定图像的亮度和增强对比度,本文采用直方图均衡化增强有价值的特征,如微动脉瘤、渗出物、厚血管和出血等特征。此外,为了增强有价值的特征并调整图像大小,本文采用高斯消去函数来减少图像模糊,使得特征更加明显,这样血管、微动脉瘤和渗出物等特征非常突出,使得模型更容易学习。最后,本文利用轮廓技术去除视网膜的外边界,避免了网络学习无用的特征。图6显示了预处理的过程。

Figure 6 Examples of image preprocessing

4.3 评价指标

混淆矩阵是评价网络精度的一种标准形式,通常将数据集中的标签按照真实的类别和网络预测的类别用n×n的矩阵表示。混淆矩阵有TP、FN、FP、TN等变量,其中,TP表示将正类样本预测为正类样本的数量,样本真实值为0,预测值也为0;FN表示将正类样本预测为负类样本的数量,样本真实值为0,预测值为1;FP表示将负类样本预测为正类样本的数量,样本真实值为1,预测值为0;TN表示将负类样本预测为负类样本的数量,样本真实值为1,预测值也为1。

准确率Accuracy是深度学习识别任务中最常见且最直观的评价指标,它表示预测正确的样本占所有样本的比例,如式(5)所示:

(5)

但是,在正负样本数量不平衡的情况下,准确率无法对负类样本进行评价,因此还需要其他评价指标对负类样本的预测情况进行评价。

灵敏度Sensitivity表示预测正确的正类样本占真实正类样本的比例,用于衡量分类器对正类的识别能力,该评价指标在医学图像分类中非常重要,因为在临床诊断中必须极力降低漏诊率。灵敏度公式如式(6)所示:

(6)

特异性Specificity表示预测正确的负类样本占真实负类样本的比例,其公式表示如式(7)所示:

(7)

5 实验与结果分析

本实验基于TensorFlow深度学习框架,采用Python作为编程语言,在Anaconda平台上实现了引入注意力机制的2-DenseNet算法,在GPU平台上运行。为了在训练DR图像时进行交叉验证并用学习好的模型进行测试,将数据集随机划分为3部分:70%的数据组成训练集,20%的数据组成验证集,10%的数据组成测试集。

用混淆矩阵对本文注意力模型进行评价,图7a 表示使用嵌入注意力模型的2-DenseNet在测试集上预测的结果,图7b表示2-DenseNet的预测结果。实验结果表明,2个网络的分类结果大部分都分布在混淆矩阵的对角线上,引入注意力模型明显降低了分类错误率,说明注意力机制可以进一步提高网络性能和分类精确率。

Figure 7 Predicted results

在训练集和验证集上用引入注意力机制的2-DenseNet网络进行训练和交叉验证,图8展示了训练精度和验证精度随迭代次数的变化情况。从图8可看出,随着迭代次数的增加,训练精度和验证精度越来越高,最终网络的分类识别率达到了97.2%。在Kaggle数据集上对多个网络进行实验对比,图9是DenseNet、GoogLeNet、VGGNet、ResNet、SparseNet、ResNext和本文网络的对比结果。从图9可以看出,改进后的网络分类准确率高于其他对比网络的。

Figure 8 Training accuracy and verification accuracy of improved network

Figure 9 Comparison of training accuracy of different networks

由图9和表2可得出以下结论:相比DenseNet,本文网络参数少,收敛速度快,且准确率、灵敏度和特异性都较高;由于GoogLeNet、VGGNet、SparseNet和ResNet总参数少,所以收敛速度稍微快于本文网络的,但是本文网络在准确率、灵敏度和特异性3个指标上均高于这4个网络,并且有更好的平衡性。实验表明,改进后的网络分类性能优于传统网络。

Table 2 Comparison of indicators of different networks

本文还在Kaggle数据集上对识别准确率较高的相关网络在运行时间上分别进行了比较,运行时间为处理一幅视网膜图像的时间,如表3所示。通过实验结果可以看出,改进后的网络运行时间最短,表明了本文改进方法的合理性,同时也验证了本文方法的有效性,该网络在临床诊断DR过程中具有很好的参考价值。

Table 3 Time comparison of different networks

6 结束语

针对目前使用神经网络对糖尿病视网膜病变识别存在的网络性能不高、识别精度较低的问题,本文对经典的DenseNet网络进行改进,通过有针对性地减少DenseNet中的连接数,并引入一种新的注意力机制来改进。实验结果表明,本文方法有效提高了网络性能和识别准确率,并加快了运行速度。在实验过程中发现,数据集中存在视网膜图像各类别之间数据分布不平衡,以及原始图像的分辨率、亮度和对比度各不相同等主要问题,因此需要在训练之前对视网膜图像进行预处理。本文先对图像进行批归一化处理,使分类器偏向某个类的机会减小,采用直方图均衡化和高斯消去法来固定图像的分辨率、亮度和对比度。其次,有针对性地减少DenseNet网络中连接数,得到2-DenseNet网络,并将注意力模型嵌入到该模型中,使网络关注图像中最有辨识度的区域并自动获取图像深层病变特征,从而加快网络收敛速度并提高网络性能。实验结果表明了注意力机制对提高糖尿病视网膜这类细粒度图像分类精度具有较大贡献,该分类模型在DR五分类任务上取得了较高的准确率,有助于提高医生在临床诊断中的效率和准确率。在后续工作中,将尝试将该模型应用在其他计算机视觉分类任务上,提高对其他医学图像的分类精度。

猜你喜欢

准确率卷积注意力
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法