APP下载

若干常用深度神经网络模型在鱼群分类中的性能对比

2022-06-07李沅衡林茂兹丁可武陈文辉苏芳

福建技术师范学院学报 2022年2期
关键词:卷积准确率神经网络

李沅衡,林茂兹,丁可武,陈文辉,苏芳

(1.福建技术师范学院 a. 近海流域环境测控治理福建省高校重点实验室,b.海洋研究院 福建福清 350300;2.南方海洋科学与工程广东省实验室(广州),广东广州 511458)

我国是海洋渔业大国,2019 年我国有渔业人口1 828.20 万人,全社会渔业经济总产值26 406.50 亿元.但是,与我国巨大的渔业总体量相比,我国的渔业科研机构从业人员仅有6 213 人,相关科研机构总固定资产仅有4.5 亿元[1].整体而言,我国渔业还处于一个过度依赖人力与物力的阶段.因为缺少科学的指导,我国渔业发展具有相当的盲目性,其必然会造成不必要的浪费和生态环境的破坏.将有效的技术手段应用于我国渔业资源开发中,可以在有效充分利用海洋资源的同时保护生态环境,为渔业资源循环再生提供有力的技术支撑[2].

近年来,智能水下机器人和智能原位观测仪器逐渐成为人们开发利用海洋资源的重要海工装备[3].智能水下机器人是一个集成水下目标探测和识别、数据融合、人工智能、智能控制以及导航和通信技术的高度集成无人平台.将水下机器人或者水下原位观测仪应用于鱼类探测,可以很好地解决实际生产中海洋牧场实时监测以及盲目捕捞等现实问题.

基于机器视觉感应外界信息的智能水下设备其重要功能之一是目标的自动分类.在分类问题中,支持向量机(SVM)基于统计学原理借助最优化方法解决机器学习问题[4],在小规模分类问题中有广泛的应用.Li 等使用快速区域卷积神经网络(R-CNN)进行水下鱼群分类,与SVM 方法相比,R-CNN 可以极大提高分类的准确率与效率[5].Villon 等对比了SVM 分类器与深度学习方法在水下珊瑚礁鱼群分类时的优缺点,并认为在部署效率方面,深度神经网络明显高于SVM 方法[6].近年来,随着水下作业量的增多,人们积累了大量水下图像与视频数据,传统的SVM 因为受其固有理论缺陷限制,难以直接应用于多类别及大数据问题中[7].由于SVM 存在着以上问题,部分学者进行了利用其他分类器的尝试.Zion 等利用贝叶斯分类器对三种常见的淡水鱼进行了分类研究,其分类的准确率可达98%以上[8].Ravanbakhsh 等在利用水平集方法获得水下鱼类轮廓的基础上,使用Haar 分类器获得了水下鱼类重要器官的精确定位,即使在浑水中,该方法的精度也可达到亚像素级[9].虽然以上方法在鱼群分类中取得了一定成果,但是依然存在对输入数据敏感、特征检测率低和光照鲁棒性差等问题,难以应用于大规模海洋数据的处理.

为了解决常规分类方法中存在的以上问题,文献[10]提出了使用卷积神经网络(CNN)提取图像特征的方法,文献[11]进一步设计深度卷积神经网络实现目标图像的分类.深度神经网络因为具有分类准确率高、并行处理能力强、分布式存储和学习能力强、网络结构可根据应用场景微调、鲁棒性较强以及不易受噪声影响等优势受到广泛关注和研究[12],其研究成果也被应用于水下鱼群分类中.Xu 等使用YOLO 模型对三种鱼类进行了目标识别训练,但将其应用于实际水下图像时,其发现经过训练的模型无法识别不属于训练集中的鱼,因此需要使用多种不同的方法训练模型,从而使模型易于推广到新的数据集[13].李庆忠等利用迁移学习训练Underwater-YOLO 网络,提高了海底小目标和重叠目标的可检测性[14].陈文辉等通过迁移学习训练深度卷积神经网络,在消耗较少训练资源的前提下,使模型达到较高的验证准确率,从而为小模型进行鱼群分类提供了可能[15].张明华等针对水下视频质量不高的问题,提出了一种使用背景去除的水下视频目标检测法,该方法能够有效提高水下视频的检测效率[16].王文成等通过改进ResNet50 深度模型,对常见的四种鱼类进行分类获得了良好的效果[17].

综上所述,深度神经网络是人工智能领域的一个重要分支,相比传统方法具有巨大的优势,且随着深度神经网络技术的发展,目前已经有大量相对成熟的图像分类模型问世,被广泛应用于水下目标检测与分类研究中.然而针对不同常见深度模型对海洋鱼类分类的准确率与效率优劣的问题,尚缺乏系统而全面的对比研究.因此,本文使用Tensorflow框架,在保持深度模型参数的基础上,利用Fish4Knowledge 数据库[18]中样本量较大的12种鱼类,对业界应用中最具代表性的VGG16、Inception、Xception、ResNet、DenseNet、MobileNets、NasLarge 和EfficientNet 模型进行训练,使用训练完成的模型测试对应的验证集数据,借此对比几种常见的深度模型在鱼类图像分类时的准确率与效率,从而为海洋鱼类分类的实际应用提供指导.

1 理论基础

1.1 卷积神经网络

深度神经网络由输入层、卷积层、池化层和全链接层组成,其中的卷积层在整个网络中起着至关重要的作用.设有二维矩阵X 与矩阵K,其中元素为x与k,则两矩阵的二维卷积运算为

其中z(u,v)为卷积结果矩阵Z 的第(u,v)项,若X 是m阶方阵,而K 是n阶方阵,且设K旋转180 度可得Krot,则有效值卷积可定义为

其中·X(i,j)表示函数

卷积层的主要作用为提取图像的特征,而二维图像数据可以看作是三维的数据体,该数据体与卷积核进行运算,从而得到新的卷积层的输入.假设输入层为l-1 层,其输入的数据体为X(l-1)(m×m),卷积层的核为K(l)(n×n),偏置矩阵为B(l),则卷积层的输出为一个m-n+1阶的方阵Z(l),其元素可以表示为

该式即为卷积层运算公式,在深度神经网络中,一般会有多层不同卷积核的卷积运算.

池化层通过在特定区域提取数值特征的办法,减小数据空间的大小.以最大池化层为例,其通过将某个大小的邻域内的最大值找出并储存,从而得到相应特征.通过利用这样的方法,数据集中最有特点的数据被保留下来,从而达到降低运算量和避免过拟合的作用,在设计深度神经网络时,一般在多个卷积层之后加入一个池化层.全连接层的作用是将卷积层和池化层的数据映射到样本标记空间,起到了“分类器”的作用,在深度神经网络末尾卷积核为1×1 的卷积层即可视为全连接层.

1.2 常用深度神经网络简介

将1.1 节中详细介绍的各层有机组合即可获得简单的深度神经网络模型.因为VGG16 网络是最为典型和基础的深度神经网络,而其后推出的网络多是对VGG16 的改良与优化.本文首先以如图1 所示的VGG16 模型为例介绍深度神经网络的基本结构,并在此基础上简要介绍本文所使用的其他网络模型.VGG16 有3 个全连接层和13 个卷积层[19].大小为224×224×3的彩色图像经过64 个卷积核的两次卷积之后,通过一次池化运算大小变为112×112×128.在经历多次卷积与池化的操作即可到达最后的全连接层完成分类.在深度模型的最后,为了保证训练时各分类结果概率之和为1,可加入Softmax 层[20].

图1 VGG16 模型示意图

虽然VGG 模型在图像分类问题中取得了巨大成功,但是其结构易饱和,使得模型的深度与宽度难以延伸.Inception 模型的设计者通过引入Inception 模块(详见文献[21])扩展了模型宽度的同时提高参数利用率,在此基础上Xception 通过改进Inception 模块,解耦网络的空间相关性与通道相关性,进一步优化了网络的性能[22].在解决VGG 模型固有缺陷时,ResNet 通过残差学习来解决网络加深时产生的退化问题,从而极大提升了模型的最大深度,并在当时取得了极其惊艳的应用效果[23].

与ResNet 网络仅在单层之间传输参数不同,DenseNet 的作者通过将每一层与之前的层均建立连接路径,从而每一层都可以获得前面所有层学习得到的特征,使得DenseNet 不但可以在网络深度增加的同时保持相对较小的参数总量,还可以提高信息流和梯度在整个网络中传播的速度,最终获得了一个更易于训练的深度模型[24].借鉴Xception 解耦卷积网络相关性的思路,MobileNets 通过把常规卷积层分解成逐点卷积和深度卷积,降低常规深度模型的参数量,从而在保证精度相对较好的同时提高了训练和预测的效率[25].随着技术进步,神经网络的设计与选优工作也从手工调试转变为机器自动设计,NasLarge 通过生成子网络,对子网络进行设计和评估并从中选优以得到性能最好的深度神经网络[26].虽然NasLarge 通过子网络选优的方法获得了泛化能力强的深度神经网络,但是其训练效率较差难以广泛应用于实际生产中,因此效率较高的神经网络架构搜索模型EfficientNet被提出,并在业界得到了广泛应用[27].

本节在详细介绍卷积神经网络与VGG16的基本结构的基础上,简单介绍了Inception、Xception、ResNet、DenseNet、MobileNets、NasLarge 和EfficientNet,这七个深度模型在VGG 成功应用之后的图像分类领域,各自提出了具有建设性的改进思路,极大促进了深度模型的理论发展与实践应用,在目前众多的深度模型中应用范围最广,最具有代表性.因此本文针对以上所有深度模型在海洋鱼类识别与分类中的应用效果进行检验,以期为后续的研究工作提供指导与借鉴意义.

2 实验

2.1 实验软硬件资源

本实验用于验证目前常用的图像分类模型在充分训练后对水下鱼类图像分类的准确率与效率,实验时所使用的软硬件资源如表1 所示:操作系统为CentOS Linux;深度学习框架为Tensorflow2.4 及其内置的Keras 接口;图像数据使用Fish4Knowledge 海洋鱼类数据库[18];使用的CPU 型号为Intel Xeon 5218R;GPU 运算核心型号为NVIDIA 3080;为了尽量减小硬盘IO 瓶颈对效率评估造成的影响,本文使用Nvme 协议接口的固态硬盘存储鱼类图片数据.

表1 实验条件列表

2.2 实验关键参数设置

在训练模型的过程中使用随机数对深度模型参数初始化,在此基础上还需要对如下若干较为重要的训练参数进行设置.

2.2.1 训练集与测试集

Fish4Knowledge 数据库共收集了23 种海洋常见鱼类的27 370 张彩色图片[18],本文选取其中数据量较大的12 种鱼类图片,并通过旋转的方式将这12 类图片中数据量较小的类别进行扩充,最终得到包含了12 种鱼的图片一共30 614 张.本文将图片分辨率统一为224 px×224 px,并通过随机划分的方式,将这些图片中的约80%作为训练集,而剩下的约20%图片作为验证集,为了确保不同深度网络模型所使用的数据集完全相同,在训练集与验证集划分完成之后,不再对训练集与验证集进行修改.

2.2.2 BatchSize

BatchSize 为一次训练所选取的样本数量.BatchSize 增大时,网络的梯度下降方向能够更加准确,但与此同时,大的BatchSize 会显著提高内存/显存的占用率.本文在实验设计过程中,综合考虑各网络模型特点与软硬件资源,选取BatchSize=32.

2.2.3 神经元概率

DropOut 层用于避免深度神经网络训练过程中产生的过拟合问题,其在每次训练时随机隐藏神经层中的某些单元,在本次训练中仅对其他神经单元进行训练,而在下一次训练过程中,同样随机隐藏部分单元,如此往复直至训练结束[28].在Keras 接口中,DropOut 的主要参数为每次训练时参与工作的神经元概率,本文在模型训练过程中,将该值统一设置为0.8.

2.2.4 优化方法与学习率

深度神经网络的训练可以看作是一个对其相关参数寻优的过程,在参数寻优时,梯度下降法的应用最为广泛,该方法通过计算误差函数在当前点的梯度,并沿着负梯度方向搜索最优解[29].在样本量较大的时候,由于梯度下降法运算量过大,影响训练效率.通过引入随机梯度下降,随机使用样本中的某些数据作为计算梯度方向的依据,即可有效解决梯度下降法运算量过大的问题.而随机梯度下降中,梯度更新的步长就是学习率,本实验中将学习率统一设置为0.005.

2.2.5 训练迭代次数(epoch)

一般在图像分类模型训练时,只要参数设置得当,经过大约200 次左右即可完成训练任务.本文为了保证模型的充分训练,统一进行600 次迭代训练.

2.3 实验结果

2.3.1 模型训练

在训练过程中,本文所对比的绝大多数深度模型训练与验证准确率都高度一致,并在200 次迭代训练之内快速提高且最终准确率收敛到约100%.其中NasLarge 模型的训练准确率与验证率曲线最为典型,训练集准确率与验证集准确率曲线近乎重合,因此本文仅展现训练准确率见图2(a).相对的,在所有本文实验用的模型中,如图2(b)所示的VGG16 模型的准确率曲线较为特殊,其准确率提升较慢且经过了600 次迭代以后,准确率仅有90%左右,而VGG16 的训练过程中验证准确率高于训练准确率最终可达95%左右,考虑到DropOut层对训练与验证准确率可能产生的影响,二者可存在一定的准确率差距[28].

图2 600 次训练过程中模型准确率曲线图,其中(a)以NASLarge 模型为例的多数模型训练准确率,(b)VGG16 的训练与验证准确率

2.3.2 验证准确率与效率

在对比各个模型的准确率与效率时,本文直接对验证集数据中的约6 100 张图像进行分类测试.在尽量避免硬件IO 效率对结果影响的基础上,对每一个模型重复5 次实验.如表2所示,为每个参与实验的深度模型验证集的识别准确率、交叉熵损失函数(Loss)与消耗时间三者的平均值.从表中可以看出,Xception、DenseNet201 与Inception 的准确率最高,都达到了99.8%以上,而ResNet152、NasLarge 和MobileNet 的准确率也达到了99.5%以上.相对而言,VGG16 与EfficientNetB0 的识别准确率略差,其中EfficientNetB0 虽然训练效果较好,但是验证准确率较差,可能是因为出现了过拟合问题.因为本实验中所有的模型都经历了600 次迭代的充分训练,所以损失函数与准确率之间有较好的对应关系.在模型效率方面,MobileNet 效率最高,仅耗时24.11 s;而NasLarge 耗时最长,达到了59.26 s.其他模型的总耗时集中在25.11~38.18 s 之间.

表2 模型识别准确率与耗时表

2.4 实验分析

在本对比实验中,模型深度最深、参数量最大的NasLarge 模型在识别验证集所有图像时,虽然耗费了更多的时间,但是在实际测试中并没有获得最佳的准确率,可能的原因在于其网络参数过多而用于训练和验证的图像数据量相对较小,无法发挥其全部优点.相对的MobileNet 和EfficientNet 两个轻量级模型则更加节约计算资源,其中MobileNet 在模型参数少、识别效率高的同时,仍能保持较高的准确率,说明在识别本实验数据库中的样本时,可以在准确率与效率上达到最优.DenseNet201、Xception 与Inception 的识别准确率最高,但受限于它们较深的模型,在识别准确率没有显著优于MobileNet 的前提下,识别效率差距较大.

3 结论

深度神经网络已经具备了针对鱼群图像精确分类的能力,在对比实验所使用的模型中,准确率最高的DenseNet201 识别准确率可达99.84%,且其在28.12 s 内即可完成约6 100 张图像的分类工作,平均每秒可处理约220 张图像,具有较高的效率.但即便如此,DenseNet201 模型的识别效率仍不及MobileNet,后者的识别准确率虽然下降了0.17%,但是效率提高了16.63%.考虑到水下环境对设备硬件的限制,在模型小、参数量少的条件下,还能够保证较高精度的MobileNet具有更为广阔的应用前景.

虽然本实验在设计过程中使用IO 效率极高的Nvme 固态硬盘进行实验,但是因为实验中使用了约6 100 图像的大规模输入与输出,所以无法完全避免IO 耗时给本实验带来的误差.而水下目标识别过程中,受限于复杂的水下环境,本实验结论仅针对本实验所使用的数据集,缺乏泛化能力.因此在未来的工作中,需要针对大数据的IO 展开进一步优化,同时通过一定的预处理或后处理方法,提高模型的泛化能力.

猜你喜欢

卷积准确率神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法