基于Inception深度残差网络的皮肤黑色素癌图像分类算法①
2021-08-02张荣梅刘院英
张荣梅,张 琦,刘院英
(河北经贸大学 信息技术学院,石家庄 050061)
皮肤黑色素癌[1]是由一种黑素细胞引起的恶性皮肤癌.传统的基于机器学习的皮肤黑色素癌图像识别方法[2–4]主要包括两部分:图像特征提取和图像识别.由于皮肤黑色素癌图像的特殊性,皮肤黑色素癌与非黑色素癌之间的类内差异大,类间差异小.利用传统的人工特征提取方法无法精确地提取出皮肤黑色素癌图像的特征,诊断准确率偏低.近几年,卷积神经网络在图像识别技术中表现良好,基于卷积神经网络(Convolutional Neural Network,CNN)的皮肤黑色素癌图像识别技术可以通过网络结构自动学习提取训练集图像中的特征并用于分类,分类效果显著.
2016年,Kawahara 等人[5]利用CNN 网络识别皮肤癌图像,并利用Dermofit 皮肤癌数据集训练,得到的诊断准确率为78.1%.2018年,Dorj 等人[6]提出利用AlexNet 网络提取皮肤癌图像的特征,通过收集3753幅皮肤癌图像训练,得到的分类准确率为95.1%.2019年,管秋等人[7]利用深度残差网络识别皮肤黑色素癌,并通过ISIC2016 数据集(2016年国际皮肤影像协会ISIC皮肤癌数据集)训练,识别准确率为86.8%.胡海根等人[8]通过掩盖技术对ISIC2017 数据集(2017年国际皮肤影像协会ISIC 皮肤癌数据集)进行随机掩盖与非随机掩盖增强,形成两个不同的数据集,利用深度残差网络分别进行训练,同时对两个训练模型集成学习,得到的识别准确率为86.7%.
基于CNN 网络的图像识别技术需要大量的训练数据集为基础,但是在医疗影像识别领域,医疗数据的获取途径有限,无法得到大规模的医疗数据.数据量过小就容易出现过拟合的问题.迁移学习可以有效地解决数据集数量小的问题,它首先通过依靠其他图像数据集训练获取网络模型参数,再迁移应用到目标网络模型中,从而提高目标网络的识别准确率.因此,很多学者开始使用迁移学习技术识别皮肤黑色素癌图像.2017年,Esteva 等人[9]收集整理了12 万张由专业的皮肤癌医生标注的皮肤癌图像,利用迁移学习在InceptionV3结构中训练,达到了91%的准确率.Bi 等人[10]将ISIC 2017 数据集作为训练数据,使用ResNet 网络进行迁移训练,识别的准确率达到了91.5%.2018年,董青青等人[11]利用ISIC 2016 数据集在改进的卷积神经网络中训练,利用CNN 网络做迁移训练,准确率达到了91.92%.2019年,柏朋成[12]利用深度残差网络识别皮肤黑色素癌,并利用ISIC 2017 数据集迁移训练,识别准确率为85.3%.
基于迁移学习的皮肤癌影像识别技术都是依靠其他领域的图像数据(如ImageNet 数据集[13]) 训练获取特征,这种方法只能提取皮肤黑色素癌图像的高层次卷积层的特征,即全局特征,并不能充分挖掘图像的局部特征.而在皮肤黑色素癌影像中,局部纹理结构信息是区分黑色素瘤的重要标志.深度残差网络(deep Residual Network,ResNet)可以训练学习皮肤黑色素癌图像的局部特征和全局特征,同时解决训练过程中过拟合的问题,在皮肤黑色素癌识别中的效果优良.
虽然ResNet 网络解决了深层次网络中的过拟合问题,但是该网络仍然存在训练参数多、训练时间长的问题.为了提高网络的训练效率,提高皮肤黑色素癌的识别准确率,本文提出了IDRN 算法,通过将Inception模块与残差模块结合,利用Inception 模型代替传统ResNet 网络中的卷积层、池化层,并利用SeLU 函数作为网络的激活函数对皮肤黑色素癌图像进行识别诊断.最后利用旋转、翻转操作对ISIC2017 皮肤癌数据集进行数据增强后,将增强后的数据集在IDRN 模型中进行训练.实验结果表明,本文提出的IDRN 算法在皮肤黑色素癌分类中准确率达到了94.32%,远远超过了其他网络模型.
1 深度残差网络与Inception 结构
1.1 深度残差网络
在CNN 模型中,通过增加网络层数,可以整合低、中、高不同层次的图像特征,包含了局部图像到全局图像等不同的特征.因此在一定程度下,卷积神经网络的网络层数越大,提取的图像特征就越丰富,识别准确率越高.但是这样就会出现梯度消失和网络退化的问题.尽管正则化等方法已经优化了梯度消失问题,但是当网络层数绝对增加时,梯度消失仍然存在,模型会产生退化现象.2016年,He 等[14]提出了ResNet 网络结构,解决了深度网络存在的问题.
ResNet 网络由多组残差网络结构组成,每个残差网络结构包含了若干个残差学习模块(又称为残差块).一个残差学习结构是通过多个卷积层以及快捷连接(shortcut connection)构成,图1为一个残差学习结构.
根据图1可知,在残差学习结构中输入为X,输出为H(X),H(X)主要由残差映射函数F(X)和快捷连接X两部分组成,即H(X)=F(X)+X.其中,F(X)是X在主路径上的输出.而快捷连接可以实现残差学习,可以将某一层神经元的输出直接跨越多层网络直接传送给后面的某一层网络中.恒等映射可以解决多层网络中出现的网络退化的问题.具体原理是残差网络通过训练残差映射函数F(X)中的参数训练学习,当模型判断当前残差块为冗余层时,就会将F(X)的参数训练为0,使结构的输出为输入X,保证经过该恒等层的输入X和输出H(X)完全相同,从而实现恒等映射.
图1 残差学习结构
在ResNet 网络中,由于网络模型参数量较大,通常会先利用1×1的卷积核将X降维.同时,考虑到残差层F(X)与输入数据X的维度是否一致,何恺明教授提出了恒等映射残差模块以及卷积残差模块(如图2和图3所示).当F(X)与X的维度相同时,使用恒等映射残差模块实现;计算公式为:
图2 恒等映射残差模块
图3 卷积残差模块
其中,X为残差块的输入,H(X)为残差块的输出,F(X)为残差映射函数,ReLU()为激活函数.
而当F(X)与X的维度不同时,使用卷积残差模块,利用 φ (X)线性投影将输入数据X进行维度变化,再与F(X)相加.计算公式为:
其中,φ (X)为线性投影.
深度残差网络ResNet50 由恒等映射残差模块以及卷积残差模块组成,图4为ResNet50的网络结构.其中Conv_block 模块为卷积残差模块,idebtity_block模块为恒等映射残差模块.ResNet50 网络包含50 层网络结构,分别为1 层卷积层、48 层残差结构和1 层全连接层.
图4 ResNet50 网络结构
在ResNet50 网络中,输入图像大小为224×224×3,经过7×7 卷积层以及池化层后变为56×56×64 大小的特征向量,然后经过3个block1 残差模块后,转化为56×56×256 大小;再经过4个block2 残差模块,转化为28×28×512 大小;其次通过6个block3 模块,转化为14×14×1024 大小;再通过3个block4 残差模块,转化为7×7×2048 大小;最后通过平均池化以及全连接层将特征图像拉伸为2048个神经元后利用Softmax 分类输出.
1.2 Inception 结构
2014年,Szegedy 等[15]提出GoogLeNet 模型,第一次提出Inception 结构.由于皮肤黑色素癌数据集的数量有限,采用传统的ResNet 网络训练参数过多,容易出现过拟合的情况.利用Inception 结构提取图像特征可以在横向增加网络结构,实现多尺度提取输入图像特征向量,实现了在增加网络神经元个数并大大地减少网络参数数量.
传统的Inception 模块将1×1、3×3、以及5×5的卷积层与池化层并行连接,并将结果连接输出.Inception 模块主要通过1×1的卷积核来降低图像的维度,达到减少网络参数的效果.在后续Inception V2 模型中,为了进一步地减少网络的参数,Google 团队提出将5×5的卷积核用两个3×3的卷积核代替,更小的卷积核来减少模型的参数,实现了卷积核感受野不变的情况下,降低了模型的参数数量,具体网络如图5所示.之后,Inception V3 模型提出了将7×7的卷积核分解为1×7和7×1的两个一维卷积,进一步减少了模型参数量,增加了网络的深度.
图5 Inception V2 模块
2 基于Inception 深度残差网络皮肤黑色素癌分类识别算法
2.1 基于深度残差网络的改进
深度残差网络模型解决了极深卷积神经网络中存在的梯度消失和网络退化的问题,但是该网络中的参数数量过大,训练时间长.针对以上的问题,本文提出了IDRN 算法,将Inception 结构引入到传统的ResNet网络中,代替原始网络中的卷积层和池化层,从而减少算法的时间复杂度;同时改进网络的激活函数,提高了算法对皮肤黑色素癌图像的识别准确率.
2.1.1 引入Inception 模块
Inception 模块实现了卷积神经网络横向维度的扩展,从广度出发,提高网络模型的准确率,极大地减少了网络模型的参数数量.本文利用改进后的Inception V2 模块代替传统ResNet50 网络中的第1 层卷积层与第2 层池化层,通过对输入图像并行地执行多个卷积操作,最后将结果拼接为一个特征向量输入到残差模块中.利用Inception 模型代替传统ResNet50 网络中的卷积池化层,可以实现通过多种不同大小的卷积核多尺度提取皮肤黑色素癌图像的特征,丰富图像特征信息.同时,改进后的Inception 结构也大大地减少了ResNet50 网络的参数数量,结构如图6所示.
图6中第1 列包括3个3×3的卷积核,实现了7×7 卷积核卷积效果,第2 列包括2个3×3的卷积核,实现了5×5的卷积核卷积的效果,第3 列为池化层.经过Inception 结构实现了将输入图像分别通过不同大小的来提取不同尺度的信息,丰富了图像的特征信息,提高图像识别的准确率.同时,传统的ResNet50 网络为7×7的卷积层和池化层,在这一层中训练参数为9408个.而本文改进后的Inception 结构将参数数量减少为1296个,提高了模型的训练速度.
图6 改进后的Inception 结构
2.1.2 改用SeLU 激活函数
卷积神经网络中,卷积池化操作为线性操作,通常还需要通过一层激活函数变化来提高模型的非线性.传统的激活函数包括Sigmod 函数、tanh 函数、ReLU函数等,而ResNet 使用ReLU 激活函数,用来解决梯度消失的问题.但是ReLU 函数处于负半轴时梯度为0,会出现神经元死亡的情况,影响之后的计算;其次,ReLU函数具有稀疏处理作用,容易丢失图像的有效特征;并且ReLU 函数的正半轴部分的导数恒为1,当梯度极小时依然存在梯度消失.
针对ReLU 函数的缺点,IDRN 算法提出使用SeLU函数[16]作为激活函数,SeLU 函数如式(3)所示.
其中,λ>1.由式(3)可知,SeLU 激活函数的正半轴导数为λ,这样就可以进一步减少梯度消失;同时,在函数的负半轴不为零,防止了神经元死亡情况的出现,能够全面地学习图像特征,改进后的残差学习模块如图7所示.
图7 改进后的残差学习模块
2.2 Inception 深度残差网络结构
本文在ResNet50 网络的基础上,利用Inception结构代替了ResNet50 网络初始阶段的卷积池化层,同时利用SeLU 函数作为网络中的激活函数,并修改了输出节点的个数.改进后的IDRN 模型主要包括改进后的Inception 结构和残差网络.其中,Inception 结构是由3 条卷积池化网络并行连接而成(具体结构见图6).残差网络则是IDRN 网络的主要部分,它由4个残差网络结构组成,每个残差结构均由若干个残差块构成.最后通过均值池化层以及Softmax 线性分类器对皮肤黑色素癌进行分类,得到输出结果.整体网络结构包含54 层,分别为4 层Inception 结构,以及由残差块组成的48 层残差结构和平均池化层、全连接层,IDRN 模型与ResNet50 模型结构对比.
通过表1模型结构可以计算,对于一张像素为224×224 大小的RGB 皮肤黑色素癌图像作为模型的输入图像,采用本文改进的Inception 深度残差网络结构的训练参数为1.79×107个.若采用传统的ResNet50网络模型,则训练参数高达2.55×107个.从理论上分析,本文提出的IDRN 算法相较于ResNet50 网络减少7.6×106个训练参数,可以解决深度残差网络训练参数数量过多的问题,可以有效地降低模型的训练时间和时间复杂度.
表1 IDRN 模型与ResNet50 模型结构对比
图8为IDRN 算法的网络结构图,输入的皮肤镜图像大小为224×224 像素,通道数为RGB 三通道.输入图像首先通过改进Inception 结构,经过不同大小的卷积核并行提取图像特征并进行连接,转换为56×56×64 大小的特征向量;然后经过3个ResNet_1 残差模块后,将图像的特征向量转化为56×56×256 大小;再经过4个ResNet_2 残差模块,将图像特征向量变化成28×28×512 大小;其次通过6个ResNet_3 模块,将特征向量转化为14×14×1024 大小;再通过3个ResNet_4 残差模块,将特征图像转化为7×7×2048 大小;最后通过平均池化以及全连接层将特征图像拉伸为2048个神经元后,通过Softmax 分类器将皮肤癌图像分为黑色素癌、黑色素痣以及脂溢性角化病3 类.
图8 IDRN 网络结构
3 实验
3.1 实验数据及数据增强
本文实验数据采用2017年国际皮肤影像协会提供的黑色素皮肤癌病变识别的皮肤镜数据集[17].该数据集包括恶性黑色素癌、黑色素痣以及脂溢性角化病3 类,其中包括2000 张训练集,600 张测试集,图像数据为JPG 格式.为了防止网络过拟合,通过图像旋转的方式对数据集进行数据增强,主要包括顺时针旋转90 度、180 度、270 度以及水平翻转4 种操作.经过数据增强后的ISIC2017 皮肤癌训练集有10000 张,测试集3000 张.同时,因为网络中存在全连接层,本文将皮肤癌数据集进行了预处理,将数据统一为224×224 像素大小的图像.
3.2 参数设置
本文实验在Windows10 64 位平台环境上运行,基本配置是Intel Core i5-4590 四核处理器,16 GB DDR3内存,NVIDIA GTX1050 Ti 独立显卡.同时使用Keras 开源框架验证IDRN 算法对皮肤黑色素癌图像的识别效果.
3.2.1 学习率
本文实验学习率的调整采用固定更新策略,通过保持实验环境、迭代次数、激活函数不变,分别运行学习率为1×10−2、1×10−3、1×10−4以及1×10−5时,IDRN 算法在皮肤癌数据集上的识别准确率,当网络模型的迭代次数为25 次,每次迭代的Batch-size为10 时,运行结果如图9所示.
通过图9可以得到,学习率为1×10−4时与学习率为1×10−5时相差不大,仅高于1%.但是相比于学习率为1×10−3时,增长了18%左右的准确率.同时,由于学习率越小,模型收敛的速度越慢,运行时间越长,因此本文采用学习率为1×10−4作为本文IDRN 算法的学习率.
图9 学习率对比实验
3.2.2 SeLU 激活函数
本文利用SeLU 激活函数代替传统ResNet 网络中的ReLU 激活函数.通过实验表明,在仅仅改变激活函数的情况下,IDRN 算法在ISIC2017 皮肤癌数据集上进行实验,当网络模型的迭代次数为10 次,每次迭代的Batch-size为10,学习率为1×10−4时,实验结果如表2所示.通过表2数据可以得知,采用SeLU 激活函数的模型训练准确率远远高于采用ReLU 激活函数的模型.
表2 激活函数对比实验
3.3 实验结果
在本文实验中,由于内存限制,每一个batch_size只能设置为10,因此本文实验是在学习率为1×10−4,迭代次数为25 次,batch_size为10,激活函数为SeLU 函数,输入图像尺寸为224×224 大小的情况下进行的.同时,为验证本文模型的有效性,将本文提出的IDRN 算法与几种不同深度的经典卷积神经网络模型在同一实验参数下进行对比实验.通过将AlexNet[18]、VGG16[19]、GoogLeNet 以及ResNet50 模型分别在ISIC2017 皮肤黑色素癌数据集中进行实验,实验结果如表3所示.
从表3中可以得到,本文提出的IDRN 算法模型在皮肤黑色素癌数据集中的表现最好,识别准确率达到了90%,相比于AlexNet、VGG16、GoogLeNet 以及ResNet50,本文提出的算法模型在准确率得到了提升.同时,对于网络的训练参数,IDRN 算法比ResNet50、
表3 实验对比结果
Alexnet 算法模型的训练参数少,VGG16 模型的训练参数最多,GoogLeNet 模型的训练参数最少;对于模型训练过程中平均每张图片的训练时间,IDRN 算法模型比ResNet50的训练时间短,AlexNet 模型的训练时间最小,VGG16 模型的训练时间最长.综合比较得知,本文提出的IDRN 算法的训练参数以及每张图像的平均训练时间都比ResNet50 模型得到了减少,同时对于皮肤癌图像的识别准确率得到了提高.
将测试集作为输入数据在训练好的IDRN 模型中进行预测与评估后,得到的评估结果如表4所示.
表4 IDRN 模型实验结果
通过表4可以得知,IDRN 算法在测试集中表现良好,证明本文提出的网络模型具有很好地泛化能力,对于皮肤黑色素癌识别诊断可以起到辅助诊断的效果.
4 结论
本文针对皮肤黑色素癌图像识别困难,利用深度残差网络可以有效地解决过拟合问题,提高识别准确率.但是针对传统的深度残差网络识别皮肤黑色素癌图像存在训练参数多、时间效率低等问题,本文提出了基于Inception 深度残差网络的IDRN 皮肤黑色素癌分类识别算法.通过理论分析深度残差网络结构,利用Inception 模型代替网络层中的卷积层和池化层,减少模型的训练参数数量.同时使用SeLU 函数作为网络的激活函数,提高算法的识别准确率.通过实验表明,本文提出的IDRN 算法比其他传统的卷积神经网络结构在ISIC2017 皮肤癌数据集中的表现要好,识别准确率提高为94.32%.在未来的研究中需要进一步优化网络结构,可以考虑对任意尺寸的输入图像进行识别,进一步提高实验准确率.
本文的IDRN 算法同样适用于其他领域的图像识别研究,对其他领域图像识别任务具有良好的泛化性能,有一定的研究意义.