本项目通过设计一个基于深度学习的图像分类模型,旨在帮助医学界精准识别猴痘(Monkeypox)病例。我们采用了DenseNet架构,并结合SE(Squeeze-and-Excitation)通道注意力机制,以提高模型在识别猴痘皮肤病变方面的准确性和鲁棒性。这个模型的训练与应用,不仅能提升诊断效率,还能为公共卫生防控提供智能支持。
实际应用与智能预测:经过训练的模型能够实时预测单张图像的分类结果。对于医务人员来说,借助这种智能工具,他们可以更早发现猴痘病例,提前采取防控措施,减少疫情蔓延的风险。
这一技术不仅能在猴痘等传染性疾病的早期诊断中发挥重要作用,还能够应用于其他皮肤病或传染病的图像识别任务。通过将深度学习与医学影像分析相结合,模型为疾病的快速筛查、疫情监控和公共卫生防控提供了强有力的技术支持。
本文所涉及的所有资源的获取方式:这里
SE-Net 是 ImageNet 2017(ImageNet 收官赛)的冠军模型,是由WMW团队发布。具有复杂度低,参数少和计算量小的优点。且SENet 思路很简单,很容易扩展到已有网络结构如 Inception 和 ResNet 中。 已经有很多工作在空间维度上来提升网络的性能,如 Inception 等,而 SENet 将关注点放在了特征通道之间的关系上。其具体策略为:通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征,这又叫做“特征重标定”策略。具体的 SE 模块如下图所示:
给定一个输入 x,其特征通道数为 c1通过一系列卷积等一般变换 Ftr 后得到一个特征通道数为 c2的特征。与传统的卷积神经网络不同,我们需要通过下面三个操作来重标定前面得到的特征。
首先是 Squeeze 操作,我们顺着空间维度来进行特征压缩,将一个通道中整个空间特征编码为一个全局特征,这个实数某种程度上具有全局的感受野,并且输出的通道数和输入的特征通道数相等,例如将形状为 (1, 32, 32, 10) 的 feature map 压缩成 (1, 1, 1, 10)。此操作通常采用采用 global average pooling (全局平均池化)来实现。
得到了全局描述特征后,我们进行 Excitation 操作来抓取特征通道之间的关系,它是一个类似于循环神经网络中门的机制:
这里采用包含两个全连接层的 bottleneck 结构,即中间小两头大的结构:其中第一个全连接层起到降维的作用,并通过 ReLU 激活,第二个全连接层用来将其恢复至原始的维度。进行 Excitation 操作的最终目的是为每个特征通道生成权重,即学习到的各个通道的激活值(sigmoid 激活,值在 0~1 之间)。
最后是一个 Scale 的操作,我们将 Excitation 的输出的权重看做是经过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定,从而使得模型对各个通道的特征更有辨别能力,这类似于attention机制。
SE模块的灵活性在于它可以直接应用现有的网络结构中。以 Inception 和 ResNet 为例,我们只需要在 Inception 模块或 Residual 模块后添加一个 SE 模块即可。具体如下图所示:
上图分别是将 SE 模块嵌入到 Inception 结构与 ResNet 中的示例,方框旁边的维度信息代表该层的输出,c表示 Excitation 操作中的降维系数。
SE 模块很容易嵌入到其它网络中,为了验证 SE 模块的作用,在其它流行网络如 ResNet 和 Inception 中引入 SE 模块,测试其在 ImageNet 上的效果,如下表所示:
首先看一下网络的深度对 SE 的影响。上表分别展示了 ResNet-50、ResNet-101、ResNet-152 和嵌入 SE 模型的结果。第一栏 Original 是原作者实现的结果,为了进行公平的比较,重新进行了实验得到 Our re-implementation 的结果。最后一栏 SE-module 是指嵌入了 SE 模块的结果,它的训练参数和第二栏 Our re-implementation 一致。括号中的红色数值是指相对于 Our re-implementation 的精度提升的幅值。
从上表可以看出,SE-ResNets 在各种深度上都远远超过了其对应的没有SE的结构版本的精度,这说明无论网络的深度如何,SE模块都能够给网络带来性能上的增益。值得一提的是,SE-ResNet-50 可以达到和ResNet-101 一样的精度;更甚,SE-ResNet-101 远远地超过了更深的ResNet-152。
上图展示了ResNet-50 和 ResNet-152 以及它们对应的嵌入SE模块的网络在ImageNet上的训练过程,可以明显地看出加入了SE模块的网络收敛到更低的错误率上。
在本次实验中,我们使用了基于DenseNet和SE通道注意力机制的深度学习模型进行猴痘图像分类任务。模型的设计和训练旨在提升猴痘图像的分类准确性,为医疗图像分析提供更高效的自动化诊断工具。以下是模型在训练集和测试集上的表现结果,以及不同阶段的性能评估。
训练过程中,我们对每个epoch的训练准确率和训练损失进行了记录。随着训练的进行,模型的训练准确率逐渐上升,而训练损失则逐渐下降,表明模型在逐步学习到有效的特征表示。
在每个训练周期结束时,我们通过在测试集上的评估来监控模型的泛化能力。测试集结果用于验证模型是否能够有效地从未见过的数据中进行准确的预测。
为了确保训练的有效性,我们使用了Cosine Annealing学习率调度策略。在训练过程中,学习率逐渐从较高值下降,避免了过拟合问题,并有助于模型在训练后期更稳定地收敛。
通过对训练和测试结果的比较,我们能够确定模型的最佳性能时刻,即测试集上的最佳准确率。这个最佳模型被保存下来,并在后续进行预测任务。
通过绘制训练和测试集的准确率、损失曲线,我们能够直观地看到模型的学习进度。以下是训练过程中的损失和准确率变化趋势:
在训练完成后,我们也进行了一些单图像的预测,验证模型在实际应用中的准确性。模型能够成功地对单张猴痘图像进行分类,准确识别出猴痘病变的特征,给出对应的类别标签。
通过本次实验的结果,我们可以看到,基于DenseNet和SE通道注意力机制的模型不仅在训练过程中能够稳定优化,且在测试集上的表现也非常优秀。这使得该模型具备了较强的实际应用价值,能够在猴痘等皮肤病的早期筛查中提供辅助诊断支持,帮助医生更早地发现潜在病例,及时采取措施进行防控。
总的来说,模型在训练和测试中的优异表现验证了其在猴痘图像分类中的有效性,为医疗图像分析领域提供了一个高效且可靠的解决方案。
计算资源:T4 GPU Cuda版本:11.3.1 语言环境:Python 3.7 开发工具:Model Whale 深度学习环境:PyTorch 1.10.2 Tensorflow2.8.0