基于改进ConvNeXt 的皮肤镜图像分类方法

2023-10-17 05:50李建威吕晓琪谷宇
计算机工程 2023年10期
关键词:卷积准确率神经网络

李建威,吕晓琪,2,谷宇

(1.内蒙古科技大学 信息工程学院 内蒙古自治区模式识别与智能图像处理重点实验室,内蒙古自治区 包头 014010;2.内蒙古工业大学 信息工程学院,呼和浩特 010051)

0 概述

皮肤癌是因皮肤细胞的异常生长而引起的,近年来,其高发病率已经导致重大的公共卫生问题,且一旦皮肤癌错过治疗时机,就会危及生命。因此,针对皮肤癌的早期诊断研究具有重要意义[1-2]。

皮肤镜是一种成像技术,可用来观察皮肤色素性疾病,利用此技术可以得到较精确的皮肤色素性疾病诊断效果[3],但从皮肤镜图像中手动检测皮肤疾病是一个困难且耗时的过程。目前,得益于计算机技术的发展,利用深度学习的方法在医学图像领域得到广泛的应用[4-5]。文献[6]在分析不同深度学习模型的参数量后,提出一种轻量级皮肤癌分类模型,其准确率为85.8%。文献[7]采用迁移学习和数据增强的技术,缓解了训练数据不足的问题,最终准确率为87.7%。文献[8]提出一种多模态深度学习信息融合框架用于皮肤病变的分割与分类,准确率为87.02%。文献[9]设计出一种深层卷积神经网络,并使用类激活映射技术实现特征可视化,获得86.5%的准确率。文献[10]提出一种改进的MobileNet,实验结果表明,改进的模型比传统的MobileNet具有更高的性能。文献[11]先分割皮肤病变边界,然后再使用神经网络对其进行分类,准确率为89.3%。文献[12]提出一种基于个体优势集成和群体决策的皮肤镜图像分类方法,其分类效果优于单个卷积神经网络。

深度学习在皮肤镜图像自动分类领域具有良好的应用前景[13],但目前仍存在不少问题:皮肤镜图像不同类别之间具有较高的视觉相似性,分类难度较大;皮肤镜图像的收集需要大量的医学知识,数据获取难度较大,能用于深度学习训练的数据量相对较小。

针对上述问题,本文提出一种基于改进ConvNeXt 的皮肤镜图像分类方法。ConvNeXt 作为新一代的卷积神经网络,吸收Swin Transformer 的大量优秀设计,并在计算机视觉领域中取得优异的性能。为提升网络模型的性能,本实验在ConvNeXt 模型中加入SimAM 模块,在无需额外参数的情况下改善Depthwise Convolution 无法高效利用不同通道在相同空间位置上的特征信息的缺陷。同时,在ConvNeXt 模型中插入通道域注意力模块,使网络模型更有效地学习关键特征,减少对非重要信息的关注,提升网络模型的性能。在训练中使用Warmup 策略使模型权重逐步稳定,并设置学习率按照余弦函数值进行衰减,提升模型的分类效果。

1 本文方法

1.1 ConvNeXt 模型

在计算机视觉领域,卷积神经网络一直是主流模型[14]。受基于Self-Attention 结构的Transformer在自然语言处理领域的成功的启发,微软亚洲研究院 在2021 年提出Swin Transformer模型[15],其 在多个数据集中均取得优异的表现。

虽然Transformer 在各种计算机视觉任务上表现出优异的性能,但在图像处理方面还暂时无法取代卷积神经网络。此外,Transformer 的优秀性能可能归功于其内在结构。基于此项假设,Facebook AI Research(FAIR)将Transformer 的相应技术应用在ResNet上,提出ConvNeXt 模型[16]。

ConvNeXt 模型是ResNet 从5 个方面借鉴Swin Transformer 的设计思想后得到的,其整体结构如图1所示。

图1 ConvNeXt 模型结构Fig.1 Model structure of ConvNeXt

1.1.1 宏观设计

ResNet 与Swin Transformer均有4 个stage,但Swin Transformer tiny version 中各个stage 的block 堆叠比例为1∶1∶3∶1,由此研究人员将ConvNeXt 模型的堆叠比例调整为3∶3∶9∶3,使ConvNeXt 模型更接近于Swin Transformer。同时,ConvNeXt 模型参考Swin Transformer 的patchify 操作,将Stem 层设置为卷积核大小为4,步长为4 的卷积操作。

1.1.2 Depthwise Convolution 操作

人工智能实验室的研究人员采用ResNeXt[17]的思想,使用Depthwise Convolution,他们认为,Depthwise Convolution类似Transformer 的自注意力机制,只能在每个通道上进行空间信息的交互。

1.1.3 逆瓶颈结构

ResNet 为减轻计算量,使用瓶颈结构。而MobileNetV2[18]使用逆瓶颈(Inverted Bottleneck)结构,减少信息的损失。人工智能实验室的研究人员认为Transformer 的mlp 模块与逆瓶颈结构十分相似,因此ConvNeXt 模型也采用类似的设计。ConvNeXt 模型所使用的逆瓶颈结构如图2 所示。

图2 ConvNeXt 模型结构的修改Fig.2 Modification of ConvNeXt model structure

1.1.4 大卷积核

现代卷积神经网络大都使用3×3 的卷积核[19],而在Swin Transformer中,使用的却是7×7 的自注意力窗口。基于此,人工智能实验室的研究人员将ConvNeXt 的Depthwise Convolution 的大小设置成7×7。

1.1.5 微观设计

除上述宏观尺度的改进,ConvNeXt 模型还在微观尺度上做出不少调整。ConvNeXt 模型将ReLU 函数替换成GELU 函数,并减少激活函数的数量。同时,ConvNeXt 模型采用更少的归一化层,并把BatchNorm 替换成LayerNorm。ConvNeXt 模型还模仿Swin Tranformer 下采样设计,使用步长为2 的2×2卷积进行空间下采样。ConvNeXt 模块与Swin Transformer 模块的对比如图3 所示。

图3 Swin Transformer 模块与ConvNeXt 模块的对比Fig.3 Comparison of Swin Transformer module and ConvNeXt module

1.2 ConvNeXt 的改进

1.2.1 SimAM 模块

人类的视觉机制极为高效,可以通过调节注意力,使视觉关注到最重要的部分。深度学习的研究人员模仿人类的注意力机制,将其引入到卷积神经网络上,使性能得到提升。

为降低毛发、气泡等复杂背景的干扰,提升网络模型的抗干扰能力,本实验提出的改进模型在Depthwise Convolution 后加入3D 的无参注意力模块[20],在不额外引入参数的情况下更全面高效地评估特征权重,提升基础模型的性能。

中山大学的研究人员通过模仿生物神经,提出一种能挖掘神经元重要性的SimAM 模块。该模块结构简单,不向原始网络添加参数。SimAM 模块的结构如图4 所示。

图4 SimAM 模块的结构Fig.4 Structure of SimAM module

在神经科学中,信息量大的神经元与周围神经元具有不同的放电模式。此外,活跃的神经元还会抑制周围的神经元活动,这种现象被称为空域抑制[21]。由此可见,在视觉任务中,应该给具有空域抑制的神经元更高的优先级,找到重要神经元的一个简单方法是测量目标神经元与其他神经元之间的线性可分性,基于此,研究人员定义能量函数,如式(1)所示:

其中:t是指输入特征X的目标神经元;μ和σ2是除t以外的所有神经元的平均值和方差,当系数λ为0.000 1 时效果较好。通过式(1)可知,能量越低,意味着神经元t与周围神经元的差异越大,其重要性也越高。因此,神经元的重要性可以通过1/e*得到。最后,根据各神经元的重要性,对特征图进行优化,表达式如式(2)所示:

其中:输出结果为增强后的特征;X为输入特征;⊙为点积运算;E为每个通道上的能量函数;Sigmoid函数用于限制E中可能出现的过大值。

1.2.2 通道注意力机制

SENet(Sequeeze and Excitation Network)[22]是2017 届ImageNet 分类比赛的冠军,它提出一种针对通道方向的注意力机制,通过在网络模型中插入SE模块,给予重要的皮肤特征更多的关注,从而让网络提取的特征指向性更强,特征利用更充分。

SE 模块能评估各个特征通道的重要程度,再对不同的特征通道进行增强或者抑制。SE 模块的结构如图5 所示。

图5 SE 模块的结构Fig.5 Structure of SE block

在SE 模块中,先对输入特征图X进行Fsq(·)操作(即Squeeze 操作),得到具有全局信息的1×1×C特征向量。然后再进行Fex(·,W)操作(即Excitation 操作),通过两个全连接层融合各个通道的特征图信息,得到各通道的重要程度。最后的Fscale(·,·)操作则把向量值与特征图加权,给每个特征通道赋予不同的权重。

1.3 Cosine Warmup 学习率策略

学习率是网络训练中最为重要的超参数之一,其设置的好坏决定目标函数能否收敛到局部最小值以及何时收敛到最小值[23]。在网络训练的初期阶段,如果此时使用较大的学习率,会造成网络模型对数据的过拟合,偏离最优点。

Cosine Warmup[24]是一种学习率优化方法,通过预热学习率的方式,能够先让网络模型在早期训练时使用预热的较小学习率,使得网络模型慢慢趋于稳定。待网络模型具有一定先验知识且相对稳定后,再使用较大的学习率进行训练,可以加速网络模型的收敛。图6 所示为使用Cosine Warmup 的学习率系数变化。当网络模型使用较大的学习率训练一段时间后,模型的分布会相对稳定,此时不再适合使用较大的学习率训练网络模型,降低学习率能够使网络模型更接近局部最小值。余弦退火(Cosine Annealing)[25]即使用余弦函数来减小学习率,学习率先从很小的数值线性增加到预设学习率,然后按照cos 函数值进行衰减,这种下降模式可以和学习率结合在一起,达到较好的效果。

2 实验结果与分析

2.1 实验环境和设置

本实验的模型在Windows10 操作系统上实现,采用PyTorch1.7 框架,使用Python 编程语言。实验的硬件平台为Intel®Xeon®CPU E5-1650 v3 @ 3.50 GHz 3.49 GHz,NVIDIA GeForce RTX 3090,显存为24 GB。实验中的训练迭代次数为300次,批次样本数设置为8,优化器为AdamW。

2.2 实验环境和设置

本实验使用的数据集是国际皮肤影像合作组织(International Skin Imaging Collaboration,ISIC)2018 挑战赛提供的HAM10000 数据集[26-27],该 数据集包含10 015 张皮肤损伤的皮肤镜图片,包含7 种皮肤病:即光化性角化病(Actinic keratoses,Akiec)、基底细胞癌(Basal cell carcinoma,Bcc)、良性角化病(Benign keratosis-like lesions,Bkl)、皮肤纤维瘤(Dermatofibroma,Df)、黑色素瘤(Melanoma,Mel)、黑素细胞痣(Melanocytic nevi,Nv)和血管病变(Vascular lesions,Vasc),图7 所示为皮肤癌示例。

图7 皮肤癌示例Fig.7 Examples of skin cancer

2.3 数据增强

在数据集分布均匀且数量大的情况下,卷积神经网络能发挥出优秀的特征提取能力。但医学数据集存在着图像数量不足和分布不均匀的问题,这将降低卷积神经网络的训练效果,容易导致过拟合[28]。HAM10000 数据集存在分布不均匀的问题,为减轻过拟合现象,对数据集进行随机旋转(0°~10°)、随机缩放10%、随机移动等操作,增加数据集的数量。图8 所示为数据增强示例。

图8 数据增强示例Fig.8 Examples of data augmentation

2.4 评价标准

为评价网络对皮肤镜图像的分类效果,本实验使用准确率(Accuracy)、精确率(Precision)、召回率(Recall)和特异性(Specificity)共同对分类结果进行评估。在实验中,正样本是与真实标签一致的样本,而负样本是与真实标签不一致的样本。其中:TP为模型将正类预测为正类的样本数;FN为模型将正类预测为负类的样本数;FP为模型将负类预测为正类的样本数;TN为模型将负类预测为负类的样本数。在多分类任务中,各类别的TP、TN、FP、FN计算方式可由图9 概括。

图9 多分类混淆矩阵示例Fig.9 Examples of multi category confusion matrix

准确率指的是正确分类样本占总样本数的概率,可表示为式(3)所示:

精确率指的是模型正确预测为正类占全部预测为正类的比例,可表示为:

召回率指的是模型正确预测为正类占全部实际为正类的比例,可表示为式(5)所示:

特异性指的是模型正确识别真阴性的比例,可表示为式(6)所示:

2.5 结果分析

2.5.1 Cosine Warmup 训练效果

为验证Cosine Warmup 的效果,分别在关闭和开启Cosine Warmup 时观察ConvNeXt 模型训练过程中的损失函数下降曲线。实验的初始学习率设置为0.000 5,其损失值变化情况如图10、图11 所示。

图10 Cosine Warmup 对损失值的影响(无预训练)Fig.10 Influence of Cosine Warmup on loss value(without pre-training)

图11 Cosine Warmup 对损失值的影响(有预训练)Fig.11 Influence of Cosine Warmup on loss value(with pre-training)

由图10、图11 可知,不使用Cosine Warmup 训练策略的ConvNeXt 模型损失值较大,而使用Cosine Warmup 训练策略的ConvNeXt 模型收敛效果较好,且收敛稳定后损失较低。因此本文选择在模型训练的过程中使用Cosine Warmup 策略。

2.5.2 消融实验

ConvNeXt 模块的结构如图12 所示,其中的Depthwise Convolution 用于模拟自注意力中的加权求和操作,而后两个1×1 Convolution 用于模拟Swin Transformer中的MLP模块。

图12 ConvNeXt 模型结构Fig.12 Structure of ConvNeXt model

为提升ConvNeXt 的性能,本实验在模型中加入SimAM 模块。为更好地提升分类准确率,将SimAM模块分别放在图13 所示的3 个位置进行实验,一个是在Depthwise Convolution 后插入,即图13 中的位置1;另一个是在第1 个1×1 Convolution 后插入,即图13 中的位置2;最 后1 个是在第2 个1×1 Convolution 后插入,即图13 中的位置3。

图13 不同插入位置的SimAM 模块Fig.13 SimAM modules with different insertion positions

在相同参数设置的情况下,本实验对SimAM 模块在ConvNeXt 模型中的位置进行调整,得到的测试结果如表1 所示,表中加粗数字表示该组数据最大值。

表1 不同SimAM 插入位置的ConvNeXt模型的性能对比Table 1 Performance comparison of ConvNeXt models with different insertion positions of SimAM %

由表1 可知,在位置1,即在Depthwise Convolution后面插入SimAM 模块,可得到更高的准确率。对此,ConvNeXt 的网络结构充分借鉴Swin Transformer的结构设计,在ConvNeXt 模型中,人工智能实验室的研究人员在参考ResNeXt 与自注意力机制后,使用Depthwise Convolution。但是在Depthwise Convolution中,由于每个卷积核只对单个通道进行卷积操作,因此各个通道之间的信息并没有得到交流,致使在后续信息的流动中损失一些通道之间的信息,最终导致网络性能下降。而SimAM 模块能更好地挖掘重要神经元,从而提升Depthwise Convolution 的性能。

同理,为更好地利用SE 模块,本实验将SE 模块分别放在图14 所示的3 个位置进行实验。得到的测试结果如表2 所示,表中加粗数字表示该组数据最大值。

表2 不同SE 模块插入位置的ConvNeXt 模型性能对比Table 2 Performance comparison of ConvNeXt models with different insertion positions of SE module %

图14 不同插入位置的SE 模块Fig.14 SE modules with different insertion positions

由表2可知,在位置3,即在第2 个1×1 Convolution 后面插入SE 模块,可得到相对较高的准确率。对此,本实验认为原因是在ConvNeXt 模型中存在着一个Layer Scale 操作[29]。Layer Scale 操作是让特征图乘上一个可学习的参数,最终实现特征图通道的缩放。由于SE 模块也是在通道方向上进行操作,于是将SE 模块插入在Layer Scale 操作前,能够提升网络的性能。

为研究各项改进点对网络分类准确率的影响,本文开展消融实验。在消融实验中,主要以测试集准确率为指标,消融实验包括加入SimAM 模块、引入SE 模块。最终的结果如表3、表4 所示,表3 括号中的数据表示该模型与基线模型(未引入SimAM 模块和SE 模块的模型)的差值,加粗数字表示该组数据最大值。其中,同时加入SimAM 模块和SE 模块后的ConvNeXt 模型如图15 所示。

表3 消融实验结果Table 3 Ablation experimental result %

表4 SE-SimAM-ConvNeXt 模型的分类结果Table 4 Classification results of SE-SimAMConvNeXt model %

图15 同时加入SimAM 模块和SE 模块后的ConvNeXt 模型结构Fig.15 ConvNeXt model structure after adding both SimAM and SE modules

表3、表4 的数据表明,SimAM 模块与SE 模块对卷积神经网络的性能提升起积极作用。但SE-SimAM-ConvNeXt 网络对光化性角化病(Akiec)、皮肤纤维瘤(Df)、黑色素瘤(Mel)的分类结果较差,这是因为加入新模块后的ConvNeXt 模型需要更大的数据量去拟合,但这3 类的图像数量较少,导致该类的分类结果不佳。

2.5.3 不同模型的结果对比

在医学图像处理领域中,Swin Transformer 作为卷积神经网络的强力竞品,具有与CNN 不相上下的性能。但Vision Transformer 需要非常大的数据集才能超过卷积神经网络的性能,而医学图像数据集的数据量通 常比较小。MATSOUKAS等[30]分别在不同初始化策略下对Vision Transformer 与ResNet50进行医学图像测试,结果显示在随机初始化权重的情况下,Vision Transformer 的性能比ResNet50 更糟糕。本实验同样在不同初始化策略下对Swin Transformer 与ConvNeXt 模型进行测试,数据如表5所示,表中加粗数字表示该组数据最大值。

表5 不同初始化策略的Swin Transformer 与ConvNeXt 模型的性能对比Table 5 Performance comparison between Swin Transformer and ConvNeXt models with different initialization strategies %

表5 中的结果表明,对不使用预训练权重的Swin Transformer 与ConvNeXt 进行比较可知,ConvNeXt 的性能表现优于Swin Transformer。这可能是因为在数据量较少的情况下,卷积神经网络的归纳偏置会使其表现更好。

在医学图像领域中,通常是使用ImageNet 预训练权重来训练卷积神经网络。同样,本实验对使用ImageNet 预训练模型的 Swin Transformer 与ConvNeXt 进行比较。表5 中的结果表明,Swin Transformer 与ConvNeXt 均从预训练模型中获得收益,且Swin Transformer 的收益略高一些。

在数据量较少的情况下,Swin Transformer 的性能比ConvNeXt 更差,而预训练权重能够在一定程度上弥补Vision Transformer 在低数据状态下性能不足的现象。实验说明卷积神经网络可能更适合医学图像领域的数据。同时,SimAM 和SE 模块的加入使得ConvNeXt 比Swin Transformer 略有优势。

为验证新型卷积神经网络ConvNeXt 的有效性,本实验将所提模型与VGG16、VGG19、ResNeXt50、MobileNetV2 分类模型进行对比实验,得到的测试结果如表6所示,表中加粗数字表示该组数据最大值。

表6 各模型的分类结果评估Table 6 Evaluation of classification results of each model %

表6 中的结果表明,在皮肤镜图像分类中,相比传统的卷积神经网络模型,本实验所提模型达到较高的分类准确率,其分类性能为所有模型中最优。这是因为ConvNeXt 借鉴吸收Transformer 的一些先进技术,结合了两种模型的优点,进而提升了ConvNeXt 模型的性能。

在HAM10000 数据集下本文方法与其他方法的对比结果如表7 所示。

表7 与其他方法的分类结果对比Table 7 Comparison of classification results with other methods %

由表7 可知,在皮肤镜图像分类中,相较于其他模型,本文方法具有较高的准确率,且优于大部分对比方法。文献[6]提出一种轻量级的皮肤癌分类模型,但最终分类准确率较低。文献[7]以DenseNet201 为基础网络,并借助数据增强技术提高网络性能,在同一数据集下的准确率有所提升。文献[8]提出一个多模态深度学习信息融合框架,但融合后特征维数增加的问题仍需解决。文献[9]方法的网络层数较浅,难以提取图像的深层特征。文献[10]提出一种改进的MobileNet 模型进行分类,但准确率有待提升。文献[11]的网络通过输入分割的皮肤病变图像,提取出更显著和更有代表性的特征,提高皮肤病变诊断的分类性能。文献[12]提出集成的皮肤镜图像分类策略,得到较好的分类结果,但该方法较为复杂,实用性较差。综上所述,网络模型特征提取能力的强弱决定最终分类结果,而本文提出的SE-SimAM-ConvNeXt 模型具有较好的泛化能力与特征提取能力,在皮肤镜图像分类应用领域具有较好的应用前景。

3 结束语

本文提出一种基于SE-SimAM-ConvNeXt 卷积神经网络的皮肤镜图像分类方法,在保留ConvNeXt模型主要结构的同时,增加SimAM 和SE 的新模块,提升网络的性能。此外,通过使用Cosine Warmup 学习率策略加速模型的收敛。实验结果表明,本文方法具有分类能力较优、泛化能力较强的特点,对皮肤病的智能诊断有一定指导意义,可在一定程度上满足临床应用的需求。下一步将针对损失函数及数据增强等策略进行研究,以解决样本分布不均衡问题。

猜你喜欢
卷积准确率神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
神经网络抑制无线通信干扰探究
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用