基于迁移学习和支持向量机的白细胞分类
2021-08-03张剑飞郭笑颜崔文升
张剑飞,郭笑颜,王 波,崔文升
(1.齐齐哈尔大学计算机与控制工程学院,齐齐哈尔 161006;2.大庆师范学院计算机科学与信息技术学院,大庆 163712)
白细胞(white blood cell,WBC)是一种无色、球形、有核的血细胞,通过吞噬病原体来产生抗体,抵御和消灭入侵的病原微生物,对于机体的安全免疫发挥着重要作用[1]。不同群体不同时段血液中WBC的浓度是不同的,成年人正常情况下血液中WBC浓度为109/L。当机体出现急性细菌性感染、中毒、大出血和免疫系统衰弱等现象时,血液中WBC的浓度会出现异常,因此对于血液中WBC浓度的检测和类别的鉴定有着重要的社会价值和临床意义[2-3]。
人工镜检是WBC分类的黄金标准,但该方法效率低,准确度受检验人员主观经验和状态的影响,所以大量的研究人员致力于WBC自动分类研究。20世纪90年代出现了基于物理和化学的脉冲信号计数方法,但由于需要昂贵的医疗器械和专业的操作人员等苛刻条件导致难以系统的应用到WBC分类的研究过程中[4]。张从鹏等[5]利用灰度直方图波谷阈值分割方法实现了白细胞细胞核和细胞浆的提取,根据细胞的形态、颜色及纹理特征对白细胞进行了分类。Nazlibilek等[6]将RGB(red,green,blue)图像转换为灰度图像,并使用Otsu算法将灰度图像转换为二值图像,将单个图像应用于基于神经网络(neural network,NN)的分类器,将WBC分为五类。虽然这些方法经过复杂的步骤都取得了不错的精度,但是通过纹理和几何特征来分类是不可靠的,因为同类细胞的形状,大小和纹理信息有很大的差异。
近些年,深度学习在医学辅助诊断中的应用已经成为模式识别和人工智能领域研究的热点问题之一,特别是卷积神经网络(convolutional neural network,CNN)在图像分类识别领域表现出巨大的优势。钟亚等[7]在LeNet-5的基础上,设计一个六层的CNN对2万个样本组成的数据集进行分类,最终实现95%的敏感性、84%的特异性和89.5%的准确率。由于方法的CNN网络模型简单,准确率不高。Qin等[8]提出使用残差卷积神经网络WBC显微图像进行了集成分类,该方法进行了80 000次迭代的集成训练,模型在训练过程中消耗时长约为3 611.5 min,最终测试集平均准确率接近76.84%。马力等[9]利用矩阵变化平衡数据集,基于迁移学习利用改进用残差卷积神经网络对白细胞图像进行分类,最终准确率达到92%。在WBC分类识别上,仍存在分类识别率低和硬件设备要求过高等问题。
针对WBC需要复杂预处理和分类识别准确率等问题,提出一种基于迁移学习的WBC分类方法:首先,对WBC数据集进行数据增强和归一化预处理,然后对预选迁移模型进行微调训练,选择分类效果最好的模型对数据集进行特征提取,将提取到的特征分别输入至NN和支持向量机(support vector machine,SVM)中进行训练,最后对两者分类器分类结果进行组合和决策。
1 方法
在深度学习中,CNN在图像分类识别领域中表现突出,被学术界广泛应用于病理图像的辅助诊断研究[10-11]。大数据是深度学习的基础,而在实际中获取大量有标注的医学数据是很困难的。迁移学习将旧领域学习过的模型应用在新领域上,可以解决传统机器学习中因数据不足而泛化能力不足的问题[12]。迁移效果取决于源域和目标域之间的相关性,相关性越高迁移效果越好,否则可能会发生“负迁移”[13]。对VGG-16[14]、ResNet-50[15]和Mobile-Net[16]三种预选迁移模型微调训练来选择对WBC分类效果最好的迁移模型用于特征提取。如图1所示,本文方法共分为数据集预处理、微调训练和组合分类3个部分。
1.1 数据集预处理
1.1.1 数据增强
WBC原始数据集共347组像素规格为640×480×3的血涂片样本,其中包括88组嗜酸性粒细胞(Eosinophil)、31组淋巴细胞(Lymphocyte)、21组单核白细胞(Monocyte)、207组嗜中性粒细胞(Neutrophil)。原始数据数量过少且各类别数据分布不平衡,为了提升模型的泛化能力和分类精度,选择数据增强技术对数据集进行扩增操作[17]。具体的数据增强技术包括随机左右平移5像素,以阈值为60°进行随机旋转,将原始数据的数目扩增了约40倍。将原有的不平衡数据转化为平衡数据,有效解决由于样本太少及其类间不平衡导致分类效果不佳的问题。
1.1.2 图像规格调整
为了对迁移学习模型进行微调训练,需要将原始数据图像规格调整为迁移模型能够输入的图像规格,利用Python中Opencv工具包把图像规格调整为迁移模型的输入规格224×224×3。
1.1.3 归一化
数据范围压缩作为常见的预处理方法,能提高模型训练寻优的效率和分类识别的精度,利用归一化将数据范围压缩至-1~1[18],即
(1)
式(1)中:X表示图像中每个像素点的像素值。
1.2 微调训练
由于目标域与源域之间存在差异,因此还需要微调训练来提高迁移模型在目标域的性能。微调训练是迁移学习中一项基本操作,对三种预选迁移模型(VGG-16、ResNet-50和Mobile-Net)采用两种微调训练方案来选取对于WBC分类效果最好的模型。方案1冻结迁移模型所有卷积特征提取层,只对分类层进行微调训练操作;方案2微调训练迁移模型所有卷积特征提取层和分类层。选取准确率最高的迁移模型作为下一步微调训练基础。然后对模型全局池化层的类型和不同冻结位置进行讨论和分析,选择表现效果最好的配置。基于前两步的操作,选择分类精度最佳的迁移模型对数据集进行特征取操作。
对两种微调方案,分类层均把原迁移模型中1 000个神经元设置为4个神经元。在迁移模型微调训练时,使用全局池化层代替原有迁移模型的全连接层。全局池化层包括全局平均池化层和全局最大池化层,将由模型中最后卷积输出的每张特征图的平均值或最大值作为输出[19]。原迁移模型需要将由卷积提取的特征图进行平铺操作,会破坏数据的空间特征并且会引入更多的参数来拟合数据,易发生过拟合问题,而全局池化层一方面能保留数据特征的空间特性,另一方面又能有效降低模型拟合参数数量,提升模型泛化能力。
1.3 组合分类
在使用单分类器难以获得更好的分类识别效果时,利用两组或者多组分类器进行组合决策往往能获得更高的识别精度[20-21]。利用已微调训练完毕的迁移模型对数据集进行特征提取操作,然后将提取到的特征分别输入至NN和SVM中进行训练,最后通过对两者分类器分类结果进行组合和决策,具体的组合规则为
(2)
式(2)中: predict表示组合分类器的分类结果;i表示WBC4类中的第i类;BPi表示NN分类器的输出概率;SVMi表示SVM分类器的输出概率;argmax表示概率值最大值的索引。
将NN和SVM对于4类WBC的分类阈值进行相加,将最大概率值输出作为分类结果。
2 实验
2.1 数据集预处理
Kaggle(https://www.kaggle.com/paultimothymooney/blood-cells)提供原始347组像素规格为640×480×3的WBC血涂片样本。该数据集数据数量较少且各类别数据分布不均衡。通过数据增强将原始数据的数目扩增了约40倍,将347组数据扩增为12 444组。同时将像素规格转变为224×224×3,训练集和测试集数目各占9 957组和2 487组,经过数据增强后训练集、测试集的类分布如表1所示。图2为原始数据和增强数据的四类细胞的血涂片样本例图。
表1 数据集分布
图2 四类细胞的血涂片样本
2.2 微调训练
2.2.1 迁移模型选择
对VGG-16、ResNet-50和Mobile-Net模型进行两种方案(方案1冻结迁移模型所有卷积特征提取层,只对分类层进行微调训练操作;方案2微调训练迁移模型所有卷积特征提取层和分类层)的微调,超参数配置如表2所示。
表2 超参数设置
不同迁移模型训练集和测试集在方案1和方案2中分类正确率的变化曲线如图3所示。
图3 2个方案准确率变化曲线
在方案1中,VGG-16迁移模型的训练集和测试集具有更好的拟合效果和识别精度,其他迁移模型效果不佳主要由于迁移模型复杂度过大只对源域数据具有更强的抽象能力,而在方案2中,VGG-16训练集和测试集在30次迭代中具有更快的收敛速度和识别精度,并且具有更强的抗过拟合能力。微调训练的模型中测试集分类准确率如表3所示。
表3 不同迁移模型中测试集准确率
因此,方案2中VGG-16模型具有最好的性能,接下来优化模型的研究将以VGG-16作为迁移模型展开。
2.2.2 全局池化层选择
对上一步微调之后的VGG-16模型,用全局最大池化层替换原模型中的全局平均池化层并对方案1和方案2中的VGG-16模型进行了重新微调训练,超参数配置与表2相同。在30次迭代后,将测试集输入至两种微调训练完毕的迁移模型中进行预测,得到的分类准确率如表4所示。
表4 不同全局池化层测试集评估结果
其中,在方案2中全局平均池化层分类效果高出全局最大池化层大约8%,所以使用全局平均池化层对于该类数据具有更好适用性,接下来将在此结果的基础上进行深入的研究。
2.2.3 冻结层选择
接下来对VGG-16模型的冻结位置进行了分析和讨论。VGG-16模型作为2014年ImageNet大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge, ILSVRC)的亚军在边缘、纹理等低级特征具有良好的提取能力,但由于目标域与源域之间差异,对于高级特的提取能力还需微调操作加以提升,因此对VGG-16模型进行了如图4所示的冻结操作。
I代表模型输入;C代表卷积层;P代表最大池化层;A代表全局平均池化层;F代表分类层
以卷积对为基本调节单位,其中卷积对代表两层或多层连续的卷积层与池化层的组合。分别将VGG-16模型第4、7、11和15设为冻结节点,将这4次冻结操作设为F1、F2、F3和F4。在模型超参数配置方面与表2相同,将训练集输入至不同冻结迁移模型中进行微调操作,训练集和测试集的准确率变化曲线如图5所示。
图5 不同冻结层训练集和测试集准确率变化曲线
其中,每种冻结方式都出现了过拟合问题,相比之下F2具有更好的泛化能力和收敛效果。接着对VGG-16模型在不同冻结操作中所有微调训练的测试集识别效果进行了统计,如图6所示。
图6 测试集在不同冻结操作中上的准确率
其中,F0和F5分别代表上节VGG-16模型的方案2和方案1。经过对比得出F1、F2和F4与F0相比具有更好的识别效果并且F2达到了90.43%的正确识别率,较F0提升了约7%。
2.3 组合分类
2.3.1 NN分类
利用F2微调训练所获得的迁移模型分别对训练集和测试集进行特征提取操作,然后将特征输入至网络模型进行训练、预测和评估。本文用到的NN模型结构包括5层:输入层、批标准化层、全连接层、弃权层和输出层。批标准化层将数据按批量进行标准化操作,能有效地提升模型收敛速度和识别精度[22]。使用RELU作为全连接层的激活函数,在输出层中以SOFTMAX为激活函数同时通过弃权操作提升模型泛化能力。SOFTMAX函数能有效地将分类结果压缩至0~1并且神经元输出总和为1。
(3)
(4)
式(4)中:w代表模型中权值的集合;b代表偏置;n代表输入训练数据集的数目;a表示模型预测结果;求和在所有训练输入x上进行;y代表带训练数据集的标签;C代表损失函数输出。
网络模型结构如表5所示。在模型训练时的超参数配置如表6所示。将训练集和测试集输入至NN中进行训练,经过100次的迭代,训练集和测试集的准确率变化曲线如图7所示。
表5 网络模型结构
表6 超参数设置
图7 训练集和测试集准确率变化曲线
使用表6中超参数配置中对模型训练,在40次迭代后训练集和测试集曲线趋于收敛,并且测试集达到了92.26%分类准确率,相比于之前的F2结果提升了约1%,因此搭建NN用于WBC分类较直接微调训练分类具有更高的准确率。
2.3.2 NN与SVM组合分类
为了获得更高的分类精度,采用NN和SVM组合对微调训练提取到的特征进行预测和评估。将提取到的特征输入至SVM中进行分类,使用Sklearn机器学习工具对SVM算法进行实现并对SVM中惩罚系数C的选择进行了实验对比。如图8为不同C在测试集的识别正确率对比。
图8 不同C的准确率
当C=1时,模型具有更好的识别效果,接下来使用核函数为径向基函数、C=1的SVM模型与2.3.1节所训练的NN对测试集进行组合预测,对单一和组合识别精度对比结果如表7所示。
表7 准确率对比
单一决策的NN和SVM在WBC的分类准确率具有明显的差异,通过将两者进行组合来对测试集预测,分类精度得到了提升。综上,通过将NN与SVM进行组合对测试集的进行预测,能有效地提升了原有单一模型决策的泛化能力。
3 结论
基于迁移学习的思想,使用NN和SVM融合的方法对WBC病理图像分类问题进行了深入的研究。本文方法将WBC分类精度进行了逐步的提升,分类准确率由最初微调训练的83.26%,随着迁移模型的优化提升为90.43%,最后通过NN和SVM组合分类器,再次提升为93.52%。通过实验得出以下结论。
(1)迁移学习方法提高了特征提取强度和模型泛化能力,避免了自搭建模型和高迭代训练问题。
(2)通过NN和SVM融合提高WBC病理图像分类精度。
在今后的研究中,将尝试对更多种类WBC进行分类识别,提升模型训练效率和识别准确度。综上所述,本文中提出的基于迁移学习的NN和SVM融合的白细胞分类方法,可以在临床诊断中帮助医生提高诊断的效率和准确性,具有一定的临床意义。