蒋正锋,许 昕
1广西民族师范学院数理与电子信息工程学院,广西 崇左 532200;2广西南宁市悦美韩星医疗门诊部,广西 南宁530023
COVID-19是一种传染性极强的流行疾病[1-2],全球各国都采用防疫措施与大面积施打疫苗来控制疫情的蔓延[3],但传播性更强的变异病毒的出现加大了疫情控制的难度。国家卫健委发布最新版本的《新型冠状病毒感染的肺炎诊疗方案》[4],把COVID-19影像学特征的临床表现作为疑似病例诊断、临床分型的依据。核酸检测是快速发现COVID-19患者的一种方法,但检测结果成阳性[5]可能晚于肺部CT影像[6]的表现,也存在假阴性与漏检的情况,CT影像在COVID-19患者的确诊、隔离、疗效评价与预后各个方面具有重要意义。
临床医生通过阅读CT图像,根据其获取的信息对患者进行诊断,这种传统的人工诊断方式具有一定的局限性[7]。近年来深度学习技术以其特有的特征提取与识别能力,逐渐成为医学领域的研究热点之一,如胸片质控[8]、肺结节检测[9-11]、肺癌诊断[12-13]等诸多肺部疾病中逐渐得到临床认可,也促进了医学影像技术的发展。近期,阿里巴巴达摩医院医疗人工智能(AI)团队基于最新的诊疗方案[14-16],与其他机构合作,成功建立了基于AI的对患者肺部CT图像进行分析和解释的模型,准确率达到96%以上,为医生的诊断提供了依据;阿里达摩院与阿里云共同研发了根据患者多维信息来帮助医生制定治疗方案的辅助诊断系统;上海市公共卫生临床中心和依图医疗共同合作开发的业界首个COVID-19 智能辅助诊断系统[17],实现对肺部定量化分析;也有钟南山等专家联合开发了基于物联网的COVID-19 智能诊治辅助系统nCapp[18],对不同的患者制定不同的治疗方案;张康教授团队研发的融合深度学习、迁移学习和语义分割技术等多种技术的筛查、诊断与预测系统,它在20 s内完成检测和诊断过程,并且准确率达到90%以上。目前大型公司或国家级研究团队研发的COVID-19辅助诊断模型准确度都在90.00%以上[19-20],但诊断模型采用的技术或解决问题方案对外是封闭的,外界无法获悉诊断系统的相关技术,不能更进一步的研究与扩展。
本文主要研究深度学习技术构建小样本的COVID-19辅助诊断模型,所采用的技术或方案可进一步的研究与扩展,创新性地将迁移学习技术应用于基于CT影像的COVID-19辅助诊断模型,构建基于小样本训练的诊断模型的,缩短了模型的训练时间;同时,提出多参数如激活函数、损失函数、优化算法、学习率和样本批次大小逐步融合优化策略,从而有效提高模型诊断准确率。现报道如下。
为了更容易提取样本的相关信息,一般需对数据集进行预处理。数据预处理包括了归一化技术、非线性变换、特征提取、离散输入、目标编码、缺失数据的处理和数据集的划分等[20]。本文构建的COVID-19 影像学数据集预处理包括尺寸大小统一、像素值归一化、训练集和测试集的划分等,其中用于训练模型的样本占整个影像学数据集的80%,而测试集样本数量占整个影像学数据集的20%,用来评估预测模型的性能。COVID-19影像学数据集有412个样本为训练集,测试集样本个数为105。影像学数据集中原始样本尺寸大小不同,需预处理成统一的224×224大小,影像学数据集划分(表1)。
表1 COVID-19 影像学数据集的划分Tab.1 Division of COVID-19 imaging data set
COVID-19 影像学数据集包含早期、进展期和重症期3个类别的样本,分别给这3种类别的样本标注为0、1、2。COVID-19小样本影像学数据集在CT表现的分布情况显示,训练集中CT影像学表现为早期、进展期和重症期的样本分别为116、156、140,而测试集中早期、进展期和重症期的样本分别30、39、26(表2)。
表2 COVID-19影像学数据集在CT表现的分布情况Tab.2 Distribution of the COVID-19 imaging data set on CT manifestations
《新型冠状病毒肺炎诊疗方案(试行第八版·修订版)》将COVID-19的临床分型分别为轻型、普通型、重型和危重型[4]。临床分型的CT影像学表现:(1)轻型临床症状轻微,影像学未见肺炎表现,而既往研究表明,病变以小斑影片状、亚段或节段性分布为主,肺外带表现为磨玻璃样密度结节状斑片或片状影,空气支气管征和血管增粗表现。(2)普通型在影像学上可见肺炎表现,病灶增多、范围扩大,涉及多个肺叶,下叶居多。病灶变密实,双肺多发磨玻璃影,部分实变或结构扭曲影内支气管柱状增粗,下叶背侧肺底弧形肺不张。(3)重型和危重型肺部影像学显示24~48 h病灶明显进展>50%,肺实质广泛渗出、实变,实变影为主,肺结构扭曲,支气管扩张,亚段性肺不张,严重时呈“白肺”[21-24]。
神经网络模型的参数是权重和阈值,训练模型是通过训练样本和学习算法反复调整权重和阈值模型参数值,使实际输出与理想输出的误差较少,最后得到神经网络解决问题所需要的参数。训练模型的学习算法中,具有代表性的是误差反向传播BP算法,广泛应用于神经网络中。
评估模型的方法有验证和交叉验证,不同的评估方法也决定数据集的划分。评价分类模型有混淆矩阵、准确率、精确率、召回率、特异性等各项指标(表3)。
表3 评估模型常见的指标Tab.3 Common indicators of evaluation models
机器学习和数据挖掘算法的实际应用中,训练集和测试集具有独立相同分布这种假设难以成立,主要原因是带标记的样本数据数量有限和不同数据的分布会发生变化。迁移学习技术作为一个种新的学习框架应运而生,它放宽了对数据集分布的约束,采用参数迁移的方式,避免繁杂的数据预处理工作,加快模型的训练。机器学习与迁移学习间不同的学习方式的图示显示[7]:机器学习的学习方式需从头开始学习每一个任务;而迁移学习的学习方式在目标任务所需训练数据很少的情况下,从一个或者多个源任务中抽取知识和经验迁移到另一个目标任务中(图1)。
图1 机器学习与迁移学习间不同的学习方式Fig.1 Differences between machine learning and transfer learning.
迁移学习涉及到两个常用的概念,即域和任务。域分为源域和目标域。域和任务的概念将迁移学习分类别,按迁移场景来分类,可以分为归纳式迁移学习[25]、直推式迁移学习[26-28]和无监督迁移学习[29]。传统机器学习与各种不同迁移学习之间的关系(表4)。
表4 传统机器学习与各种不同迁移学习之间的关系Tab.4 Relationship between traditional machine learning and various transfer learning
迁移学习研究还存在着各种各样的挑战,域适配问题、多源迁移学习问题、深度迁移学习、异构迁移学习等是迁移学习领域研究的热门。目前多数研究主要集中在监督学习上,无监督或半监督学习中迁移学习在未来可能受到越来越多的关注。
COVID-19诊断模型的结构显示,原始VGG-16特征提取网络部分迁移到诊断模型上,与全连接层构成基于VGG-16网络的智能诊断模型(图2)。它由两部分组成,第一部分是从VGG-16迁移过来的特征提取层,主要包括卷积层和池化层,同时包含已训练好的参数,第二部分是多参数融合优化的全连接网络层。影像学数据集样本通过第一个部分的特征提取层来训练第二部分的全连接层,缩短了模型的训练时间。
图2 COVID-19诊断模型结构Fig.2 COVID-19 diagnostic model structure.
5.1.1 简单全连接层神经元个数的比较 诊断模型第一部分与输出层之间增加一层神经网络,对神经元个数分别为512、1024、2048 进行了验证。学习率设置为0.00003,样本批次为29,迭代次数为30,选择AdaGradOptimizer优化器,损失函数为均方差,选择relu作为激活函数,比较不同数量神经元对模型的影响。
增加的这层神经网络中不同神经元个数对构建的COVID-19诊断模型的影响结果显示:根据准确率随训练样本的迭代次数的变化曲线(图3A),迭代次数达到12时,3条曲线都达到了较高的准确率,且非常接近;根据损失函数的收敛曲线(图3B),随迭代次数的增加损失函数值逐渐收敛,收敛速度最快的是蓝色的收敛曲线。实验表明,全连接层中第一层神经元个数设计为2048。
图3 不同神经元个数的识别准确率与损失函数的变化曲线Fig.3 Variation curves of recognition accuracy and loss function for different numbers of neurons.
5.1.2 损失函数的比较 学习率设置为0.00003,样本批次为29,迭代次数为30,选择AdaGradOptimizer 优化器,选择relu作为激活函数,比较交叉熵和均方差作用于简单全连接层对模型的影响。损失函数为均方差。
训练模型迭代次数与准确率之间的曲线关系显示(图4A),红色曲线是损失函数为交叉熵时训练集的准确率曲线,紫色曲线是损失函数为均方差函数时训练集的准确率曲线,比较两条曲线可知,迭代次数12之前,损失函数为交叉熵的准确率高于损失函数为均方差的准确率。迭代次数与损失函数值的曲线关系显示(图4B),损失函数为交叉熵时曲线的收敛速度快。对比交叉熵、均方差的准确率变化曲线和损失函数的收敛曲线可知,选择交叉熵作为网络的损失函数。
图4 不同损失函数的识别准确率与损失函数的变化曲线Fig.4 Relationship between the recognition accuracy of different loss functions and the loss function.
5.1.3 不同学习率 学习率为0.00003,样本批次为29,迭代次数为30,选择AdaGradOptimizer 优化器,选择relu作为激活函数,损失函数为交叉熵,比较不同学习率(0.00001、0.00002、0.00003、0.00004、0.00005、0.0001、0.0002、0.0003)对模型的影响。
学习率分别为0.00001、0.00002、0.00003时准确率随迭代次数变化的曲线显示(图5A),学习率为0.00003时准确率是最早达到最高点。学习率分别为0.00003、0.00004、0.00005 时随迭代次数变化的准确率曲线显示,学习率为0.00003与0.00005的准确率曲线几乎是重合的,在迭代次数3之前,它们都比学习率为0.00004的准确率高(图5B)。学习率分别为0.0001、0.0002和0.0003时随迭代次数变化的准确率曲线显示,其中学习率为0.0003的准确率曲线存在波动,学习率为0.0001与0.0002的准确率曲线几乎是重合在一起,在迭代次数2之前,学习率为0.0001的准确率稍高(图5C)。学习率分别为0.00003、0.00005和0.0001时随迭代次数变化的准确率曲线(图5D)。综上实验结果,选择学习率为0.0001来训练诊断模型。
图5 不同学习率的识别准确率变化曲线Fig.5 Change curve of recognition accuracy rate with different learning rates.
5.1.4 批次大小 学习率设置为0.0001,迭代次数为30,优化器采用AdaGradOptimizer,激活函数为relu,损失函数为交叉熵,比较不同的批次大小(10、15、20和29)对模型的影响。
不同样本批次大小的准确率与损失函数的变化曲线(图6)。批次大小分别为10、15、20、29时准确率随迭代次数增加的四条变化曲线显示,批次大小为15的准确率最先达到最高点,并且没有波动(图6A)。批次大小分别为10、15、20、29时损失函数的收敛曲线显示,批次大小为15时收敛曲线较平稳,且较早到达最低点(图6B)。该实验结果表明,选择样本批次大小为15。
图6 不同样本批次大小的准确率与损失函数的变化曲线Fig.6 Variation curves of accuracy and loss function for different sample batch sizes.
5.1.5 优化器的选择 学习率为0.0001,样本批次大小是15,迭代次数为30,激活函数为relu,损失函数为交叉熵,比较不同优化器(AdagradOptimizer、AdamOptimizer、GradientDescentOptimizer和RMSPropOptimizer)对模型的影响。
不同优化器的准确率与损失函数的变化曲线(图7)。分别使用AdagradOptimizer、AdamOptimizer、GradientDescentOptimizer 和RMSPropOptimizer 时 准确率的变化曲线(图7A)显示,其中AdamOptimizer、GradientDescentOptimizer 和RMSPropOptimizer 优 化器的准确率变化曲线都有波动,AdagradOptimizer优化器的准确率变化曲线较平稳,并较早到达最高值。不同优化器损失函数的收敛曲线(图7B)显示,其中使用AdamOptimizer和RMSPropOptimizer优化器时损失函数收敛曲线出现波动,而使用AdagradOptimizer 和GradientDescentOptimizer优化器时损失函数收敛曲线在迭代次数2 之前就到了最低点。优化器选择AdagradOptimizer。
图7 不同优化器的准确率与损失函数变化曲线Fig.7 Curves of accuracy and loss function of different optimizers.
综合上述所有实验结果分析,设计简单的全连接层,参考表5简单全连接层神经网络模型参数。
表5 简单全连接层神经网络模型参数Tab.5 Model parameters of simple fully connected layer neural network
在简单全连接层基础上通过增加一层,以提高模型的准确率,神经元个数分别设置为128、256、512、1024进行实验验证。学习率为0.0001,样本批次大小是15,迭代次数为30,优化器采用AdagradOptimizer,激活函数为relu,损失函数为交叉熵,比较新增加这层不同数量神经元对模型的影响。
神经元个数分别为128、256、512、1024时识别准确率的变化曲线显示,神经元个数为256时准确率变化曲线存在波动,神经元个数为128、512、1024的准确率变化曲线较稳定,迭代次数达到2时,3条曲线都达到最高的准确率(图8)。
图8 不同神经元个数识别准确率的变化曲线Fig.8 Variation curve of the recognition accuracy of different neuron numbers.
神经元个数分别为128、256、512、1024时损失函数的收敛曲线显示,4条曲线的收敛速度差不多,神经元个数为128和256时损失函数的收敛曲线存在波动,而神经元个数为512和1024时收敛曲线较平稳(图9)。经综合考量,这一层神经元个数设计为128。
图9 不同神经元个数损失函数的收敛曲线Fig.9 Convergence curves of loss functions for different neuron numbers.
综上实验结果,设计全连接层神经网络模型,其中每层神经元个数、激活函数、优化器、学习率大小、损失函数和批次大小等参数(表6),最终设计的诊断模型结构(图2)。
表6 全连接层神经网络模型参数Tab.6 Fully connected layer neural network model parameters
COVID-19 辅助诊断模型的训练和诊断效果验证在Intel(R) Core(TM) i7-6700HQ CPU@2.6 GHz 2.59 GHz,8 GB 内存的Windows 10 系统上进行[24]。COVID-19影像学测试集样本为105个,早期、进展期和重症期的样本个数分别为30、39、36个。影像学测试集中不同CT影像表现的样本(图10~12)。
图10 COVID-19 早期CT影像表现Fig.10 Early CT imaging performance of COVID-19.
图11 COVID-19 发展期CT影像表现Fig.11 COVID-19 CT imaging performance during development.
图12 不同病变分期患者胸部CT影像Fig.12 Chest CT images of patients with different pathological stages.
训练好的COVID-19辅助诊断模型在测试集上的测试结果以混淆矩阵显示(表7),表现为早期(真实类别为0)的样本诊断为0类别样本数为29,错误诊断为1类别样本数为1;而表现为进展期样本全部诊断正确;表现为重症期(真实类别为2)的样本诊断为2类别样本数为35,诊断为1类别样本数为1。混淆矩阵归一化后(图13)。
表7 三分类混淆矩阵Tab.7 Three-class confusion matrix(n)
图13 归一化的三分类混淆矩阵Fig.13 Normalized three-class confusion matrix.
根据三分类混淆矩阵中的数值,计算不同CT表现的敏感度、精确度、F1-Score,得到评估模型的指标值(表8),辅助诊断COVID-19的模型在CT表现为早期、进展期和重症期的敏感度分别为0.97、1.00、0.97,精确率分别为1.0、0.95、1.0,F1-score分别为0.98、0.97、0.99。
表8 评估模型的指标Tab.8 Methods for evaluating models
辅助诊断COVID-19的模型在测试集上的准确率达到98.10%,高于文献[19-20]所述大型公司或国家级研究团队设计的辅助诊断COVID-19模型准确率,105个样本的诊断时间为28.06 s。3个类别的敏感度分别为0.97、1.00、0.97,精确率分别为1.0、0.95、1.0,F1-score分别为0.98、0.97、0.99。这些模型评估指标如准确率、敏感度、精确率和F1-Score上都较既往研究中设计的基于迁移学习技术的COVID-19诊断模型[24]有所提高,具有一定的应用价值和研究价值。
诊断模型在测试集上的结果表明,本文设计的辅助诊断COVID-19的模型可靠性高以及诊断速度较快。虽施打疫苗的人数不断增多,但未接种疫苗的人数还很多,Delta变异病毒株传染力显著增强,且正在未接种疫苗的人群中迅速传播,确诊人数创新高,现阶段需筛查、复检的人较多,引入辅助诊断COVID-19的智能系统可自动、快速为医生提供参考意见,提高临床诊断效率。
综上所述,本文基于小样本影像学数据集,采用迁移学习技术,引入多参数融合优化设计COVID-19诊断模型。首先对COVID-19影像学数据集进行划分和预先处理,然后引入基于VGG-16的迁移学习技术搭建全连接层构成一个初始的基于迁移学习的COVID-19智能诊断模型,通过对全连接层网络结构、激活函数、损失函数、优化算法、学习率和样本批次大小的多参数融合逐步优化,最后训练出一个COVID-19辅助诊断模型。结合流行病学史,依据CT图像诊断患者处于早期、进展期还是重症期,但诊断模型是基于小样本数据集训练出来的,故数据集预处理、诊断模型有待进一步优化,对COVID-19的病灶数量、体积、病灶占比等定量化的研究,更高效、客观和准确地进行COVID-19严重程度的量化评估,有助于临床分诊及疗效评估,更为精确为医生提供参考意见。也为进一步研究深度学习技术在不同病毒性肺炎的鉴别诊断打下基础。