APP下载

基于卷积神经网络的白细胞二分类的研究

2022-06-23崔兆文

智能计算机与应用 2022年6期
关键词:适应度卷积白细胞

崔兆文,王 武

(贵州大学 电气工程学院,贵阳 550025)

0 引言

人体外周血是人体的不可或缺的成分,血液细胞数量的检测是评估健康状况的一项重要的指标。血液细胞基本分为3 种,分别是红细胞(Red Blood Cell,RBC)、白细胞(White Blood Cell,WBC)和血小板。传统的血细胞仪耗时较长,并且会破坏血液中血细胞的形态,不便于医生对血液细胞的形态进一步观察。

随着计算机水平的不断提高,机器学习与深度学习迎来了快速的发展,特别是在图像处理领域得到了越来越广泛的应用。本文主要研究血液中白细胞二分类的问题,即血液中白细胞分为有粒白细胞(又称为粒细胞)和无粒白细胞。

赵晓晴等人的研究将血液细胞色彩空间从RGB 转到HSV,从而在HSV 图层进行分析,同时利用基于距离的分水岭算法对图像进行分割。贾洪飞利用HIS 色彩空间对白细胞进行定位,同时利用深度学习网络完成对白细胞进一步的分类。Bodzás 等人提出一种基于传统数字图像处理技术和机器学习算法的自动识别急性淋巴细胞白血病的方法,引入三阶段过滤算法获取最佳分割结果,应用机器学习分类器、人工神经网络和支持向量机完成分类工作。Chen 等人将特征提取和深度学习与光子时间拉伸实现的高通量定量成像相结合,捕获定量光学相位和强度图像,并提取单个细胞的多种生物物理特征,这些生物物理测量形成一个多维特征空间,用于细胞分类。

本文使用改进的卷积神经网络对人体外周血白细胞进行分类,并在卷积神经网络的基础上引入衰减因子,防止卷积神经网络出现过拟合的情况,再通过粒子群算法优化衰减因子参数。数据集为Kaggle上2018 年发布的数据集。

1 理论与方法

改进卷积神经网络方法血液白细胞图像的总体分布框图如图1 所示。由图1 可知,首先设计初始的卷积神经网络,然后导入通过预处理的外周血白细胞图片的数据集。在原有卷积神经网络的基础上引入衰减因子,防止卷积神经网络出现过拟合的情况,同时利用粒子群算法对衰减因子的参数进行优化,找到最适合卷积神经网络的衰减因子的参数。每一次衰减因子参数的更新都需要重新运行一次网络。接下来,本文拟介绍卷积神经网络(Convolutional Neural Networks,CNN)结构设计、图像预处理、学习率衰减以及粒子群算法。

图1 改进卷积神经网络方法血液白细胞图像的总体分布框图Fig.1 General distribution block diagram of blood leukocytes images by improved convolutional neural network method

1.1 卷积神经网络结构设计

本文研究基于卷积神经网络的人体外周血白细胞二分类的方法。卷积神经网络是一类含卷积计算的前馈神经网络,是深度学习的代表算法之一,卷积神经网络具有表征学习的能力,能够对输入信息进行平移不变的分类。

卷积神经网络一般由输入层、卷积层、池化层、全连接层和输出层组成。其中,卷积层是实现卷积神经网络特征提取功能的核心,相当于特征提取器。池化层能够压缩数据和减少提取出图像中的特征,进而压缩图片。全连接层的输入是将卷积层和池化层提取的特征进行加权,将特征空间通过非线性变换映射到样本标记空间。

卷积神经网络架构如图2 所示。研究中,建立初步卷积神经网络框架,卷积神经网络由1 个输入层、6 个卷积层、2 个池化层、1 个全连接层以及1 个输出层组成。本文卷积核的大小均为3∗3,步长均为1,采用“SMAE”方式,保证输入图片和输出图片大小一致。本文池化核大小为2∗2,步长为2,采取最大池化的方法。文中设计的卷积神经网络,以二分类为例,得到的每层信息见表1。由表1 可知,第一个卷积层的卷积核个数为32,第二个卷积层的卷积核个数为64,第三个卷积层的卷积核个数为128,第四个卷积层的卷积核个数为192,第五个卷积层的卷积核个数为128,全连接层神经元个数为256,输出层神经元个数为2。

图2 卷积神经网络架构图Fig.2 Architecture of convolutional neural network

表1 二分类卷积神经网络信息表Tab.1 Information table of binary convolutional neural network

本文选取的作为神经元在卷积层与全连接层的激活函数的数学公式可写为:

其中,max 表示取0 和中的最大值。

本文选取的作为神经元在输出层的激活函数,可使得输出层神经元输出映射到(0,1)区间内,方便损失函数的建立。该激活函数的数学公式为:

其中,z表示输出层第激活函数的输入。

本文选取的作为卷积神经网络的损失函数的数学公式具体如下:

1.2 图像预处理

数字图像的采集是在复杂的环境中进行的,在采集与传输的过程中,难免会引入噪声,为了能够对血液图像做到更好的识别,即需对原始血液图像进行处理。所以首先需要进行图像滤波。图像滤波的方式主要有2 种:线性滤波和非线性滤波。其中,线性滤波的方式、比如均值滤波,对高斯噪声有较好的抑制作用,但是并不能较好地保护图像的细节信息,导致图片变得模糊。非线性滤波、比如中值滤波,能够较好地保护图像的细节信息,保持图片的清晰度。本文选用的是中值滤波。

在中值滤波后,需要对图片的尺寸进行处理,原图像是640∗480∗3 像素,本文将图片压缩成56∗56∗3 像素的图片,方便计算机处理与识别。

1.3 学习率衰减

在卷积神经网络学习的过程中,随着训练的进行、学习率将逐渐衰减,这样有利于卷积神经网络学习模型的建立。在训练过程开始时,使用较大的学习率值,可以使结果快速收敛,随着训练的进行,逐步降低学习率和收敛的速度,有助于找到最优结果。目前,比较常用的2 种学习率衰减方法:线性衰减和指数衰减。本文采用的是指数衰减的方式。指数衰减的数学定义的公式表述为:

其中,表示当前学习率;_表示初始学习率;表示衰减指数;表示当前迭代次数;_表示调整系数;⎿」 表示对符号内的数值向下取整。

利用这种衰减方式进行学习率的更新,可以使得学习率的更新速度较慢,容易建立识别率较高的深度学习模型。

1.4 粒子群算法

粒子群算法(Particle Swarm Optimization,PSO),从随机解出发,并利用迭代寻找最优解,通过适应度来评定解的品质。这种算法具有实现容易、精度高、收敛快等优点。

在维空间中,设有个粒子,粒子的位置为x=(xxx,…,x),将x代入适应函数(x)可以求取函数值;粒子的速度为v=(vvv,…,v),粒子个体经过的最佳位置:pbest=(ppp,…,p),种群所经历的最佳位置gbest=(,,,…,g),通常迭代中粒子的速度和位置应该被限制,即在第(1 ≤≤)维的位置变化范围限定 在 []内,速度变化范围限定在[]内,粒子在第维的速度更新公式见如下:

由以上公式推知,粒子速度的更新与粒子先前的速度有关,粒子当前位置与粒子最佳位置的偏差以及粒子当前位置与种群最佳位置的偏差有关。

粒子群算法优化流程如图3 所示。由图3 可知,首先对粒子群进行初始化,包括群体的规模大小、粒子的随机位置以及粒子的初始速度。根据适应度评价函数,确定每个粒子的适应度,每个粒子将其当前适应度与历史最佳适应度做比较,如果当前适应值比历史最佳适应值更高,更新当前位置为粒子历史最佳位置;同样地,将粒子当前位置与种群最佳位置进行比较,如果当前适应度高,更新当前位置为粒子历史最佳位置。根据式(6)和式(7)更新粒子的速度与位置。继续根据适应度评价函数来判断,确定更新后的参数。继续反复进行参数的更新,直到满足条件或达到最大迭代次数。

图3 粒子群算法优化流程图Fig.3 Flow chart of Particle Swarm Optimization algorithm

本文主要是使用粒子群算法对衰减因子中的_、和_参数进行优化。同时,本文选取的粒子群优化算法的适应度函数可写为如下形式:

其中,()表示适应度函数;Loss()表示训练数据的损失函数; Loss()表示测试数据的损失函数;表示衰减因子(_,,_)三个参数的集合变量。

为了减少神经网络每次初始参数不一致带来的偏差,取同一参数下3 次神经网络的损失函数的平均值作为某一粒子的适应度函数。同时,当粒子参数一致时,能够直接获取其适应函数,不需要进行复杂的计算就能得到其适应度函数。

2 实验数据与结果分析

图像处理与分析实验的结果是基于Tensorflow的Kears 深度学习框架下进行的,操作系统是Windows10,编程语言为Python,使用的编译软件是Pycharm 与Spyder。硬件配置的处理器为Intel(R)Core(TM)i5-9400F CPU,运行内存为16 G,显卡型号为NVIDIA GeForce GTX 1650。

2.1 实验数据

数据集为Kaggle 上发布的数据集,数据集中原始图片共计400 张,数据集发布者通过数据增强手段将400 张原始图片拓展成12444 张图片。在原始数据中,无粒白细胞图片为54 张,有粒白细胞图片为346 张,无粒白细胞与有粒白细胞数据相差较大,这是上文中提到的要改进损失函数的原因。发布拓展后的图片训练集与测试集,训练数据图片9957 张,测试数据图片2487 张。在训练集中,无粒白细胞图片为4961 张,有粒白细胞图片为4996 张;在测试集中,无粒白细胞图片为1240 张,有粒白细胞图片为1247 张。血液细胞的示意如图5 所示。

图4 血液细胞原始图片Fig.4 Original picture of blood cells

图5 不同模型下的损失函数和准确度Fig.5 Loss function and accuracy under different models

2.2 模型对比

本文做了3 种网络模型的对比实验,分别是:本文提出的网络、GoogLeNet 网络和ResNet 网络。实验对比结果如图6 所示。由图6 可知,本文的算法相较于GoogLeNet 网络无论在损失、还是在准确度上都有着较为明显的提升,和ResNet 网络在训练集的运行效果上相差不大。在测试集上,本文提出的网络优于ResNet 网络。结果说明本文提出的网络无论在训练集、还是测试集均有着较好的效果,即本文模型要优于GoogLeNet 网络和ResNet 网络。

图6 卷积神经网络模型混淆矩阵Fig.6 Convolutional neural network model confusion matrix

本文建立的模型混淆矩阵如图7 所示。图7中,‘A’表示无粒白细胞,‘B’表示有粒白细胞。由图7 分析可知,(,)=1198 表示血液图片中实际标签与预测标签均为无粒白细胞有1198 个,识别正确;(,)=1201 表示血液图片中实际标签与预测标签均为有粒白细胞有1201 个,识别正确;(,)=42 表示实际标签为有粒白细胞、但识别标签为无粒白细胞有42 个,识别错误;(,)=46 表示实际标签为无粒白细胞、但识别标签为有粒白细胞有46 个,识别错误。卷积神经网络模型对无粒白细胞识别率为96.61%,对有粒白细胞识别率为96.56%,识别效果基本一致。

3 结束语

外周血白细胞检测作为一项医院的常规检查,对于许多疾病的诊疗判断有着重要的作用。实验结果表明,改进的神经网络对血液细胞有较好的识别效果。本文研究基于卷积神经网络框架完成血液白细胞二分类算法的设计,白细胞二分类准确度在96.46%,基本能够满足白细胞分类识别的要求。能够有效地减少相关医师的工作量,提高工作质量。但是众所周知,通常对医疗图像分类的准确率都有较高要求,继续提高模型的准确率是一个值得长期研究的问题。本文仅研究了外周血白细胞的二分类卷积神经网络模型的搭建,对疾病的检测有一定的帮助,未来可以探索外周血白细胞五分类,以及异常白细胞识别的研究。

猜你喜欢

适应度卷积白细胞
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
心力衰竭患者白细胞介素6、CRP表达水平与预后的相关性探讨
基于深度卷积网络与空洞卷积融合的人群计数
白细胞降到多少应停止放疗
白细胞减少是免疫力降低了吗?
卷积神经网络概述
启发式搜索算法进行乐曲编辑的基本原理分析
基于改进演化算法的自适应医学图像多模态校准
白细胞总是低是有病吗?