基于集成学习与生成对抗网络的皮肤镜图像分类方法
2021-02-24姚鑫杰李维浩
龚 安, 姚鑫杰, 杜 波, 李维浩
(1.中国石油大学(华东)计算机科学与技术学院, 青岛 266580; 2.大理白族自治州人民医院, 大理 671000)
近年来,皮肤癌是常见的恶性肿瘤之一[1],其中恶性黑色素瘤是世界上速度增长最快和最致命的癌症之一,占皮肤癌死亡人数的75%[2-4]。早期诊断对于皮肤癌治疗非常重要,如发现较早,及时进行治疗,存活率可以达到96%[5]。为了协助医生进行诊断,临床上引入皮肤镜[6]来改善诊断效果,但皮肤镜图像本身的复杂性如类内差异大、类间相似性高和皮损边界模糊等问题给检测提出了巨大的挑战。此外,由于医生技术水平、临床治疗经验的不同,使得人类的主观判断能力有一定的局限性。因此,医生借助计算机视觉等图像处理技术对患者进行诊治已经逐渐成为医学领域发展的一个重要研究方向。
有关自动分类色素性皮肤病变图像的研究早在1987年就已经出现在文献[7]中。早期的研究主要通过人工直接提取特征,将这些底层特征融合,从而提高分类的准确率[4, 8-9]。Kusumoputro等[10]从皮肤镜图像中提取形状和颜色特征,利用人工神经网络对恶性黑色素瘤进行分类。由于黑色素瘤与非黑色素瘤之间的类内差异大和类间差异小,所以大多时候人工提取特征的效果并不理想。此外,这些基于人工提取特征的方法大多数操作较为复杂,导致临床实践中出现适用性不高、泛化能力不足等问题[11]。随着技术的发展,以卷积神经网络为代表的深度学习技术在图像分析领域取得了不错的效果。与依赖人工提取特征的方法不同,卷积神经网络等深度学习技术具有显著的优势。卷积神经网络的主要优点是通过数据集自动地学习相应检测或者分类任务所需的特征表达,并且在诸多应用中都有不错的表现。Yu等[2]采用了一个深层残差网络来区分黑色素瘤和非黑色素瘤。Deng等[12]提出了一种双分支卷积神经网络来提取全局和局部特征。董青青等[13]在迁移学习的基础上增加了CIFAR-10的卷积层和池化层。李航等[14]使用残差神经网络提取皮肤病变特征,利用支持向量机对黑色素瘤进行分类。此外,为了缓解医学数据集较少且分布不均的问题,生成对抗网络[15-17]也逐渐应用到医学领域中。Burlina等[18]使用生成对抗网络生成视网膜疾病的眼底图像,并将深度学习用于眼科的鉴别任务。然而,生成对抗网络在皮肤镜图像上的应用较少。虽然在计算机辅助医生诊断皮肤病相关方面做了一些研究,但是准确率、敏感度和特异度等仍有很大的提升空间。
现使用生成对抗网络和旋转图像进行数据增强,基于集成学习的基础上提出了一种集成投票块的皮肤镜图像分类方法。
1 数据集准备
1.1 构建数据集
使用的数据集来源于国际皮肤影像协会(the international skin imaging collaboration,ISIC) 2019[19-20],共计25 331张皮肤镜图像,共计8类,分别为光性角化病、基底细胞癌、良性角化病、皮肤纤维瘤、黑色素瘤、黑素细胞痣、血管肉瘤、鳞状细胞癌,如表1所示。
表1 皮肤镜图像数据集Table 1 Dermoscopy image data set
1.2 数据预处理
实验的数据集按照7∶2∶1的比例随机划分为训练集、验证集、测试集。为了让卷积神经网络学到更加真实一致的特征,在深度学习时一般需要对图像进行预处理裁剪,但是大部分的裁剪会导致皮肤镜图像损伤变形,而形状轮廓信息是判别皮肤细胞病变类型的重要依据。不同大小的图像可以得到不同的特征提取效果,相对应的计算成本也会不同。实验综合考虑计算成本与图像信息,将图像大小统一为672×672像素。
为了减小医学图像由于光线不均匀造成的干扰,本研究将皮肤镜图像进行归一化处理。常用的图像归一化方法是通过将图像像素值减去在整个数据集上计算出的平均像素值。但是,数据集中皮肤镜图像的光照、肤色和视角差异很大,减去统一的平均值并不能很好地标准化个体图像的光照。针对上述问题,本实验通过将图像减去在单个图像上计算出的通道平均强度值来对每个皮肤镜图像进行归一化。通过给定一张皮肤镜图像X,计算归一化图像Xnorm,可表示为
式(1)中:u(XR)、u(XG)、u(XB)分别为返回3个颜色通道的平均像素值。
1.3 数据增强
卷积神经网络虽然有很强的特征表达能力,但是需要大量的数据集进行训练,大部分医学图像数据集较少且分布不均,会降低卷积神经网络的训练效果,容易导致过拟合。为了缓解上述问题,采用生成对抗网络和旋转图像进行数据增强。通过将训练集的皮肤镜图像作为生成对抗网络的输入进行训练,将生成效果更接近真实皮肤镜图像的数据加入到训练集中。此外,还将训练集的图像进行旋转,进而增强数据集,如图1所示。
图1 数据增强图像Fig.1 Data enhanced images
2 集成投票块构建
2.1 迁移学习和集成学习
迁移学习是把已训练好的模型参数迁移到新的模型上,更好地帮助新模型训练,从而加快并优化模型的学习效率。通常来说,迁移学习的策略包括微调和冻结训练两种。微调指的是使用预训练网络在目标数据集上训练所有层。冻结训练指的是仅冻结某几层,训练其他层。本实验采用迁移学习的方法,使用多个在大型自然图像数据集ImageNet上预训练的卷积神经网络模型,对其进行微调,从而提取皮肤病变的特征,如图2所示。
图2 微调卷积神经网络Fig.2 Fine-tuning the convolutional neural network
集成学习是通过组合多个模型,从而得到一个更好更全面的模型。总体来说,集成的泛化能力优于单个学习器的泛化能力。因此,通过集成多个卷积神经网络,从而提高模型的泛化能力和准确率,集成学习流程图如图3所示。
图3 集成学习流程图Fig.3 Flow chart of ensemble learning
2.2 加权交叉熵
针对医学图像数据集分布不均的问题,通过在交叉熵中设置权重系数w,让大类样本乘以较小的权重,小类样本乘以较大的权重,从而缓解数据集中存在分布不均的问题。加权交叉熵更清晰地描述了模型与理想模型的距离,加权交叉熵可表示为
2.3 构建集成投票块
构建集成投票块需要多个卷积神经网络模型,不同的卷积神经网络模型在不同的数据集上表现不同。集成模型中选取的卷积神经网络模型一定程度上决定了整体的模型效果。因此,从经过训练的多个卷积神经网络模型中选取分类效果较好的卷积神经网络模型构建投票块,集成投票块分类模型流程图如图4所示。
图4 集成投票块分类模型流程图Fig.4 Flow chart of integrated voting block classification model
每个投票块中的卷积神经网络针对输入的皮肤镜图像进行分类投票,选取投票结果最多的类别作为该投票块的输出。若投票结果最大值所对应的类别不唯一,则从中选取置信度较高的一个类别作为该投票块的输出。接着,将多个构建好的投票块组成集成块。每个集成块针对其包含的投票块输出进行统计,将统计结果最大值对应的类别作为该集成块的输出。若统计结果最大值所对应的类别不唯一,则从中选取置信度较高的一个类别作为该集成块的输出。最后,统计多个集成块的输出结果,将统计结果最大值对应的类别作为该模型的输出。若统计结果最大值所对应的类别不唯一,则从中选取置信度较高的一个类别作为该模型的输出。
3 实验结果与分析
3.1 实验平台
实验的CPU为Intel(R) Xeon(R) Silver 4110 CPU @ 2.10 GHz,GPU为NVIDIA Tesla P100,内存为16 GB,使用PyTorch深度学习框架进行卷积神经网络模型训练。数据集基于ISIC 2019皮肤镜图像,训练集、验证集、测试集按照7∶2∶1的比例进行划分。
3.2 评价标准
为了全面衡量模型的分类性能,采用准确率Acc(accuracy)、敏感度Se(sensitivity)、特异度Sp(specificity)几项指标作为评价标准。准确率即正确分类的样本占所有样本的比率,可以衡量分类器对整体样本的判断能力。在医学诊断中,敏感度和特异度都是十分重要的指标。敏感度又称真阳率或者召回率(recall),越高,漏诊概率越低。特异度又称真阴率,越高,确诊概率越高。以上评价标准形式化定义如下:
式中:Ntp表示真阳性(true positive)图像的数目,真阳性说明该图像在预测分类结果和标注数据(ground-truth)中都属于可疑皮损组织;Nfp表示假阳性(false positive)图像的数目,假阳性说明该图像在标注数据中为可疑皮损组织,但是在预测分类结果中为正常皮肤组织;Ntn表示真阴性(true negative)图像的数目,真阴性说明该图像在标注数据中为正常皮肤组织,而对其预测结果也属于正常皮肤组织;Nfn(false negative)表示假阴性图像的个数,假阴性表示该图像在标注数据为正常皮肤组织,但是在预测分类结果中为可疑皮损组织。
3.3 迁移学习效果对比分析
实验采用迁移学习的方法,减少了训练卷积神经网络模型所需的训练数据、计算成本等。实验对预训练模型和原始模型的准确率和交叉熵损失进行比较,如图5、图6所示。
图5 准确率比较Fig.5 Comparison of the accuracy
图6 交叉熵误差比较Fig.6 Comparison of the cross entropy loss
通过对比DenseNet201预训练前后的准确率和交叉熵损失发现,经过预训练的DenseNet201在准确率曲线上有更高的起点,能够更快地达到较高的准确率。在交叉熵误差方面,经过预训练的DenseNet201能够更快、更稳定地进行收敛。
3.4 分类效果对比分析
实验使用3个集成块,每个集成块里包含3个投票块,每个投票块包含3个卷积神经网络。如表2所示,训练了23个卷积神经网络模型,从中剔除分类效果较差的SqueezeNet1_1和DPN131,剩下的21个卷积神经网络模型用于集成投票块构建。实验将23个卷积神经网络模型和本文方法进行对比分析,分类效果如表2所示。
表2 分类效果对比
AlexNet、BN-Inception、Caffe-ResNet101、DenseNet169、DenseNet201、FbResNet152、InceptionResNetV2用于第1个集成块。综合考虑分类效果,选出较为突出的InceptionResNetV2使用3次,分别放入3个投票块,再将剩余的6个卷积神经网络模型依次放入3个投票块中。InceptionV4、NASNet-A_Large、NASNet-A_Mobile、PNASNet-5_Large、PolyNet、ResNet50、ResNet152用于第2个集成块,ResNeXt101_64x4d、SE_ResNet152、SE_ResNeXt101_32x4d、SENet154、VGG16BN、VGG19BN、Xception用于第3个集成块。在第2、3个集成块中,分别选出InceptionV4和Xception使用3次,其余操作同第1个集成块。根据表2所示,在单一的卷积神经网络模型中,Xception准确率最高,可达到0.917;DenseNet201敏感度最高,可达到0.520;BN-Inception特异度最高,可达到0.846。不同的卷积神经网络模型有不同的分类效果,单一的卷积神经网络模型很难在多个评价指标上有突出的表现。个体网络模型处理某个问题时很容易遇到模型泛化瓶颈,不能保证在解决多种问题时有出色的表现。通过集成投票块,以提升个体网络模型的泛化能力,并且集合各个模型的优点得到一个较优的解决方法。本文提出的方法在准确率、敏感度、特异度上分别能达到0.925、0.563、0.927,相比较优的个体网络模型分别提高了0.008、0.043、0.081。为了更全面、更直观地比较模型的性能,选取了DenseNet201、InceptionV4、VGG16BN与本文方法进行接受者操作特性(receiver operating characteristic,ROC)曲线比较,如图7所示。
图7 ROC曲线比较Fig.7 Comparison of the ROC curve
通过图7可以看出,本文方法较优于选取的个体卷积神经网络。ROC曲线在数据集分布不均的情况下能够更加稳健和全面地评价模型。
4 结论
(1)基于集成学习提出了一种集成投票块的皮肤镜图像分类方法。通过生成对抗网络和旋转图像进行数据增强,进而结合迁移学习更好的训练卷积神经网络模型。
(2)针对数据分布不均的问题,采用加权交叉熵进行处理。实验结果表明,个体卷积神经网络模型在解决问题时容易遇到模型泛化瓶颈,不能保证在解决多种问题时有出色的表现。
(3)本文方法相对个体卷积神经网络模型在各个评价指标上均有提升,在一定程度上能帮助皮肤科医生进行诊断和治疗。未来科研工作中,还需要更多的结合皮肤领域的专业知识及患者信息,从而更好地实现计算机辅助诊断治疗。