0 引言
蝴蝶隶属于鳞翅目,是昆虫纲第二大目[1],目前全世界已知有数量多达20余万种的鳞翅目昆虫,其中蝶类约占鳞翅目昆虫的1/10。蝴蝶在自然界中分布较广,并且对自然环境变化有着较高的敏感度,是具有生态学和生物地理学探针功能的生物,故可以通过蝴蝶的生活状态表现来指示大气环境变化。其次,蝴蝶对于特殊自然环境也有很好的指示作用,是森林干扰的有效指示物种,也可以反映海洋、湖泊、高原等特殊自然环境生态系统的健康程度[2]。不同种类的蝴蝶对不同的气候与环境做出的响应也不尽相同,基于蝴蝶对气候特殊的敏感性,人类可以根据蝴蝶生活状态和习性分析气候与环境的变化,国内外学者对蝴蝶进行了深入的研究。大量研究结果表明,不同种类的蝴蝶在地理分布范围、生活史特性及生物多样性变化等方面均存在差异,同时不同种类的蝴蝶对于生态系统的指示作用也不同。故蝴蝶分类工作是蝴蝶研究的首要工作,根据蝴蝶的图片样本正确地对蝴蝶样本进行准确分类是进一步研究蝴蝶地理分布范围、生活特性以及多样性的基础,为研究不同种类蝴蝶对于气候与环境变化会做出何种不同的指示提供了有力的支持。
从发现蝴蝶的研究价值至今,国内外对于蝴蝶的研究从未停止,但由于自然环境中的蝴蝶特征不易捕捉,进行研究比较困难,故研究相对较少。蝴蝶分类工作主要根据蝴蝶的体态、翅膀的颜色与花纹及触角的形态与长度来进行,由于大部分摄影师们在拍摄蝴蝶照片时更多地关注美感与角度,故野外自然环境中的蝴蝶照片的体态、翅膀、触角等重要特征总被遮挡,蝴蝶翅膀的花纹也会因图像质量而不清晰,使得作为蝴蝶分类依据的蝴蝶特征不能满足分类的基本需求,而拍摄大量的完全适合蝴蝶分类研究的照片需要付出很大人力物力。另外,不同蝴蝶种类的分类特性数据的获取也非常困难,只有专业的蝴蝶研究学家才能给出蝴蝶图像样本确切的种类,在获得所有蝴蝶图像对应的准确的蝴蝶种类后,蝴蝶分类的工作才可以进行。在之前对于蝴蝶的各类研究中,蝴蝶分类的工作大都需要专业的具有大量经验的生物学家来鉴别,并需要多次反复鉴别才可以保证鉴别的准确率,耗费了大量的人力与时间,这对于进一步的蝴蝶研究产生了很大阻碍,在一定程度上影响了人类对蝴蝶的探索[3]。
针对蝴蝶分类技术,国内外一部分研究学者为改变人工鉴别蝴蝶种类现状,提高蝴蝶种类识别效率和识别准确率,分别提出过一些基于人工智能的自动蝴蝶分类的算法。在国内,LIANG等对国内外蝴蝶研究做了深入研究,并利用爬虫获取了大量网络中的蝴蝶图像,增加了数据集的样本个数,通过YOLOv3网络对蝴蝶进行了自动识别[4]。LIN等通过使用一种带跳层连接的卷积神经网络,对包含56种蝴蝶的2万多张蝴蝶标本照进行了种类识别研究[5]。谢娟英等建立了蝴蝶数据全集,该数据全集包含了多类别蝴蝶图像,并且收录了自然界中的蝴蝶图像与标本类蝴蝶图像,实验结果证实了深度学习目标检测框架Faster-CNN对蝴蝶图像自动检测和物种鉴定有较为优异的效果,并实现了对于生态中蝴蝶和标本类蝴蝶图片的准确识别,将识别准确率提升到76.1%[6]。在蝴蝶自动识别系统之后,谢娟英等再次对蝴蝶分类算法进行了改进,对于生态中的蝴蝶图片,加入了2种注意力机制,DESA(direct squeeze-and-excitation with global average pooling)与DESM(direct squeeze-and-excitation with global max pooling),改进了经典算法RetinaNet,引入了可变卷积,并提升了模型的泛化能力[7]。LI等使用了可变卷积对resnet-101做出了改进,强化神经网络对蝴蝶特征的提取,在同硬件配置情况下达到了较高的识别准确率[8]。国外专家也在蝴蝶分类上做了许多研究,XIN等在进行蝴蝶种类识别中也将蝴蝶图片分为了标本图片和生态中图片两种,提出了结合扩张残差网络、挤压与激发(SE)模块和空间注意(SA)模块的网络,该网络对生态系统中的蝴蝶有较好的分类效率[9]。KARTIKA等首先使用掩模技术过滤了生态环境中的自然背景,处理了包含10种蝴蝶的890张生态蝴蝶图像作为实验数据,使用传统SVM分类算法,得到66.0%的识别准确率[10]。
国内外对于蝴蝶分类的研究中,部分学者通过简单模型无法得到较高的识别准确率,其他大多数学者均使用大型框架或多层深度神经网络对样本进行训练,对计算机硬件配置较高,且具有训练时间较长的缺陷,在提升识别准确率的情况下以训练时长作为代价。通过对前人蝴蝶分类算法的研究与对经典算法的分析,本文提出通过对经典算法模型进行迁移学习并加以改进与优化,对经典网络AlexNet进行轻量化改进,通过修改卷积层、优化特征选择等措施缩减网络复杂度,减少训练时长,并使用生态环境中的蝴蝶图片与标本类蝴蝶图片共20个种类的蝴蝶进行训练,最终在保证识别准确率的前提下缩短了网络训练时长,提升了网络性能。
1 迁移学习及模型选择 1.1 卷积神经网络卷积神经网络(convolutional neural network,CNN) 建立在前馈神经网络(feedforward neural networks)之上,并具有一定的深度结构,是深度学习(deep learning)的代表算法之一[11-13]。卷积神经网络中引入的卷积计算,可以简化全连接网络的运算量,其具有局部链接、权重共享等特性,使用卷积神经网络可以在图像处理中起到很好的效果[14]。在卷积神经网络提出之前,一般使用全连接网络来处理图像,但伴随着需求量的增加,图像处理日渐普及,神经网络越来越深,数据量与模型规模进一步增大,继续使用全连接进行图像处理会有网络参数过于巨大、局部特征不变等缺点,而卷积神经网络通过卷积核对处理后的图像做卷积运算,可以基本解决这些问题。
感受野机制在卷积神经网络的诞生中起到了启发性作用,基于生物学中的感受野机制,卷积神经网络是由不同卷积核大小的卷积层、下采样层、全连接层构成,并将其按照不同排列顺序与不同的网络层数组成的前馈神经网络。相比于全连接网络,卷积神经网络具有更少的参数,从而起到了简化运算的作用。由于图像通常都是2维的,所以对图像进行卷积运算需要使用2维卷积,其卷积公式为
![]() |
(1) |
其中,ω为权重,x为每层图像的输入值,经过2维卷积运算后得到的结果用y表示。图像通过卷积层的卷积操作后可以得到该图像的特征映射,可以利用某些工具将这些特征映射可视化,从而根据特征映射情况修改卷积神经网络的结构。为了增强网络的表示能力和学习能力,在卷积层后通常需要加入一个激活函数,要求其为非线性函数、连续且可导(如ReLU函数)且具有很好的稀疏性。在卷积层之后,根据数据需求与实验结果,通常伴有下采样层,用于在特征提取后进行特征选择,在卷积层特征提取之后使用不同类别的下采样层可以减少一部分神经元数量,而达到简化数据量、简化网络运算规模的效果。
假设输入的特征映射组为3维张量
常用的下采样有2种:
1) 最大下采样层(max-pooling)。在图像处理中,最大下采样层对一个图像区域取其最大活性值,用该最大值表示此区域,再通过移动固定步长对图像其他区域进行最大下采样操作,公式为
![]() |
(2) |
其中,xi为区域Rm,nd内每个神经元的活性值,ym,nd为该区域的最大下采样值。
2) 均值下采样层(mean-pooling)。均值下采样层对一个图像区域取其平均活性值,用该平均值表示此区域,再通过移动固定步长对图像其他区域进行均值下采样操作,公式为
![]() |
(3) |
其中,xi为区域Rm,nd内每个神经元的活性值,lm,nd为该区域内神经元个数,通过对区域内所有神经元进行求和,再与神经元个数进行除法运算,则可以得到该区域的均值下采样值ym,nd。
通过对每一个特征输入Xd在特定区域内进行子采样,即可得到池化层的输出特征映射Yd={ym,nd}。
通过下采样操作不但可以有效地减少神经元数量,简化运算,还可以使网络更加健壮,对一些小的局部特征改变保持不变性,拥有更大的感受野。
本文分别选取了4种卷积神经网络进行蝴蝶图像分类预实验,分别为AlexNet、ZFNet、VGGNet-16和ResNet152。AlexNet和ZFNet均由5层卷积层和3层全连接层构成,VGGNet-16是16层神经网络,而深度神经网络ResNet 152引入了残差网络,使用了多层卷积层与下采样层以训练神经网络,这3种网络均由不同的卷积层、下采样层与全连接层交叉堆叠而成,并且具有较好的图像分类效果。目前的卷积神经网络的建立多使用小卷积核及深层的网络结构,对硬件要求较高且训练时间较长,不具有轻量化的优势。故本文选择较为经典的浅层卷积神经网络,并对其进行优化,使得优化后的浅层卷积神经网络可以更迅速且准确地对蝴蝶图像进行分类,更有益于之后的蝴蝶研究。
1.2 迁移学习迁移学习所针对的是自身没有条件获得大量训练数据的项目,可以先对已学习好的模型进行复制、改动,通过优化后的模型对本项目进行应用。合理利用迁移学习,可以将相对成熟的模型应用于一些新领域的项目中,迁移学习符合计算机领域“开源”的理念,能够更快速地普及AI(artificial intelligence),使每个数据模型都能发挥更大的作用。
迁移学习对于新领域任务模型的建立有着很好的辅助效果,即新任务对旧模型的复用。模型复用意为把A任务开发的模型作为初始点,按照B任务对模型的需求对A任务中的成熟模型进行优化,并使用在B任务的模型建立中[15]。模型复用在图像处理领域上也有很好的作用,可以在成熟的神经网络模型的基础上,针对新的数据集对原模型进行修改与优化,再将其迁移在新模型之上,从而避免了大量繁重的参数学习[16]。传统机器学习模型建立示意图如图 1所示,迁移学习模型建立示意图如图 2所示。
![]() |
图 1 传统机器学习模型建立示意图 Fig.1 Schematic diagram of traditional machine learning model establishment |
![]() |
图 2 迁移学习模型建立示意图 Fig.2 Schematic diagram of transfer learning model establishment |
图 1中为传统机器学习流程,3个不同的任务通过各自学习,得到3种不同的学习模型;图 2为迁移学习的思想模型,可以使用2种不同任务学习得到源模型,并在优化后复用于目标模型。显然,使用图 2中的迁移学习会显著提升目标模型的训练效率。
在进行迁移学习之前,首先要先确定预训练模型[17]。本文选择较为轻量化且成熟的神经网络,AlexNet、ZFNet、VGGNet-16与深度神经网络Res-Net152对数据集进行训练,使用相同硬件配置的计算机设备,并均相同的数据集与keras+tensorflow框架对3种网络进行训练,记录各个网络的训练时长与识别准确率并进行比较,挑选出最合适进行对蝴蝶分类实验进行迁移学习的神经网络,各网络训练结果如表 1所示。
神经网络 | 识别准确率/% | 损失 | 时长/s | 框架 |
AlexNet | 73.10 | 1.506 6 | 5 009 | Keras |
ZFNet | 72.96 | 1.391 1 | 5 576 | Keras |
VGGNet-16 | 89.66 | 0.776 8 | 45 606 | Keras |
ResNet152 | 96.51 | 0.508 0 | 92 941 | Keras |
根据表 1可以得到,AlexNet具有相对高的识别准确率,并且具有网络复杂度低、训练时间短等优势,较符合本实验的实验目标,故本文选择AlexNet作为迁移学习的模型。
1.3 AlexNetAlexNet是2012年由KRIZHEVSKY等提出的卷积神经网络,该网络在图像分类上有着出色的效果[18]。AlexNet首次运用了许多现代的深度神经网络技术,从硬件与软件两个方面都做出了很大改进,在训练结果上也有出色的表现。AlexNet使用2块GPU进行训练,当神经网络训练数据过多时可以将任务分割,在2块GPU上并行训练网络[19]。AlexNet网络在蝴蝶分类数据集上有着较为优异的表现,在识别准确率较高的情况下训练时长较短,适合作为迁移学习的模型。
2 改进的AlexNet算法 2.1 模型迁移通过对AlexNet的深入研究,本文对AlexNet的网络结构与部分参数进行了改进与优化,将其命名为Sim AlexNet(simple AlexNet),其网络结构如图 3所示。
![]() |
图 3 Sim AlexNet网络结构图 Fig.3 Sim Alexnet network structure diagram |
本文先使用蝴蝶分类数据集对AlexNet进行了预训练,训练出成熟的AlexNet模型,之后将AlexNet上的所有模型参数迁移到Sim AlexNet中。进行迁移学习之后,本实验分析了数据集中蝴蝶图像的特征,图像中蝴蝶部分所占比例较多,杂乱图像信息较少,并且蝴蝶部分图像大多较为清晰,故本实验选择通过调整、简化AlexNet网络的方式,在提升识别准确率的基础上,尽可能地缩短了训练时长,具体通过替换LRN(local response normalization)层、调整卷积层、简化全连接层、优化特征选择等措施对AlexNet进行改进,形成新的Sim AlexNet网络,最后对蝴蝶图像进行分类,完成了预期目标。
2.2 替换LRN层LRN为局部响应归一化层,在AlexNet网络中,LRN层位于第1层卷积层与下采样层之间、第2层卷积层与下采样层之间,可以对AlexNet网络中的隐藏层的输入进行归一化处理,加快了网络的训练速度,使其可以更加高效地完成训练任务。LRN层较适用于运用卷积神经网络进行图像处理的任务上,计算式为
![]() |
(4) |
其中,z(l)为第l层的净输入,α(l)为神经元的输出,f为激活函数,BNγ,β(·)为BN层函数,LRNn,k,α,β(·) 为LRN层函数,W为可学习参数,γ和β分别为缩放和平移的参数,n、k、α、β为网络超参数。n为临近的特征图(feature map)数目,以当前输入值为中心的区域内计算加和,用于表示局部区域的大小;k为偏置值;α为缩放因子;β为指数项参数,通过计算可以得到本层网络归一化后的值α。在AlexNet中,这些参数值分别为n=5,k=2,α=10-4,β=0.75[20]。LRN层在AlexNet中会归一化前2个卷积层的神经元,同时抑制活跃的神经元的临近神经元活性。与下采样操作不同,LRN层所抑制的是对同一个位置的临近特征映射中的神经元,起到了平衡和约束的作用,增加模型的泛化能力[21]。但根据以往的实验结果,LRN在提高模型的识别准确率上并没有太大帮助,反而增加了网络的复杂性。本文使用BN(batch normalization)层替代LRN层,与LRN层类似,BN层也可以起到归一化的作用,可以把BN层视为一个特殊的神经层,通过BN层的归一化操作,不仅解决了内部协方差问题,也能获得更加平滑的地形,其在VGGNet-16、Inception等经典网络中都有使用,计算式为
![]() |
(5) |
其中,z(l)为第l层的净输入,α(l)为神经元的输出,f为激活函数,W为可学习参数,γ和β分别为缩放和平移的参数。实验结果表明,将AlexNet前2层LRN层替换为BN层,并将其放在最大值下采样后,可以有效提高识别准确率。
2.3 调整卷积层AlexNet的第3层与第4层卷积层用于提取图片的精细特征,都由384个卷积核组成,并且卷积核大小与步长也相等。本文实验中使用的蝴蝶图像中蝴蝶部分占据图像大部分,均为特写类图像,没有过多的冗余特征,故多次卷积、下采样后保留下来的特征不太适用于最后的类别判定,所以改进算法选择去掉与第3层相同且重复的第4层卷积层,从而降低模型冗余度,更好地对图像数据进行拟合。
AlexNet使用了5个卷积层对图像进行特征提取,并可以将任务分割,在2块GPU上并行训练,大幅提高了训练速度。为了使模型在CPU上也可以高效运行,改进算法修改各层的卷积核数量,并适当缩小卷积核大小,这样既不会导致感受野太小,又降低了网络的复杂度。
在实验中采用了控制变量的方法,先对其中一层卷积层进行调整,保持其他卷积层参数不变,得出最佳训练结果后,继续使用控制变量法对下一个卷积层进行调整,经过多次实验后得出,修改卷积核的个数对蝴蝶种类识别准确率的提升有效。改进算法将第2层的卷积核个数改为64,更小的卷积核可以更快速地提取图像特征,为缩短训练时长,去掉第4层卷积层,并将第3层的卷积核个数改为200个,可以简化模型并对图像的精确特征进行提取,将原第5层的卷积核个数改为64,作用与效果同第2层。经过多次实验结果得出,通过此种卷积核的调整策略对AlexNet模型的卷积层结构优化后,对蝴蝶数据集进行分类可以得到近乎最高的识别准确率,并且可以大幅缩短训练时长。
2.4 简化全连接层AlexNet中后3层均为全连接层,全连接层为上层与本层的所有神经元全部进行连接,每个连接均存在权值与偏置值,运算量远大于卷积运算。全连接层实现了隐藏层中每一层中的每一个神经元都与下一层连接,通过本层神经元的权重矩阵进行计算,之后经过激活函数得到下一层神经元的活性值,在AlexNet中使用ReLU函数进行激活神经元,其计算式为
![]() |
(6) |
其中,W、b是全连接层中的连接权重和偏置值,f为激活函数[22]。实际上全连接层就是一个仿射变换和一个非线性变换。
在AlexNet中,全连接层后跟有DropOut层,用于随机减少神经元的连接数量,参数设为0.5,即随机减少一半的神经元连接。在卷积神经网络中,每层神经元即可作为一个训练中学习到的特征,即几个权值的组合,通过特定函数,网络所有神经元可以共同作用来表征初始数据的特定属性,如在图像分类中,通过Softmax函数表征所属类别。而当网络中数据量略小时,网络的拟合能力会影响最终的训练结果,即可以出现过拟合的情况,此时训练出的模型会大致贴合于初始数据,甚至完全拟合,不利于构建出的网络模型进行下一步的图像处理操作。
DropOut层可以随机减少指定神经元连接数量,这样既不会影响最后的图像分类效果,又可以减少中间特征的数量,有效防止了过拟合。
在AlexNet中,2层全连接层参数为4 096,网络权值参数几乎全部存在全连接层中。在改进算法Sim AlexNet中,直接去掉第2层的全连接层,并将第1层的全连接层参数修改为1 024,将DropOut层参数修改为0.25,防止训练过拟合,并简化网络训练难度。在最后一层全连接层中,仍使用Softmax函数用于蝴蝶分类,并将参数设为20,可以将蝴蝶图像分为20类。实验结果表明适当简化全连接层可以大幅减少训练时长,并且对于蝴蝶识别准确率影响较小。
2.5 优化特征选择下采样层一般用于卷积层特征提取之后进行特征选择,通常下采样操作有2种,最大下采样和均值下采样,AlexNet中的下采样层存在于前2层卷积层后,并且都使用最大下采样操作,对一个图像区域取其最大活性值,用该最大值表示此区域,舍弃其他值,可以有效减少神经元个数,并且使得网络对一些小的局部形态保持不变性,拥有更大的感受野。本文的改进算法在第5层的最大下采样后紧跟一层均值下采样,将区域内的平均活性值最为该区域的活性值。再次进行下采样后,数据量进一步压缩,可以更好地适应分类全连接层。实验结果表明增加一层均值下采样后可以大幅简化网络,加快训练速度,并且不会影响识别准确率。
3 实验结果与分析 3.1 数据集实验的数据集来源于Paddle。Paddle在AI Studio中发布了蝴蝶分类数据集,其中有1 866张蝴蝶图片,20个具体的蝴蝶种类,每种约有50~200张图像不等,适合本实验通过训练新的神经网络进行监督学习。蝴蝶数据信息如表 2所示。
序号 | 蝴蝶种类 | 数量 | 扩展后数量 |
001 | Atrophaneura_horishanus | 159 | 318 |
002 | Atrophaneura_varuna | 91 | 182 |
003 | Byasa_alcinous | 141 | 282 |
004 | Byasa_dasarada | 60 | 120 |
005 | Byasa_polyeuctes | 147 | 294 |
006 | Graphium_agamemnon | 60 | 120 |
007 | Graphium_cloanthus | 53 | 106 |
008 | Graphium_sarpedon | 71 | 142 |
009 | Iphiclides_podalirius | 191 | 382 |
010 | Lamproptera_curius | 67 | 134 |
011 | Lamproptera_meges | 64 | 128 |
012 | Losaria_coon | 62 | 124 |
013 | Meandrusa_payeni | 49 | 98 |
014 | Meandrusa_sciron | 45 | 90 |
015 | Pachliopta_aristolochiae | 153 | 306 |
016 | Papilio_alcmenor | 71 | 142 |
017 | Papilio_arcturus | 83 | 166 |
018 | Papilio_bianor | 91 | 182 |
019 | Papilio_dialis | 92 | 184 |
020 | Papilio_hermosanus | 116 | 232 |
总计 | 1 866 | 3 732 |
数据集中的蝴蝶有标本图片,也有生态环境中捕捉到的蝴蝶图片,故能更好地训练神经网络。鉴于蝴蝶图像样本数量较少,对所有图片进行纵向翻转处理,并保存在原蝴蝶种类文件夹中,这样可以实现快速增加一倍的数据量,并且基于神经网络的特性,不会影响蝴蝶种类识别出现误差。对于神经网络来说,数据增强不仅可以作为更多的数据集进行训练,还可以起到减少网络过拟合的作用,并提高模型的泛化能力,同时可以提高模型的鲁棒性[23]。生态环境中的图片、蝴蝶标本涂片与反转后图片如图 4、图 5所示。
![]() |
图 4 生态环境中蝴蝶图像 Fig.4 Butterfly images in ecological environment |
![]() |
图 5 蝴蝶标本图像 Fig.5 Butterfly specimen image |
本文使用keras框架进行了AlexNet、ZFNet、VGGNet-16、ResNet152和Sim AlexNet网络的实现与训练,使用Python 3.8作为实验环境,使用PyCharm编译器,实验中主要使用了OpenCV 4.5.4.58框架处理图像数据,使用TensorFlow 2.6.0、Keras 2.6.0进行神经网络模型的搭建。
硬件环境:CPU为8核16线程AMD锐龙R7-5800H;AMD Radeon Graphics显示适配器。
为了与深度神经网络在高配置环境下的表现进行对比,本文在AI Studio平台上使用PaddlePaddle 2.2.1框架实现了ResNet152网络的构建,并使用相同数据集进行训练。硬件环境:CPU为4核;RAM 32 GB;DISK 100 GB;GPU:TeslaV100;VideoMem 32 GB。
3.3 消融实验为了测试Sim AlexNet网络的各个改进点是行之有效的,本文使用消融实验对其进行验证。使用处理后的蝴蝶图像数据对每一种改进后的网络进行逐一训练,使用各改进后网络的训练集准确率、验证集准确率、训练损失值、训练时长作为改进算法的评价指标,通过消融实验观察以上4类指标选取最优的改进网络,并将改进方法融合,计算其验证集的识别准确率。验证集识别准确率计算式为:Va=(n1/n)×100%[24-25]。其中,Va为验证集的识别准确率,n1为验证集图像中预测结果与原图像标签相同的图像数量,参数n为验证集图像数量。实验中验证集准确率等同于蝴蝶图像的识别准确率,是评价网络性能的重要指标,故本实验以验证集准确率和训练时长作为改进后网络性能最重要的指标。
3.3.1 AlexNet本文使用Keras框架构建AlexNet网络,原始的AlexNet网络在蝴蝶种类识别中,验证集准确率为73.10%,训练用时5 009 s。
训练结果折线图如图 6所示。
![]() |
图 6 Sim AlexNet网络训练结果 Fig.6 Sim AlexNet network training result |
经过多次实验,调整原始AlexNet网络的卷积层结构与个数,可以有效地提高验证集准确率,将AlexNet网络中第4层卷积层去掉,修改第2、3、5层的卷积核数量为64、200、64,并将归一化LRN层改为BN层,网络的其他结构不变,将其命名为“改进1”网络。“改进1”网络在keras框架下的验证集准确率为74.05%,训练用时2 455 s,在验证集准确率和训练时长上,较之于AlexNet均有明显提升。“改进1”网络训练结果如图 7所示。
![]() |
图 7 “改进1”网络训练结果 Fig.7 "Improvement 1"network training results |
全连接层在AlexNet网络中存在于第5层卷积层之后,全连接层会使验证集准确率更稳定,但代价是较长的训练时间。经过多次实验,本文选择将第1层全连接层的参数改为1 024,优化DropOut函数参数为0.25,之后去掉第2层全连接层,网络的其他结构不变,将其命名为“改进2”网络。实验发现“改进2”网络缩短了训练时长且训练后的网络识别准确率还可以保持稳定。“改进2”网络在Keras框架下的验证集准确率为75.00%,训练用时3 504 s,训练结果如图 8所示。
![]() |
图 8 “改进2”网络训练结果 Fig.8 "Improvement 2" network training results |
原始AlexNet中,第1、2、5层卷积层后都跟有最大值下采样层,用于减轻网络的冗余度。本文在第5层卷积层的最大值下采样层后添加一个下采样层,采用均值下采样操作,并设置其大小为3×3,步长为2,网络的其他结构不变,将其命名为“改进3”网络。改进后网络在Keras框架下的验证集准确率为82.74%,训练用时4 726 s,实验结果得出“改进3”网络可以有效提升验证集准确率,但对于训练时长没有起到好的影响。“改进3”网络训练结果图如图 9所示。
![]() |
图 9 “改进3”网络训练结果 Fig.9 "Improvement 3" network training results |
本文采用消融实验方法,对每种改进方法分别进行实验,实验结果表明对AlexNet网络所进行的改进均可以起到提升验证集准确率或者缩短训练时长的效果,达到了最初想要轻量化AlexNet网络的目的。将以上改进方法合并于AlexNet,构建出Sim AlexNet,也可以得到很好的识别结果,3种改进措施识别结果表如表 3所示,其中“改进1”网络调整卷积层并使用BN层替换了LRN层;“改进2”网络简化了全连接层;“改进3”网络进行优化特征选择。
神经网络 | 识别准确率/% | 损失 | 时长/s | 框架 |
AlexNet | 73.10 | 1.506 6 | 5 009 | Keras |
“改进1”网络 | 74.05 | 1.285 4 | 2 455 | Keras |
“改进2”网络 | 75.00 | 1.221 1 | 3 504 | Keras |
“改进3”网络 | 82.74 | 0.909 3 | 4 726 | Keras |
Sim AlexNet | 79.08 | 0.974 5 | 1 901 | Keras |
用Keras框架训练AlexNet、ZFNet、VGGNet-16、ResNet152与Sim AlexNet,AlexNet的验证集准确率为73.10%,训练用时5 009 s;ZFNet的验证集准确率为72.96%,训练用时5 576 s;VGGNet-16的验证集准确率为89.66%,训练用时45 606 s;ResNet152的验证集准确率为96.51%,训练用时92 941 s;Sim AlexNet的验证集准确率为79.08%,训练用时1 901 s。
为了对比深度神经网络在不同硬件情况下的执行状况,本文还使用了Paddle框架对ResNet152进行了训练,其验证集准确率为95.73%,训练用时991 s。各网络训练后的结果如表 4所示。
神经网络 | 识别准确率/% | 损失 | 时长/s | 框架 |
AlexNet | 73.10 | 1.506 6 | 5 009 | Keras |
ZFNet | 72.96 | 1.391 1 | 5 576 | Keras |
VGGNet-16 | 89.66 | 0.776 8 | 45 606 | Keras |
Sim AlexNet | 79.08 | 0.974 5 | 1 901 | Keras |
ResNet152 | 96.51 | 0.508 0 | 92 941 | Keras |
ResNet152 | 95.73 | 0.568 3 | 991 | Paddle |
多轮训练实验后,根据网络训练结果表得知,Sim AlexNet在蝴蝶分类中的效果要优于AlexNet与ZFNet,分别提高了5.98%、6.12%,训练时长有了大幅缩短,是AlexNet的37.95%,是ZFNet的34.09%。VGGNet-16网络的运行时间是Sim AlexNet的23.99倍,在验证集准确率上提升了10.58%,在整体的效率上远不如Sim AlexNet。为了与深度网络进行对比,本实验使用了不同配置的计算机与不同框架来进行ResNet152网络的训练。如表 4所示,当使用与之前相同配置计算机与相同框架训练ResNet152网络时,虽然可以得到较好的分类效果,但却多花费了48.89%的时间;仅当使用高配置计算机进行训练时,才会在保证验证集准确率的情况下大幅缩短训练时长。由于ResNet152在网络深度有大幅提升,且利用了残差模块,故其分类效率极高,但对于计算机配置要求也高,不适用于轻量化的蝴蝶图像分类,VGGNet-16也有着训练时间太长的缺陷。从实验结果可以看出,Sim AlexNet在蝴蝶分类上一定程度上弥补了成熟模型上的不足。
3.5 稳定性分析神经网络的收敛性是整个系统控制稳定性的基础,而数值稳定性是神经网络收敛性的重要内容。当容易出现梯度消失、梯度爆炸等问题时,可能会出现模型停止训练、参数爆炸性增长的情况,导致神经网络无法正常收敛。
本算法中,神经网络的隐藏层、连接权值的初值是随机的,为了保证算法的稳定性,本算法效仿ResNet网络,选取categorical_crossentropy作为损失函数,将梯度连乘形式变为加法,一定程度上避免了当数值过大或过小时引发的梯度爆炸与梯度消失问题;使用了BN层代替LRN层进行数值的归一化,在提升模型效率与效果的同时进行了梯度裁剪;选取非线性激活函数ReLU作为神经网络的激活函数,在保证收敛速度的情况下一定程度上解决了梯度爆炸与梯度消失的问题。
通过多次实验结果可知,通过选取合适的损失函数、归一化层、激活函数的方法,可以有效遏制了神经网络出现无法收敛的情况,从而保证了整个算法系统的稳定性。
4 结论本文分析了当前国内外针对蝴蝶分类识别的主流算法,发现当前的主流算法存在识别率低、算法运行时间较长的问题,不具有轻量化的优势,在配置较低的计算机上运行时会出现训练时间过长、甚至无法完成训练的情况。针对此现状,本文提出了基于迁移学习与改进型AlexNet的蝴蝶分类算法。
本文通过对数据集进行分析,挑选出部分经典模型进行预训练,通过各模型的拟合程度最终选择AlexNet作为迁移学习的原模型进行优化与改进,使用了替换LRN层、调整卷积层、简化全连接层、优化特征等方法进行改进网络。经过对比实验分析,改进的轻量化算法在提升识别准确率的同时,也提升了识别效率。
从本文对比实验结果可以看出,该方法实现了20种蝴蝶的图像自动识别,取得了73.10%的识别效果。相较于现有方法,本文改进的识别网络可以有效提升原模型提取蝴蝶图像特征的准确性及细节特征的学习能力,并且能够大幅度降低原网络的训练时长,能为蝴蝶数字图像的种类识别问题提供有效的解决方案。
[1] |
周文进, 李凡, 薛峰, 等. 基于YOLOv3和注意力机制的野外蝴蝶种类识别[J]. 郑州大学学报(工学版), 2022, 43(1): 36-40. ZHOU W J, LI F, XUE F, et al. Wild butterfly species identification based on YOLOv3 and attention mechanism[J]. Journal of Zhengzhou University (Engineering Science), 2022, 43(1): 36-40. |
[2] |
徐世才, 王莉, 沈雪健, 等. 陕西子午岭国家级自然保护区不同生境蝶类昆虫多样性[J]. 林业资源管理, 2016(5): 103-106. XU S C, WANG L, SHEN X J, et al. Butterfly diversity of different types of habitats in Ziwuling National Nature Reserve of Shanxi Province[J]. Forest Resources Management, 2016(5): 103-106. |
[3] |
张翔, 高舒桐, 卢志兴, 等. 区域变动尺度上不同生境类型及环境因子对西双版纳蝴蝶多样性的影响[J]. 昆虫学报, 2022, 65(1): 73-83. ZHANG X, GAO S T, LU Z X, et al. Effects of different habitat types and environmental factors on butterfly diversity in Xishuangbanna on regional variation scale[J]. Acta Entomologica Sinica, 2022, 65(1): 73-83. |
[4] |
LIANG B H, WU S X, WU K Y, et al. Butterfly detection and classification based on integrated YOLO algorithm[J]. International Journal of Geomate, 2018, 15(50): 127-133. |
[5] |
LIN Z Q, JIA J D, GAO W L, et al. Increasingly specialized perception network for fine-grained visual categorization of butterfly specimens[J]. IEEE Access, 2019, 7: 123367-123392. DOI:10.1109/ACCESS.2019.2938537 |
[6] |
谢娟英, 侯琦, 史颖欢, 等. 蝴蝶种类自动识别研究[J]. 计算机研究与发展, 2018, 55(8): 1609-1618. XIE J Y, HOU Q, SHI Y H, et al. The automatic identification of butterfly species[J]. Journal of Computer Research and Development, 2018, 55(8): 1609-1618. |
[7] |
谢娟英, 鲁银圆, 孔维轩, 等. 基于改进RetinaNet的自然环境中蝴蝶种类识别[J]. 计算机研究与发展, 2021, 58(8): 1686-1704. XIE J Y, LU Y Y, KONG W X, et al. Butterfly species identification from natural environment based on improved RetinaNet[J]. Journal of Computer Research and Development, 2021, 58(8): 1686-1704. |
[8] |
李策, 张栋, 杜少毅, 等. 一种迁移学习和可变形卷积深度学习的蝴蝶检测算法[J]. 自动化学报, 2019, 45(9): 1772-1782. LI C, ZHANG D, DU S Y, et al. A butterfly detection algorithm based on transfer learning and deformable convolution deep learning[J]. Acta Automatica Sinica, 2019, 45(9): 1772-1782. |
[9] |
XIN D J, CHEN Y W, LI J J, et al. Fine-grained butterfly classification in ecological images using squeeze-and-excitation and spatial attention modules[J]. Applied Sciences, 2020, 1681(10): 2-14. |
[10] |
KARTIKA D, HERUMURTI D, YUNIARTI A, et al. Local binary pattern method and feature shape extraction for detecting butterfly image[J]. International Journal of Geomate, 2018, 15(50): 127-133. |
[11] |
WANG X M, JIAO J, YIN J W, et al. Under water sonar image classification using adaptive weights convolutional neural network[J]. Applied Acoustics, 2019, 146: 145-154. |
[12] |
LI Y, ZHU J. A scale adaptive kernel correlation filter tracker with feature integration[C]//European Conference on Computer Vision, Berlin, Germany: Springer, 2014: 254-265.
|
[13] |
ZHAO Z Q, FENG P, GUO J J, et al. A hybrid tracking framework based on kernel correlation filtering and particle filtering[J]. Neurocomputing, 2018, 297: 40-49. |
[14] |
陈佳辉, 陈岚萍, 夏小云, 等. 基于迁移学习的海底底质声呐图像分类[J]. 计算机仿真, 2022, 39(1): 229-233. CHEN J H, CHEN L P, XIA X Y, et al. Classification of seafloor sediments sonar image based on transfer learning[J]. Computer Simulation, 2022, 39(1): 1006-9348. |
[15] |
王萌萌, 彭敦陆. Retinex-ADNet: 一个低光照图像增强系统[J]. 小型微型计算机系统, 2022, 43(2): 367-371. WANG M M, PENG D L. Retinex-ADNex: A low-light image enhancement system[J]. Journal of Chinese Computer System, 2022, 43(2): 367-371. |
[16] |
FUKUNAGA K, HOSTETLER L. The estimation of the gradient of a density function, with applications in pattern recognition[J]. IEEE Transactions on Information Theory, 1975, 21(1): 32-40. |
[17] |
李均鹏, 祝开艳, 杨澍, 等. 基于迁移学习的复杂场景海洋鱼类识别方法[J]. 计算机应用与软件, 2019, 36(9): 168-174. LI J P, ZHU K Y, YANG S, et al. Ocean fish recognition in complex scene based on transfer learning[J]. Computer Applications and Software, 2019, 36(9): 168-174. |
[18] |
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]//25th International Conference on Neural Information Processing Systems. Cambridge, USA: MIT Press, 2012: 1097-1105.
|
[19] |
张驰, 郭媛, 黎明, 等. 人工神经网络模型发展及应用综述[J]. 计算机工程与应用, 2021, 57(11): 57-69. ZHANG C, GUO Y, LI M, et al. Review of development and application of artificial neural network models[J]. Computer Engineering and Applications, 2021, 57(11): 57-69. |
[20] |
YUN S, CHOI J, YOO Y, et al. Action-decision networks for visual tracking with deep reinforcement learning[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2017: 2711-2720.
|
[21] |
杜铭浩, 刘爽, 刘潇雅, 等. 面部视觉特征在抑郁症诊断中的研究进展[J]. 小型微型计算机系统, 2022, 43(3): 483-489. DU M H, LIU S, LIU X Y, et al. Research progress of facial visual features in depression diagnosis[J]. Journal of Chinese Computer System, 2022, 43(3): 483-489. |
[22] |
闫星宇, 李宗杰, 顾汉明, 等. 基于深度卷积神经网络的地震数据溶洞识别[J]. 石油地球物理勘探, 2022, 57(1): 1-11. YAN X Y, LI Z J, GU H M, et al. Recognition of karst caves in seismic data based on depth convolution neural network[J]. Petroleum Geophysical Exploration, 2022, 57(1): 1-11. |
[23] |
王阳, 陈薇伊, 马军山, 等. 基于卷积神经网络的乳腺癌良恶性诊断[J]. 软件工程, 2022, 25(1): 6-9. WANG Y, CHEN W Y, MA J S, et al. Diagnosis of benign and malignant breast cancer based on convolutional neural network[J]. Software Engineering, 2022, 25(1): 6-9. |
[24] |
MA C, XU Y, NI B, et al. When correlation filters meet convolutional neural networks for visual tracking[J]. IEEE Signal Processing Letters, 2016, 23(10): 1454-1458. |
[25] |
YU Y, XIONG Y, HUANG W, et al. Deformable Siamese attention networks for visual object tracking[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2020: 6727-6736.
|