何新宇 张晓龙
摘 要:当前的肺炎图像识别算法面临两个问题:一是肺炎特征提取器使用的迁移学习模型在源数据集与肺炎数据集上图像差异较大,所提取的特征不能很好地契合肺炎图像;二是算法使用的softmax分类器对高维特征处理能力不够强,在识别准确率上仍有提升的空间。针对这两个问题,提出了一种基于深度卷积神经网络的肺炎图像识别模型。首先使用ImageNet数据集训练好的GoogLeNet Inception V3网络模型进行特征提取;其次,增加了特征融合层,使用随机森林分类器进行分类预测。实验在Chest X-Ray Images肺炎标准数据集上进行。实验结果表明,该模型的识别准确率、敏感度、特异度的值分别达到96.77%、97.56%、94.26%。在识别准确率以及敏感度指标上,与经典的GoogLeNet Inception V3 + Data Augmentation(GIV+DA)算法相比,所提模型分别提高了1.26、1.46个百分点,在特异度指标上已接近GIV+DA算法的最优结果。
关键词:肺炎图像分类;迁移学习; 深度卷积神经网络; 随机森林; 敏感度;特异度
中图分类号: TP391.4
文献标志码:A
Abstract: Current recognition algorithm of pneumonia image faces two problems. First, the extracted features can not fit the pneumonia image well because the transfer learning model used by the pneumonia feature extractor has large image difference between the source dataset and the pneumonia dataset. Second, the softmax classifier used by the algorithm can not well process high-dimensional features, and there is still room for improvement in recognition accuracy. Aiming at these two problems, a pneumonia image recognition algorithm based on Deep Convolution Neural Network (DCNN) was proposed. Firstly, the GoogLeNet Inception V3 network model trained by ImageNet dataset was used to extract the features. Then, a feature fusion layer was added and random forest classifier was used to classify and forecast. Experiments were implemented on Chest X-Ray Images pneumonia standard dataset. The experimental results show that the recognition accuracy, sensitivity and specificity of the proposed model reach 96.77%, 97.56% and 94.26% respectively. The proposed model is 1.26 percentage points and 1.46 percentage points higher than the classic GoogLeNet Inception V3+Data Augmentation (GIV+DA) algorithm in the index of recognition accuracy and sensitivity, and is close to the optimal result of GIV+DA in the index of specificity.
Key words: pneumonia image classification; transfer learning; Deep Convolution Neural Network (DCNN); random forest; sensitivity; specificity
0 引言
肺炎是一種常见的肺部疾病。当前,肺部 X 光检查是肺炎诊断的主要途径,这种方法在临床护理以及流行病学研究中发挥着重要作用[1]。利用X光进行肺炎诊断是一项具有挑战性的工作,需要医生具备较高的医疗影像判断能力。近年来,计算机辅助诊断(Computer-Aided Diagnosis, CAD)技术[2]作为一种辅助医疗工具,被广泛应用于很多发达国家的医疗相关领域,特别是在涉及医疗影像学的领域。借助计算机辅助诊断技术,实现肺炎图像的识别分类在提高医生识别准确率、减少漏诊误诊、提高工作效率等方面发挥着积极的促进作用。
随着图像处理、模式识别、以及科学计算可视化技术的不断发展,在肺炎图像领域国内外学者纷纷展开了研究。上海交通大学李阳等利用图像处理技术将肺炎图像的局部二值模式(Local Binary Pattern, LBP)[3]特征信息作为识别特征,然后用支持向量机(Support Vector Machine, SVM)算法进行肺炎图像识别。虽然SVM算法对于处理高维度、非线性问题有较大优势,但是当训练样本较大时,计算量会呈指数增长,导致模型最终的效率偏低[4]。近年来,以卷积神经网络(Convolutional Neural Network, CNN)[5]为代表的深度学习(Deep Learning)算法在计算机视觉领域的成功应用,为CNN在医疗图像处理领域的应用奠定了基础。刘长征等[6]利用卷积神经网络实现了肺炎影像的判别。该方法得到的识别准确率明显高于使用人工提取的特征进行预测分类的SVM算法得到的识别准确率,这说明卷积神经网络自动提取的肺炎图像特征比人工提取的特征更完善、更有表现力。但是他们所用的卷积神经网络结构相对简单,学习特征的能力有限,识别准确率还有提升的空间。在现阶段的图像识别任务中,往往将大规模图像数据集(ImageNet)上训练好的深度卷积神经网络作为其他图像识别模型的特征提取器,然后在此基础上进行识别分类。Kermany等[7]利用上述方法对肺炎图像进行识别,识别准确率达到92.80%。相比人工进行特征提取的方法以及刘长征等[6]使用的方法,该方法得到的识别准确率有5~10个百分点的提升。Vianna等[8]利用预训练的GoogLeNet Inception V3 网络[9]与Data Augmentation方法相结合的方式对肺炎图像进行识别,得到的识别准确率比Kermany等[7]得到的识别准确率提高2.71个百分点。
虽然Kermany等[7]以及Vianna等[8]利用迁移学习的方法在肺炎图像识别上取得了比已有研究更好的识别效果,但是,由于ImageNet数据集与肺炎数据集图像差异较大,文献[7-8]并没有对已有的迁移学习模型进行相应的改进,使它更加契合肺炎图像数据集以便得到更高的识别准确率,因此本文提出了一种改进的基于GoogLeNet Inception V3网络结构的深度神经网络模型,并将其应用于肺炎图像的识别。
本文研究的问题是肺炎图像识别,主要的工作如下:1)构建了特征融合层,优选了特征融合层相关参数,并且将GoogLeNet Inception V3網络与特征融合层进行组合获得了更加多样化的非线性特征表示,缓解了ImageNet数据集与肺炎数据集图像差异较大的问题;2) 使用随机森林作为分类器,提升了模型抗干扰以及处理高维特征数据的能力。
1 肺炎图像识别系统架构
1.1 卷积神经网络模型
传统的图像识别算法在对图像进行分类时,需要人工参与进行特征处理,这样得到的特征模型的泛化能力较差,识别准确率存在较大的提升空间。
深度学习出现的目的在于获得比浅层学习[10]更好的识别效果。CNN作为一种经典的深度学习模型,可以捕捉输入与输出之间复杂的非线性映射关系。CNN是由多层感知机(Multi-Layer Perceptron, MLP)[11]发展而来,它以二维或者三维图像直接作为模型的输入,通过对多个卷积层以及池化层进行堆叠形成具有自主学习能力的层次化结构模型。同时权值共享、局部感知技术的应用使CNN的网络结构与生物神经网络结构更加接近。其中:卷积层的主要作用是对输入图像进行多层次的特征抽取;池化层的作用主要是增加模型的平移、旋转、以及尺度不变性,在保留主要特征的同时有效地减少参数量,防止过拟合,提高模型泛化能力。
1.2 网络结构设计
GoogLeNet网络是Szegedy等[12]于2014年提出的,由一种名为Inception的深度卷积神经网络架构构成。相比AlexNet[13]、VGG(Visual Geometry Group)[14]等网络,GoogLeNet凭借更大的网络深度(层数)和宽度、更高效的资源利用率,获得了更好的识别效果。
表1为Resnet50、Inception V3等四种常用深度神经网络Top-1/ Top-5准确率、网络参数量以及网络深度对比情况 (https://keras-cn.readthedocs.io/en/latest/other/application)。由表1可以看到,Inception V3的网络深度约为VGG网络深度的7倍,但其参数量仅为VGG网络的1/6,这得益于Inception V3在网络结构优化上所作的改进。Inception V3模型将每个n×n的卷积层拆成1×n以及n×1的两个卷积层,这样做使网络深度进一步增加,同时网络的非线性表达能力也得到增强。在模型的构建过程中,凭借这些改进可以将更多的计算资源应用于网络结构的调整。本文选取 Inception V3网络作为特征提取器的关键因素在于:1)通过表1可以发现Inception V3网络训练得到的Top-1/Top-5准确率明显高于其他深度神经网络模型;2)在实际应用中,参数少的模型在内存受限的场景下具有突出的优势。
1.3 GIV3网络
本文将GoogLeNet Inception V3网络和特征融合层组合得到的新网络简称为GIV3网络,原始的GoogLeNet Inception V3网络简称为GIV网络。
实验过程中,由于ImageNet数据集与实验的目标数据集图像差异较大,如果直接使用GIV网络提取的特征数据作分类,得到的实验结果会较差[15]。为了弱化源数据集与目标数据集图像差异的影响,本文设计了一个特征融合层。该特征融合层可以对GIV网络学习到的特征信息进行非线性的组合,得到更加多样化的非线性特征表示。
图1是本文设计的GIV3网络结构,它与传统的GIV网络不同之处在于特征融合层的增加。特征融合层包括两个全连接层以及一个Dropout层。
神经网络的构建过程中,全连接层节点数相对固定,一般在1024、512、256、128、64中进行选择,而Dropout层节点隐藏率一般是在0.3、0.4、0.5、0.6、0.7中进行选择。本文模型为了得到最优的组合参数,在实验中利用网格寻优算法对节点数以及节点隐藏率进行随机组合,然后分别进行数据集测试,根据最终测试结果选取的节点数组合为1024与512、Dropout层节点隐藏率为0.5 (不同节点组合以及节点隐藏率的识别准确率对比如表2所示)。
1.4 分类识别
随机森林(Random Forest, RF)[19]是利用多棵决策树对样本进行分类预测的集成学习(Ensemble Learning)算法[20]。RF的基本组成单元是CART(Classification And Regression Tree)[21] 。首先,在总样本中有放回地随机抽取m个样本作为CART树的训练集(m < M, M为总样本数)。然后,在特征的选取上也采用有放回的随机取样的方式从总特征中选取k个特征(k < K,K为总特征数)。按照上述数据集以及特征的选取规则训练多棵CART。最终,以投票或者赋予权重的方式对多棵CART的结果进行综合处理得到分类结果。
本文选取RF作为分类器的原因有:1)实验提取出的特征维度较高,而RF在处理高维特征信息时表现出较高的识别准确率。2)本文使用的GIV3网络结构复杂,实验数据较少,容易产生过拟合。凭借随机性的特点,使用RF作为分类器的模型往往不容易发生过拟合。3)相比其他集成学习算法,RF得到的实验结果更稳定。
本文模型整体算法流程如下所示。
输入 合并后的数据集S;
输出 RF分类器预测结果。
1)按一定的比例随机将S分为相互独立的训练集S1、验证集V1、测试集T1。
2)利用训练集S1对GIV3网络进行参数更新,并且利用验证集V1实时评测GIV3网络特征提取能力。
3)利用GIV3网络对训练集S1、验证集V1以及测试集T1图像进行特征提取,得到的数据集图像特征信息分别为XGIV3、X1GIV3、X2GIV3。
4)将训练集和验证集图像特征信息XGIV3、X1GIV3及其標签值作为输入训练RF分类器。
5)利用训练好的RF分类器对测试集图像特征信息X2GIV3进行分类预测。
2 实验结果及分析
实验在Windows 10系统下进行,CPU为Inter Core i5-7500CPU@3.41GHz,实验环境是基于Windows的TensorFlow机器学习框架,实验在CPU模式下运行。
2.1 数据集
本文采用加州大学圣迭戈分校Kermany等[7]于2018年公开的数据集Chest X-Ray Images。该数据集包括两个独立的肺炎图像数据集:训练集(5232幅)、测试集(624幅),每个数据集包含两种类别的图像:PNEUMONIA(肺炎图片)和NORMAL(正常肺部图片)。图2是肺炎图像数据集的相关数据实例展示。
两种类型的肺部图像在两个数据集中的具体分布情况如表3所示。为保证实验过程中训练集与测试集图像的独立性,提高模型的泛化能力,在实验开始前将原始的训练集以及测试集进行合并,然后按8∶1∶1的比例将合并后的数据集随机分为训练集、测试集和验证集。
2.2 实验过程
首先,利用预训练得到的GIV3网络对训练集、验证集、测试集图像进行特征提取;然后,将训练集和验证集的特征数据及其对应的标签作为输入训练RF分类器;最后,利用训练好的RF分类器对测试集图像特征数据作分类预测。
在实验过程中,为了避免实验结果出现局部最优而不是全局最优的情况,对学习率采取逐步递减的方式。模型每迭代100次或者连续多次迭代的模型损失函数之间的差值小于某个阈值时,利用已训练的肺炎图像识别模型对验证集图像作分类预测、查看分类结果,然后将学习率变为原来的0.9倍。这样做能使模型的实验结果在训练后期不会有太大的波动,并且更加接近全局最优。
3 实验结果分析
为全面衡量模型的分类性能,实验使用了3个模型评价指标:准确率(Accuracy, Acc)、敏感度(Sensitivity, Sen)、特异度(Specificity, Spe),计算式分别如式(5)、(6)、(7)所示。
其中TP、TN、FP、FN分别表示真阳性、真阴性、假阳性和假阴性。准确率体现的是模型的预测结果与真实检测结果的符合程度,敏感度体现的是模型识别肺炎图像的能力,而特异度体现的是模型识别非肺炎图像的能力。
表4是特征融合层增加后相关模型识别准确率的对比情况。通过对比实验1与2、实验3与4的识别准确率,可以发现,特征融合层的增加使模型的识别准确率分别提高了1.03和1.62个百分点,表明改进之后的特征提取器获得的特征更好地拟合了肺炎图像数据集。同时分别对比实验1与实验3、实验2与实验4,可以发现,使用RF作为分类器的模型得到的识别准确率比使用softmax作为分类器的模型得到的识别准确率更高,表明了RF分类器对高维肺炎特征的处理能力更强。
4 结语
本文提出了一种改进的深度卷积神经网络模型,实现了肺炎图像的识别分类。本文模型在GoogLeNet Inception V3网络的基础上通过构建特征融合层,使得模型获得了更加多样化的非线性特征表示,缓解了迁移学习过程中源数据集与目标数据集图像差异大的问题;同时使用Random forest作为模型的分类器,用于处理高维肺炎图像特征数据。在对比实验中,本文模型在训练集和测试集上均表现出比其他已有模型更好的识别效果和泛化能力。在后续工作中,考虑到医疗图像的特殊性,可利用语义分割技术对图像进行预处理,再利用深度神经网络对精确分割得到的图像进行分类预测。
参考文献 (References)
[1] RAJPURKAR P, IRVIN J, ZHU K, et al. CheXNet: radiologist-level pneumonia detection on chest X-rays with deep learning [EB/OL]. https://arxiv.org/pdf/1711.05225.pdf.
[2] RINALDI P, MENCHINI L, MARTINELLI M, et al. Computer-aided diagnosis [J]. Rays, 2003, 28(1): 103-108.
[3] ZHAO G, AHONEN T, MATAS J, et al. Rotation-invariant image and video description with local binary pattern features [J]. IEEE Transactions on Image Processing, 2011, 21(4): 1465-1477.
[4] 吕洪艳,刘芳.组合核函数SVM在特定领域文本分类中的应用[J].计算机系统应用,2016,25(5):124-128.( LYU H Y, LIU F. Application of text classification for specific domains based on combination kernel function SVM [J]. Computer Systems & Applications, 2016, 25(5): 124-128.)
[5] HERSHEY S, CHAUDHURI S, ELLIS D P W, et al. CNN architectures for largescale audio classification [C]// Proceedings of the 2017 IEEE International Conference on Acoustic, Speech and Signal Processing. Piscataway, NJ: IEEE, 2017: 131-135.
[6] 劉长征,相文波.基于改进卷积神经网络的肺炎影像判别[J].计算机测量与控制,2017,25(4):185-188.(LIU C Z, XIANG W B. Recognition of pneumonia type based on improved convolution neural network [J]. Computer Measurement & Control, 2017, 25(4): 185-188.)
[7] KERMANY D S, GOLDBAUM M, CAI W J, et al. Identifying medical diagnoses and treatable diseases by image-based deep learning [J]. Cell, 2018, 172(5): 1122-1131.
[8] VIANNA V P. Study and development of a computer-aided diagnosis system for classification of chest X-ray images using convolutional neural networks pre-trained for ImageNet and data augmentation [EB/OL].[2018-09-16]. https://arxiv.org/pdf/1806.00839v1.pdf.
[9] BALLESTER P, ARAUJO R M. On the performance of GoogLeNet and AlexNet applied to sketches [C]// AAAI 2016: Proceedings of the 2016 Thirtieth AAAI Conference on Artificial Intelligence. Menlo Park, CA: AAAI, 2016: 1124-1128.
[10] MCDONNELL M D, VLADUSICH T. Enhanced image classification with a fast-learning shallow convolutional neural network [C]// Proceedings of the 2015 International Joint Conference on Neural Networks. Piscataway, NJ: IEEE, 2015: 1-7.
[11] GAUDART J, GIUSIANO B, HUIART L. Comparison of the performance of multi-layer perceptron and linear regression for epidemiological data [J]. Computational Statistics & Data Analysis, 2004, 44(4): 547-570.
[12] SZEGEDY C, LIU W, JIA Y Q, et al. Going deeper with convolutions [C]// Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ:IEEE, 2015: 1-9.
[13] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks [C]// NIPS 2012: Proceedings of the 25th International Conference on Neural Information Processing Systems. North Miami Beach, FL: Curran Associates Inc., 2012: 1097-1105.
[14] HE K M, ZHANG X Y, REN S Q, et al. Deep residual learning for image recognition [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2016: 770-778.
[15] ZHANG C L, LUO J H, WEI X S, et al. In defense of fully connected layers in visual representation transfer [C]// PCM 2017: Proceedings of the 2017 18th Pacific Rim Conference on Multimedia, LNCS 10736. Cham: Springer, 2017: 807-817.
[16] YUAN J W, YU S C. Privacy preserving back-propagation neural network learning made practical with cloud computing [J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(1): 212-221.
[17] MORSE G, STANLEY K O. Simple evolutionary optimization can rival stochastic gradient descent in neural networks [C]// GECCO 2016: Proceedings of the 2016 Genetic and Evolutionary Computation Conference. New York: ACM, 2016: 477-484.
[18] ARTSTEIN-AVIDAN S, KNIG H, MILMAN V. The chain rule as a functional equation [J]. Journal of Functional Analysis, 2010, 259(11): 2999-3024.
[19] BREIMAN L, LAST M, RICE J. Random forests: finding quasars [M]// FEIGELSON E D, BABU G J. Statistical Challenges in Astronomy. New York: Springer, 2003: 243-254.
[20] PRUSA J D, KHOSHGOFTAAR T M, NAPOLITANO A. Using feature selection in combination with ensemble learning techniques to improve tweet sentiment classification performance[C]// ICTAI 2015: Proceedings of the 2015 IEEE 27th International Conference on Tools with Artificial Intelligence. Washington, DC: IEEE Computer Society, 2015: 186-193.
[21] BREIMAN L I, FRIEDMAN J H, OLSHEN R A, et al. Classification and Regression Trees (CART) [J]. Encyclopedia of Ecology, 2015, 57(1): 582-588.
[22] REN X D, GUO H N, LI S H, et al. A novel image classification method with CNN-XGBoost model [C]// IWDW 2017: Proceedings of the 2017 International Workshop on Digital Watermarking, LNCS 10431. Cham: Springer, 2017: 378-390.