基于改进阈值的VGG网络的新冠肺炎CT图像自动诊断算法
2022-07-01翁羽洁李忠贤姬宇程薄素玲梁莹
翁羽洁,李忠贤,姬宇程,薄素玲,梁莹
内蒙古医科大学计算机信息学院,内蒙古呼和浩特 010110
前言
新冠肺炎潜伏期长、传染率高且传播速度快[1-2]。核酸检测是新冠肺炎检测的主要手段,但依然有一定的局限性,而肺部CT 检查对病毒性肺炎具有较高的检出率及准确性,可作为新冠肺炎早期的重要检查手段[3-4]。
人工智能是研究可以模拟、延伸和扩展人的智能的一门科学[5-6]。人工智能与医学的结合,尤其与医学影像的结合是现阶段最具有发展前景的领域之一,其中自动诊断的发展尤其迅速[7-8]。目前,基于人工智能的自动诊断技术已经应用到很多医疗领域,例如乳腺癌、肺癌的自动诊断等,如果将人工智能技术应用于新冠肺炎的诊断中,可以帮助医生迅速鉴别病情,及时进行隔离和阻断,为阻止疫情的传播起到积极作用。
目前国内李欢等[9]、Liu 等[10]利用计算机辅助分析软件,研究了新冠肺炎的3 个进展阶段,而未对分析算法做进一步的研究。冯毅博等[11]对比VGG16、ResNet18等网络,提出一种更优的DWSDenseNET网络,此网络对均衡化后的肺部X 线图像进行训练,使得模型参数明显下降,但分类效果却更加精确。李文哲等[12]对比高原肺水肿和新冠肺炎的肺部CT 图像,找到两者在图像中的差别,并总结出两者在不同进展期的影像特征。国外Belfiore 等[13]通过研究证实了人工智能技术在新冠肺炎诊断中的必要性,但其未进行具体的人工智能诊断算法研究。Ozturk等[14]使用DarkNet 模型作为分类器,实现二分类(新冠肺炎和正常)和多分类(新冠肺炎、正常和肺炎)的准确诊断,且可提供云计算服务。
由于牛津大学“视觉几何实验室”(Visual Geometry Group)提出的VGG 网络结构简单,可提供更加丰富的图像特征,而且VGG网络有多个分支,由简到繁,可适用于不同种类的图像训练,因此本研究使用VGG对新冠肺炎的CT图像进行训练,并选取其中的3 个分支:VGG-11、VGG-13 和VGG-16 分别进行训练,比较其在诊断新冠肺炎方面的准确度、精确度等各项指标,选出最优的网络模型。在最优的网络模型的基础上,利用受试者工作特征曲线(Receiver Operating Characteristic Curve, ROC)对阈值进行优化,得出诊断新冠肺炎的最佳模型。
1 VGG网络结构
VGG 是牛津大学计算机视觉实验室参加2014年ImageNet Large Scale Visual Recognition Challenge(ILSVRC)比赛的网络结构,获了图像分类赛的第二名以及定位挑战赛的第一名[15]。VGG的特点是结构简洁,使用的是3*3 卷积核(conv3),并且使用连续多个卷积层来增大感受野,通道数更多,能够得到更加丰富的图像特征[16-17]。卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用,VGG网络算法流程图见图1。
图1 VGG网络算法流程图Figure 1 VGG network algorithm flowchart
1.1 卷积层
VGG 网络使用的是3×3 卷积核,使用小卷积层的问题是感受野会变小,VGG 通过连续使用多个卷积层的方式来增加感受野,例如VGG-13 每一层都包括2 个3*3 的卷积核,而VGG-16 的第3~5 层每一层都包括3 个3*3 的卷积核。VGG 网络中的通道数相对较多,更多的通道代表图像更加丰富的特征,VGG网络中第1 层的通道数量就达到64 个,并且逐层翻倍,最后一层达到了512 个,能够获取图像更多的特征[18]。另外,VGG 网络在图像的边缘填充1 个像素,这样卷积后保持图像的分辨率不变。
1.2 池化层
池化层是对数据进行降维,用于缓解卷积层对位置的过度敏感性。VGG 网络使用2*2 的小池化窗口,池化窗口从输入数组的最左上方开始,按从左往右、从上往下且步长为2 的顺序滑动,取2*2 窗口上的最大值作为降维后图像的值[19]。
1.3 全连接层
全连接层用于与最后的输出相连接,可以设计为一层或者多层。VGG 网络包括3 个全连接层,前两层是4 096 个通道,第3 层是输出层,输出1 000 个分类,根据最后分类数目的不同需要对全连接层进行修改[20]。
VGG 网络所有的结构都按照如上的结构设计,而VGG-11、VGG-13和VGG-16的不同在于卷积层数的不同,也就是深度的不同。VGG-11 有11 个加权层,其中包括8 个卷积层和3 个全连接层;VGG-13 有13 个加权层,其中包括10 个卷积层和3 个全连接层;VGG-16 包括了13 个卷积层和3 个全连接层,网络的深度逐渐加深,如表1所示。VGG 网络的优点很明显,但是也有不足,一个是网络架构权重数量比较大,很消耗磁盘空间,另一个是训练比较慢。
表1 VGG网络结构Table 1 VGG network structure
2 实验方案
本实验利用现有的VGG网络VGG-11、VGG-13和VGG-16对新冠肺炎患者的CT图像和正常肺部CT图像进行分类,并比较3种网络对图像分类的效果。
2.1 实验平台
本实验是基于Python和Tensorflow 框架实现的,采用显存为8 GB的NVIDIA GeForce GTX 1050 Ti和主频2.50 GHz 的Inter(R)Core(TM)i5-7300HQ CPU。
2.2 实验数据
本文所用数据源自Zhao 等[21]收集的数据集COVID-CT-Dataset: a CT scan dataset about COVID-19。数据集包括746 张肺部CT 图像,其中新冠肺炎CT图像349张,非新冠肺炎图像397张。本研究中使用分层抽样抽取了100 张图像作为测试数据;剩余646 张图像作为训练数据,并按照5:1 的比例继续划分训练集和验证集。训练参数中学习率为0.000 01,最大迭代次数为20,并对图像做均值预处理。数据集中样例图片见图2。
图2 数据集中肺部CT图像Figure 2 Lung CT image from data set
3 实验结果
本实验使用VGG 的3 个模型对数据进行训练,目的是比对这3 个模型在新冠肺炎自动诊断中的优劣,找出最佳的模型,本研究分别从训练集和测试集两个方面来进行比对。
3.1 训练集结果
训练中使用计算softmax交叉熵来得出分类的概率误差[22],该方法可以很好地避免梯度弥散,而且计算简单高效,主要包括以下两个步骤。
(1)对输出层做softmax,得出输出层属于其中某一类的概率,softmax公式如下:
其中,xi是全连接网络的第i类输出,xj是第j类输出。
(2)对上一步的输出与样本的真实标签做交叉熵,公式如下:
其中,yi是第一步的输出结果softmax(x)i。
在训练集上的实验结果如图3~图5所示,分别从训练集准确率、训练集损失值、验证集准确率和验证集损失值这4 个参数比较3 个模型。结果发现,这3个模型的训练集准确率最终都可以达到100%,但相比较而言,VGG-13 模型较早达到了较高的准确率且相对稳定,而VGG-16 在训练后期才达到较高的准确率,且不稳定。在验证集上,VGG-11 的表现较好,VGG-13 次之,而VGG-16 相对较差。在损失值的变化曲线中,3 个模型在开始阶段迅速下降,后期趋于稳定,其中VGG-11 的损失曲线相对比较理想,下降速度和稳定度都优于其他两个模型。
图3 VGG-11训练集和验证集的准确率和损失值Figure 3 Accuracy and loss of VGG-11 in training set and validation set
图4 VGG-13训练集和验证集的准确率和损失值Figure 4 Accuracy and loss of VGG-13 in training set and validation set
图5 VGG-16训练集和验证集的准确率和损失值Figure 5 Accuracy and loss of VGG-16 in training set and validation set
3.2 测试集结果
测试集数据为100 张图像,采用分层抽取的方法在总的数据集中抽取得到。将3 个训练好的模型分别在测试集上进行验证,并分别比对精确率、召回率和准确率,精确率、召回率和准确率分别通过混淆矩阵[23](表2)得出。
表2 混淆矩阵Table 2 Confusion matrix
精确率如式(3)所示:
召回率如式(4)所示:
准确率如式(5)所示:
通过表3可以发现,VGG-13 模型在测试集中的表现是最好的,精确率、召回率和准确率分别都是最高,而VGG-11模型次之,而VGG-16模型最差。
表3 测试集结果(%)Table 3 Performances of 3 models in test set(%)
4 模型改进
从上面的结论可以看出VGG-13 模型在本实验中的效果是最好的,不论是训练集还是测试集,但是在测试集验证的时候发现,许多分类错误的结果的分类概率值在0.5 附近,也就是用默认的0.5 阈值进行分类时很多图片都被分类错误,0.5 并不是最佳阈值。因此,对3 个模型分别画出其ROC 曲线[24],通过曲线可以看到,VGG-13 模型的ROC 曲线下的面积(Area Under Curve, AUC)最大为0.946 4,如图6所示。从而进一步证明在新冠肺炎的自动诊断中,VGG-13 模型的效果最好,而且通过分析ROC 曲线,越靠近左上角,实验的准确性就越高。最靠近左上角的ROC 曲线的点是最佳阈值,其假阳性和假阴性的总数最少。
图6 VGG-11、VGG-13、VGG-16的ROC曲线Figure 6 ROC curve of VGG-11,VGG-13,VGG-16
最佳阈值通过约登指数(Youden Index,YI)[25]进行选择,YI也称正确指数,是指召回率和特异度之和减去1:
其中,召回率见公式(4),特异度计算公式如下:
得出在VGG-13 中的最佳阈值为0.571,VGG-11的最佳阈值为0.447,VGG-16的最佳阈值为0.700,那么通过该阈值的设定可以将该疾病的准确率提高,如表4所示,VGG-11、VGG-13、VGG-16 的准确率分别提高到了86%、89%和85%。
表4 阈值修改后的测试集结果(%)Table 4 Test set results after threshold modification(%)
5 讨论
本研究发现在VGG 的3 个模型中,VGG-11 的模型复杂度最低,VGG-16 的模型复杂度最高,而VGG-13 的模型复杂度介于两者之间,但从新冠肺炎的诊断准确率上看,VGG-13 的效果最好,VGG-11 次之,而复杂度最高的VGG-16 的效果最差。因此,在训练的过程中,要根据实际情况选取合适的网络进行训练,并根据数据集的情况进行参数的调整,才能够得到较好的训练效果。
同时,本研究在VGG-13 模型的基础上,发现阈值的选取对结果的影响较大,对于默认的0.5 的阈值并不能进行很好的分类,因此通过ROC 曲线和YI 得出了最佳阈值为0.571,进一步提高了准确率。虽然本研究在准确度上还需要进一步的提高,但此模型结构简单,运算速度快,可快速对CT 图像进行分类,而且为后续的改进工作奠定了一定的基础。