APP下载

基于多卷积神经网络融合的当归病虫害识别方法

2024-03-20郭标琦王联国

江苏农业学报 2024年1期
关键词:集上准确率卷积

郭标琦, 王联国

(甘肃农业大学信息科学技术学院,甘肃 兰州 730000)

自古以来,当归就有药王的美誉,“十药九归”更是说明了当归在中医药中的重要性。当归在补血活血、免疫调节、抗抑郁、保护肝脏、抗肿瘤、抗衰老、美白和治疗黄褐斑等方面都有显著作用[1-4]。随着经济的发展,人们对当归的需求也在急速增加,当归种植规模也在不断扩大,然而褐斑病、灰霉病、病毒花叶病、白斑虫害等常见病虫害问题愈发严重,使得当归产量和质量下降,严重制约了当归产业的发展[5]。因此,寻找一种能够快速准确地识别当归病虫害的方法,及时发现并治疗病虫害对当归产业发展具有重大意义。

自卷积神经网络(CNN)提出以来,人工神经网络进入了快速发展期,涌现出各种优秀模型[6-7],其在图像识别领域表现出的速度和准确率远远超过传统机器学习,近年来在农作物的病害识别领域也取得了优异的成绩。Ni等[8]基于ResNet[9]提出了多层特征联合ResNet(MLFU-ResNet)用于农作物病害的识别分类,并对损失函数进行修正,结果显示,MLFU-ResNet的分类精度比ResNet提高了0.8%。Qiu等[10]为了解决传统模型识别速度慢、容易过拟合,以及对数据集的要求较高的问题,使用迁移学习的方法,将VGG16[11]模型学习到的知识迁移到水稻病害识别中,利用线性判别分析对网络参数进行微调,从而实现了水稻病害的快速、准确识别。赵兵等[12]通过将传统神经网络的全连接层替换为卷积层提取特征,并通过特征上采样还原图像,通过特征整合对葡萄病害叶进行精细分割。马俊红等[13]通过将三维注意力加权模型与InceptionNetV3[14]网络融合,对烟草病虫害识别的平均准确率达到85.56%。樊湘鹏等[15]通过对Faster R-CNN网络进行适应性改进,对玉米叶片病害进行识别。虽然目前单一神经网络模型在各个方面已经取得了很好的成绩,但是准确度、泛化能力还有待提高,同时在小样本情况下的表现不尽如人意。目前针对当归病虫害识别的研究少之又少,无论是基于传统机器学习方法还是应用更优秀的人工神经网络,普通当归种植户对病虫害种类及相应症状的了解很不全面。随着种植规模的扩大,种植户依靠传统手段已经不能及时发现、处理病虫害。由此可见,目前病虫害问题严重阻碍了当归产业的发展。

为了提升分类模型的分类效果,充分利用卷积神经网络提取的高级语义特征,本研究提出了一种多卷积神经网络模型融合的方法。使用迁移学习思想,在当归病虫害数据集上训练多个单模型,并挑选在数据集上表现性能最好的4个模型作为本研究的基学习器,使用集成学习中的Stacking思想,使多种不同神经网络模型与XGBoost算法融合。使用XGBoost作为整体模型的次级分类器,其基于梯度提升决策树在代价函数中加入正则项,使学习出来的模型更加简单。本研究旨在解决样本量较小时,卷积神经网络对当归病虫害分类准确率较低的问题,从而为当归种植业提供一种快速准确的病虫害识别方法。

1 基本原理

1.1 卷积神经网络

卷积神经网络是深度学习的代表算法之一,由于其具有端到端的输入输出,位移、缩放、扭曲不变性及隐形的特征提取过程等特点,自1998年第1个典型架构LeNet-5[16]出现以来,得到了快速发展。卷积神经网络的基础结构包括输入层、卷积层(卷积层和激活函数层)、池化层、全连接层、输出层,详见图1。

图1 卷积神经网络的基础结构

随着卷积深度的增加,网络能提取的图片特征越来越高级。但是,当网络深度增加到一定程度后,随着深度的增加,梯度消失、过拟合等问题出现,使得深层网络难以训练。Szegedy等[17]提出的Inception结构减少了网络的计算量,提高了网络性能,并且有效解决了过拟合问题。Simonyan等[11]提出的VGG网络,在具有相同感受野的情况下提升了网络的深度,能有效解决过拟合问题,并减少了网络计算量,提高了网络性能。He等[18]提出了ResNet网络结构,使得网络的深度即使上升一个量级也不会出现深度网络的退化问题。DensNet网络在减少参数量的同时,实现了更优的性能[19]。

1.2 迁移学习

迁移学习是一种学习策略[20],由于直接对目标域进行学习成本太高或者无法学习出有效模型,转而使用在其他域学习出来的知识,尽快、更准确地学习新知识[21-23]。迁移学习通常采用固定特征提取层参数、微调分类层参数(图2),把学习到的知识迁移到目标样本域,解决小样本背景下模型不能有效学习样本知识的问题。同时使模型能够更快收敛,取得更好效果。

图2 卷积神经网络的迁移学习

1.3 集成学习

单个网络模型很难实现高精度的分类任务,并且在小样本的情况下容易出现过拟合现象。集成学习通过构建并结合多个学习器来完成学习任务,可以获得比单一模型更高的精度和更好的泛化性能[24-26]。主要的集成学习策略包括Bagging、Bosting、Stacking[27]。其中,Stacking中基学习器利用整个训练集进行训练,元学习器将从基学习器学习到的特征或预测结果作为特征进行训练,能够提升整体模型的预测效果,同时具有更优的泛化性能。因此本研究选择Stacking[28]作为集成学习方法,算法如下:

输入:训练集D={(x1,y1),(x2,y2),…,(xm,ym)};

基学习器算法:H1,H2,…,HT;

元学习器算法:L.

过程:

1:fort=1,2,…,Tdo

2:ht=Ht(D);

3:end for

4:D′=Ø;

5:fori=1,2,…,mdo

6:fort=1,2,…,Tdo

7:Zit=ht(xi);

8:end for

9:D′=D′∪[(zi1,zi2,…,ziT),yi];

10:end for

11:h′=L(D′);

输出:P(x)=h′[h1(x),h2(x),…,hT(x)]

2 基于XGBoost的多卷积神经网络模型

2.1 XGBoost

极度梯度提升[29](eXtreme gradient boosting, XGBoost)通过将形式为特征树的各个弱分类器的结果进行累加作为预测值,用下一个弱分类器去拟合预测值和真实值之间的误差。该算法的核心思想是在迭代过程中,不断进行特征分裂,生成特征树,通过枚举法搜索最优的弱分类器(分类树);使特征树群的预测值尽量接近真实值,以此来最小化损失函数。特征树群的集成模型如公式(1)所示:

(1)

模型的预测精度由模型的偏差和方差共同决定,由预测值和真实值之间误差决定的损失函数代表模型偏差,在目标函数中添加正则项可减小模型方差,防止过拟合。XGBoost算法的目标函数定义如公式(2)所示:

(2)

(3)

式中:γ为叶片结点参数,用来控制叶片结点数量;T为模型所有决策树中叶片结点总数量;结点λ用来控制叶片结点得分,使叶片结点不能获得较高权重;w为所有叶片结点权重向量。

在模型迭代过程中,目标函数的更新见公式(4):

(4)

(5)

(6)

(7)

(8)

2.2 多卷积神经网络模型的建立

如图3所示,本研究提出的基于XGBoost的多卷积神经网络模型主要包括数据预处理、基分类器训练、集成学习3个模块。在数据预处理阶段,对采集的当归病虫害数据集进行清洗和挑选,按照3∶1∶1的数据分布,分成训练集、验证集和测试集。由于数据集样例较少,采用随机对比度调整、随机翻转、随机旋转方法对训练集进行数据增强。基分类器训练时运用迁移学习的思想,使用每个模型的特征提取部分在ImageNet上训练的权重。采用5-折交叉验证的方法对每个模型分类部分进行训练,减小过拟合的风险。使用验证集挑选在当归病虫害样本数据集上性能最好的4个模型,作为基分类器。集成学习模块采用Stacking结合策略,元分类器采用XGBoost算法,将前一部分训练的输出结果进行融合,作为元分类器的输入进行训练,输出最终分类结果。

3 结果与分析

为评估本研究提出的基于多卷积神经网络融合的方法对当归病虫害识别的性能,用本研究提出的方法与单个CNN模型进行对比,并与传统融合算法进行对比以证明本研究提出的基于XGBoost的多模型融合算法的有效性。

3.1 数据集的构建

岷县作为中国当归的主产地,2020年当归种植面积达2×104hm2,外销出口量达到全国外销出口总量的70%。因此选择岷县当归作为本研究中数据集的来源。

通过对当归不同生长时期的数据进行3次采集,发现常见病虫害包括灰霉病、褐斑病、病毒花叶病、白斑虫害。采集包括健康叶在内的5种叶片,每种叶片各采集500张,共采集2 500张。使用双线性插值法将图片调整为符合网络输入的大小,Xception、InceptionNetV3和InceptionResNetV2的输入图像尺寸为299×299,VGG19的输入图像尺寸为224×224。数据集部分示例见图4。

3.2 数据及预处理

采用构建的当归病虫害数据集进行模型的训练与评估。将数据集按照3∶1∶1的比例划分为训练集、验证集和测试集。数据预处理包括数据增强和数据归一化,数据增强主要是为了解决小样本下模型无法训练或者训练过拟合的问题。模型在训练时,数据增强采用随机调整对比度(0.3),有30%的概率对输入图片进行随机对比度调整;对图像进行水平方向上的随机翻转;随机旋转(0.2),即图片在(-0.2×360,0.2×3 600)角度范围内随机旋转。对训练数据集进行3倍扩充,不对测试数据集进行增强处理。数据增强后,在训练集中,每种病虫害的图像有1 500张,在测试集中,每种病虫害的图像有100张。数据预处理时采用逐样本均值消减(Per-example mean subtraction)法,即在每个样本上用三通道像素值减去图像三通道像素的均值。这种归一化方法可以移除图像的平均亮度值,使模型更加关注图像的内容。使用在ImageNet上训练的参数作为模型的初始权重参数,用来训练当归病虫害识别的CNN模型。

图3 基于XGBoost的多卷积神经网络分类模型

图4 数据集示例

3.3 超参数与评价指标

卷积神经网络模型的优化器选择Adam优化器,学习率设置为0.001,损失函数的计算采用交叉熵损失函数(Categorical_Crossentropy)。XGBoost模型的max_depth(最大树深)设置为15,学习率设置为0.01,最大迭代次数为2 000次。

评价指标选择准确率(ACC)和基于宏查准率(macro-P)、宏查全率(macro-R)综合评价模型的宏F1(macro-F1)值。

(9)

式中,f0为模型正确预测的样本数,f为总样本数。

(10)

3.4 试验分析

首先进行基模型的评估与筛选,本研究通过试验对比了InceptionNetV3、InceptionResNetV2、Xception、VGG19、ResNet50、DenseNet201和EfficientNetB4在当归病虫害数据集上的表现。从表1可以看出,InceptionResNetV2具有最低的准确率和F1值,ResNet50具有最高的准确率和F1值。ResNet50、DenseNet201、InceptionNetV3、VGG19的性能表现整体优于其他网络,因此在进行模型融合时选用上述4个性能较优的网络作为基学习器进行集成,其中ResNet50具有最高的识别准确率,因此进行模型融合时优先选用ResNet50模型。

表1 不同模型在当归病虫害数据集上的识别结果

用上述试验数据对基学习器进行筛选,进行后续模型融合试验,InceptionNetV3标记为M1、VGG19标记为M2、ResNet50标记为M3、DenseNet201标记为M4。试验对不同融合模型进行比较,同时对本研究所提出的模型融合方法与逻辑回归、决策树、随机森林、支持向量机等进行比较,结果如图5所示。

M1:InceptionV3;M2:VGG19;M3:ResNet50;M4:DenseNet201。LR:逻辑回归;DT:决策树;RF:随机森林;SVM:支持向量机;XGBoost:极致梯度提升。

图5a使用XGBoost作为融合方法(本研究融合方法),分别对2个模型、3个模型和4个模型进行融合,验证模型融合的有效性。模型融合时优先采用在当归病虫害数据集上表现性能最佳的模型。M3+M4为双模型融合,M1+M3+M4为三模型融合,M1+M2+M3+M4为四模型融合。由图5a可知,随着模型融合数量的提高,模型的准确率有所提升,四模型融合时的准确率较三模型融合时的准确率有较大提升。图5b对四模型(M1+M2+M3+M4)采用逻辑回归(Logistic regression)、决策树(Decision tree)、随机森林(Random forest)、支持向量机(Support vector machine)、极致梯度提升(XGBoost)方法进行融合。由图5可知,本研究提出的基于XGBoost的融合方法融合的多卷积神经网络模型在当归病虫害识别任务中的准确率高于单卷积神经网络模型,同时优于其他融合方法融合的模型,验证了本研究方法的有效性。

不同融合方法融合的模型在当归病虫害数据集上的识别结果见表2。可以看出,基于XGBoost方法融合的模型的查准率、查全率和F1值均优于其他融合方法融合的模型。

表2 不同融合方法融合的模型在当归病虫害数据集上的识别效果

由图6可以看出,对于种类0(白斑虫害),使用随机森林、本研究融合方法融合的模型取得的最高识别精度达到99%。对于种类1(褐斑病),本研究融合方法融合的模型识别精度达到了96%,远远高于其他融合方法融合的模型,其他融合模型的最高识别精度仅为91%,并且种类1(褐斑病)易被误识别为种类2(灰霉病)或种类3(健康叶)。本研究提出的融合方法融合的模型在种类2(灰霉病)的识别上效果最好,达到97%,略高于其他融合方法融合模型的96%,同时种类2(灰霉病)易被误识别为种类1(褐斑病)或种类3(健康叶)。对于种类3(健康叶),本研究提出的融合方法融合的模型分类准确率达到100%,同时其他融合方法融合的模型分类准确率也较高,即健康叶特征较为明显,比较好分类。本研究提出的融合方法融合的模型对种类4(病毒病)的分类与随机森林和决策树融合方法融合的模型的准确率一致,达到95%,同时种类4(病毒病)的误分类主要是误分为种类3(健康叶)。根据混淆矩阵,本研究融合方法融合的模型在当归病虫害识别的任务中对于每个种类的分类较为稳定,同时准确率较高,均高于或等于其他融合方法融合的模型。

图中数据为识别精度。白斑虫害标记为种类0,褐斑病标记为种类1,灰霉病标记为种类2,健康叶标记为种类3,病毒病标记为种类4。

4 结 论

本研究针对目前在当归病虫害识别方面没有有效的分类及鉴别方法的问题,采集并构建了当归病虫害数据集,建立了1种基于XGBoost的多卷积神经网络模型,实现了对当归病虫害的识别和分类,取得了较高的识别率。本研究得出的主要结论如下:(1)通过迁移学习和5-折交叉验证的方法,在当归病虫害数据集上训练了ResNet50、DenseNet201、InceptionNetV3、VGG19、Xception、InceptionResNetV2和EfficientNetB4等卷积神经网络模型,其在数据集上的识别准确率为别为96.05%、94.47%、92.89%、92.63%、91.32%、86.58%、92.37%。对比不同模型,挑选表现性能较好的ResNet50、DenseNet201、VGG19和InceptionNetV3 4个模型作为模型融合的基学习器。(2)提出了基于XGBoost的多卷积神经网络模型融合方法融合模型对当归病虫害进行分类,该融合方法融合的模型在当归病虫害数据集上的查准率达到98.33%,高于单个模型的查准率,同时高于其他融合方法融合模型的查准率。相对于单模型,本研究提出的融合方法融合的模型提高了当归病虫害识别准确率,提供了一种快速准确识别当归病虫害的方法,有助于当归产业的发展。

同时本研究也有不足之处,多个卷积神经网络增加了计算量,数据量较少。扩充数据集并且纳入更多种类的当归病虫害、开发基于移动设备的应用程序是下一步研究的重点。

猜你喜欢

集上准确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
复扇形指标集上的分布混沌