APP下载

基于迁移学习的PSO-ShuffleNet鱼类识别方法

2023-04-23张溟晨王海波MdShafiqulIslam

渔业现代化 2023年2期
关键词:批处理正确率鱼类

张溟晨,赵 伦,施 杰,林 森,王海波,Md Shafiqul Islam

(1 云南农业大学机电工程学院,云南 昆明 650201;2 深圳职业技术学院智能制造技术研究院,广东 深圳 518055;3 瑞典布京理工大学机械工程学院,瑞典 卡尔斯克鲁纳 37179)

在中国鱼类多样性资源保护及现代渔业生产中,鱼类种群信息采集技术相对落后,通过机器视觉采集种群信息可提升中国鱼类生物多样性保护能力,推动渔业现代化发展进程[1-2]。国外针对鱼类识别问题的研究相对较早,技术较为成熟,Alsmadi等[3]采用BP神经网络与决策树算法构建了鱼类识别模型,并将其运用于全球鱼类信息系统的图像识别中,达到了84%的准确率,解决了早期鱼类识别研究中未将特征选择、图像分割和几何参数相结合的问题,实现了监督学习在鱼类识别中的应用。Schulein等[4]提出了一种基于神经网络的三维积分成像水中目标识别方法,该方法解决了以往神经网络仅能够实现二维目标识别的问题,首次实现了水下全息三维物体识别。Salman等[5]采用CNN对层次特征组合进行设置,提高了无约束鱼类识别网络的性能,该网络在LifeCLEF15数据集上的识别正确率高达90%。lqbal等[6]通过改变AlexNet网络中的卷积层数和全连接层数,对原始网络进行改进,并将其运用于鱼类识别问题中,测试精度高达90.48%,解决了原AlexNet训练过程中内存占用大,计算复杂的问题,实现了鱼类识别网络的轻量化。国内针对鱼类识别问题的研究起步较晚,技术相对落后。杜伟东等[7]提出了基于SVM的决策融合鱼类识别方法,该方法以鱼类声学散射数据作为研究样本,利用小波变换和离散余弦变换对数据进行特征提取,通过SVM分类器输出最终结果。李海涛等[8]提出了基于VGG-16的海水养殖病害诊断模型,针对对虾的6种常见病害进行识别研究,网络的平均准确率为90.66%。该诊断模型的提出解决了原VGG-16网络在对虾病害诊断过程中识别精度较低的问题,提高了网络的鲁棒性和泛化能力。张胜茂等[9]基于TensorFlow平台采用SSD_MobileNet_v1模型开发了水族馆鱼类目标检测APP,在华为MHA-AL00手机的平均检测时间为40 ms,解决了鱼类识别检测模型在手机移动设备的部署问题,实现了手机移动端的实时鱼类识别功能。杨文静等[10]提出了一种面向浑浊水域的鱼类识别方法,该方法采用改进Retinex算法对水下鱼类图像进行增强处理,利用YOLOv4网络进行目标识别,网络的mAP为89.59%,解决了常规鱼类识别算法的识别效果受水域浑浊程度影响较大的问题,实现了图像增强方法与鱼类识别技术的融合应用。

近年来,国内外对鱼类识别技术的研究较为广泛,采用卷积神经网络、无监督学习、图像增强等多种方法从不同角度进行了试验。虽然鱼类识别技术有所提升,但模型训练过程中的超参数均采用人为设定的方式,不具备自适应能力。为了解决上述问题,本研究针对算法训练过程中超参数不能够自适应确定的问题,并结合粒子群优化原理,提出了基于迁移学习的PSO-ShuffleNet鱼类识别方法,实现了模型参数的自适应设定和较高的识别正确率。

1 ShuffleNet改进模型

1.1 ShuffleNet模型

ShuffleNet是一种轻量级卷积神经网络,采用分组逐点卷积(Pointwise Group Convolution)与通道混洗(Channel Shuffle)结构,在保证识别正确率的同时减少了权重参数[11-14]。该模型通过打乱组卷积之间的输出结果,以解决特征提取过程中缺乏信息融合的问题,提升了不同组卷积之间的关联性。ShuffleNet相较与AlexNet、MobileNet等传统模型提升了特征提取能力,在识别精度和速度上取得较好的平衡,因此本研究以ShuffleNet模型为基础,研究鱼类识别方法。

1.2 粒子群算法

粒子群算法(Particle Swarm Optimization,PSO)的寻优思想来自大自然鸟类等生物的觅食行为,通过模拟鸟类觅食中存在的竞争合作和信息共享等现象,实现对目标函数最优解的寻找[15-17],其更新过程如式(1)~(4)所示:

V′i=M+N

(1)

M=ω×Vi+c1×r×[pbest(i)-Xi]

(2)

N=c2×r×[gbest(i)-Xi]

(3)

X′i=Xi+V′i

(4)

式中:Xi表示第i个粒子;Vi表示速度;pbest(i)表示寻优过程中出现的最佳位置;gbest(i)为粒子最佳位置;X′i和V′i为更新后的结果;c1,c2为常量;r为0~1的随机数;ω为惯性权值。

1.3 基于粒子群优化的ShuffleNet模型

卷积神经网络训练过程中,模型参数的选择对于网络性能有着重要影响,批处理大小影响模型梯度的下降过程,学习率影响模型的收敛性能[18-20]。由于ShuffleNet相较于AlexNet、MobileNet等具有特征提取部分信息融合能力更强,正向传播过程复杂程度高的特点,因此对于批处理大小和学习率参数的选择十分重要。针对ShuffleNet模型训练过程中参数设定不具备自适应性的问题,采用粒子群算法对上述ShuffleNet模型进行改进。选择交叉熵作为模型的损失函数,如式5所示:

(5)

PSO-ShuffleNet算法流程如图1所示。

图1 PSO-ShuffleNet算法流程Fig.1 PSO-ShuffleNet algorithm flow

将网络训练中的损失函数作为粒子群算法的适应度函数,以求得最小损失函数值为目标,对模型训练过程中批处理大小和学习率两个参数进行优化。首先,程序根据模型批处理大小和学习率的预设范围随机初始化粒子种群并设置速度和位置,并对ShuffleNet的交叉熵损失函数进行计算以获得每个粒子对应的适应度函数值。然后,根据适应度函数的计算结果更新粒子历史最优位置与全局最优位置,判断是否满足算法结束条件。若满足则停止计算,输出批处理大小和学习率的最优组合,若不满足则循环上述粒子更新过程,直至算法收敛。最后,采用粒子群算法获得的最佳参数组合对ShuffleNet进行训练,得到最终模型。

2 PSO-ShuffleNet结合迁移学习

2.1 迁移学习

传统深度学习总是采用特定训练样本,从原始阶段开始学习,这种方法在训练样本足够,计算资源充沛的前提下是可行的。但是当训练样本较少,计算资源匮乏时,传统深度学习方法无法满足分类识别的精度要求,为了解决这一问题,研究者提出了迁移学习的方法[21-22]。卷积神经网络提取特征过程中,浅层卷积层主要用于提取表层局部信息,深层卷积层可提取整体抽象信息。由于浅层网络所提取的特征信息具有一定共性,因此可利用其他相关数据集对原始模型进行预训练,得到初始权重参数[23-25]。此时的模型已具备较强局部特征提取能力,保留预训练模型参数作为新模型的初始权重,采用特定小样本数据集对模型进行再训练,从而能够达到更佳的识别效果[26]。

2.2 基于迁移学习的PSO-ShuffleNet模型

在PSO-ShuffleNet模型基础上,采用迁移学习的方式进行训练,首先利用ImageNet全部数据集对原网络进行预训练,保留权重参数。然后,设定模型所需识别的类别数目,并将预训练得到的权重载入至新模型中,使用特定数据集对其再训练。最后,对模型进行微调处理,得到最终结果。

3 基于TL-PSO-ShuffleNet模型的鱼类识别方法

将粒子群优化原理、迁移学习和ShuffleNet模型相结合以实现鱼类种类识别。首先,采用粒子群算法对ShuffleNet的批处理大小和学习率进行寻优以获取最佳超参数组合;然后,利用ImageNet全部数据集对模型进行预训练,将训练后的权重参数迁移至新模型中,采用鱼类数据集对其进行再训练,从而获得最终识别模型。基于TL-PSO-ShuffleNet模型的鱼类识别方法具体步骤如下:

1)采集鱼类数据图像。

2)将ShuffleNet模型的分类损失函数设定为粒子群算法的适应度函数,并以获取最小损失函数值为寻优目标。设定模型批处理大小和学习率的超参数组合为粒子状态信息。

3)粒子群算法参数设置:设置种群数量、惯性因子、加速度因子和种群迭代次数。

4)初始化粒子种群,进行适应度函数的计算。

5)更新粒子的最优位置,判断是否满足算法结束条件。

6)输出最佳批处理大小和学习率的超参数组合,将其运用在后续模型训练中。

7)采用ImageNet全部数据集对最佳超参数设定的ShuffleNet进行预训练,并将权重参数迁移至新模型中。

8)采用鱼类数据集对迁移后的模型进行再训练以得到最终识别模型。

9)输入测试鱼类图像,模型输出识别结果。

4 鱼类识别试验

4.1 试验平台与试验数据

研究采用ImageNet数据集中的20种鱼类图像作为试验样本,单个种类图片1 300张,共26 000张图片。随机选取数据集的70%作为训练样本,其余30%作为测试样本,图2为部分鱼类训练样本。

图2 部分鱼类训练样本Fig.2 Partial fish training samples

本试验均采用的运行环境为Python 3.7、Miniconda 3、Pytorch1 9.0,采用PyCharm 2021.3.2(Community Edition)作为集成开发环境,计算机配置为Intel(R)Core(TM)i7-10875H CPU @ 2.30GHz,16.0 GB内存,NVIDIA GeForce RTX 2070 GPU,8.0 GB显存,CUDA11.6。

4.2 基于TL-PSO-ShuffleNet模型的鱼类识别试验

TL-PSO-ShuffleNet鱼类识别模型试验首先采用粒子群算法对批处理大小、学习率进行寻优以得到最佳超参数组合。然后,利用ImageNet全部数据集对POS-ShuffleNet进行训练,将权重参数迁移至新模型并采用鱼类图像样本进行再训练。根据文献[27-28]提供的粒子群和ShuffleNet参数设定方法作为参考,本研究设置粒子群算法的种群大小为20,惯性权重为0.8,加速因数为0.5,种群迭代次数为50,神经网络训练的迭代次数为500。试验将鱼类训练样本剪裁成224×224大小,然后随机翻转,采用批量归一化(Batch Normalization,BN)处理加快模型的收敛速度,提高网络训练的鲁棒性。其计算过程如式(6)所示:

(6)

4.3 结果与分析

训练TL-PSO-ShuffleNet网络,并对该模型进行测试。粒子群算法进化过程如图3所示。

图3 粒子群算法进化过程Fig.3 Particle swarm algorithm evolution process

ShuffleNet网络的训练损失函数值在50次迭代过程中得到降低,说明采用粒子群算法对ShuffleNet的优化是有效的。网络的最小损失函数值为0.298 7,对应的最佳批处理大小为57,最佳学习率为0.000 1。图4为基于迁移学习的鱼类识别PSO-ShuffleNet模型训练过程,网络在前20次迭代过程中快速收敛,最终正确率为0.90。

图4 TL-PSO-ShuffleNet模型训练过程Fig.4 TL-PSO-ShuffleNet model training process

该网络模型的混淆矩阵如图5所示。由该矩阵可以看出,每种鱼类图像测试样本均为51,goldfish、lionfish和rock_beauty_fish的正确识别个数为51,正确率为1.0,gar_fish的正确识别个数为39,正确率为0.76。所有类别的平均检测正确率为0.91。试验表明,该模型对goldfish、lionfish和rock_beauty_fish的识别效果较好,对gar_fish的识别效果较差。

图5 TL-PSO-ShuffleNet模型混淆矩阵Fig.5 TL-PSO-ShuffleNet model confusion matrix

表1为部分TL-PSO-ShuffleNet模型的测试结果,其反映了识别不同鱼类的精确率、召回率和特异度。

表1 TL-PSO-ShuffleNet模型部分测试结果Tab.1 Partial test results of TL-PSO-ShuffleNet model

在所检测的20种鱼类别中,anemone_fish的精确率最高为1.0,hammerhead_fish的精确率最低为0.825,所有类别的平均精确率为0.91。goldfish、lionfish和rock_beauty的召回率最高为1.0,gar_fish的召回率最低为0.765,所有类别的平均召回率为0.91。anemone_fish的特异度最高为1.0,gar_fish的特异度最低为0.985,所有类别的平均特异度为0.990。由此可见,该模型泛化能力较强,对anemone_fish的识别精度较高,对hammerhead_fish的识别精度较低。

4.4 模型对比分析

为了验证TL-PSO-ShuffleNet鱼类识别方法的有效性,与AlexNet[29]、MobileNet[30]、ShuffleNet和PSO-ShuffleNet模型进行对比试验,结果如图6所示。

图6 5种模型正确率对比Fig.6 Comparison of the five models' correct rates

AlexNet模型的正确率为0.57,MobileNet模型的正确率为0.69,ShuffleNet模型的正确率为0.73,PSO-ShuffleNet模型的正确率为0.81,TL-PSO-ShuffleNet模型的正确率为0.90。由此可见,利用粒子群算法对模型训练中的超参数进行寻优可有效改善模型性能;采用迁移学习的方法能够提高网络的正确率和收敛性能。试验表明,TL-PSO-ShuffleNet模型性能最佳。

5 结论

本研究针对ShuffleNet模型训练过程中参数不能够自适应确定的问题,采用粒子群算法将模型的损失函数作为适应度函数,对批处理大小和学习率两个参数进行优化,建立了基于TL的PSO-ShuffleNet模型。研究表明,AlexNet的正确率为0.57,MobileNet的正确率为0.69,ShuffleNet的正确率为0.73,PSO-ShuffleNet的正确率为0.81,TL-PSO-ShuffleNet的正确率为0.90,该模型性能最优。研究表明,基于TL-PSO-ShuffleNet识别方法能够实现较高准确率的鱼类识别。

猜你喜欢

批处理正确率鱼类
基于MFCC和ResNet的鱼类行为识别
门诊分诊服务态度与正确率对护患关系的影响
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
鱼类运动会
借助批处理 让Cortana变聪明
生意
品管圈活动在提高介入手术安全核查正确率中的应用
鱼类是怎样保护自己的
生意
基于PSD-BPA的暂态稳定控制批处理计算方法的实现