APP下载

基于迁移网络的长江上游保护鱼类识别方法研究

2021-02-10董佳纬骆沛然

关键词:残差正确率鱼类

王 鑫, 董佳纬, 史 伟*, 骆沛然

(1.宁夏大学 信息工程学院,宁夏 银川 750021; 2.兰州职业技术学院 电子信息工程系,甘肃 兰州 730070)

随着国家长江流域野生鱼类保护工作的不断深入推进,保护野生动物的重要经济价值和科学研究意义逐渐深入人心.2018年,被列入《濒危野生动植物国际贸易公约》附件(录)的物种已接近300种,其中很多物种都是长江流域的.这些物种的保护工作是权衡生态平衡和渔业经济利益的大工程,需要长期研究和精细化实施,得全员参与.尤其是一线渔业从业人员,该群体人员基数庞大,在实际生产过程中他们对保护鱼类的具体操作会很大程度影响总体保护工作的成效,需要对保护鱼类有一定的分辨能力.然而一线渔业从业人员没有专门的时间和更多的精力去研究学习每一种保护鱼类的特征,而且由于保护鱼类的品种繁多且时常更新,要求他们能够即时分辨各种保护鱼类是不现实的.从另一方面来讲,尽管已经有很多出色的深度学习网络模型可以对图像进行分类识别且已经能达到很高的精确度,但是目前国内外采用深度学习方法对长江保护鱼类进行识别的研究工作并不多,而且生活在长江上游的野生保护鱼类基数本来就少且在不断退化,能够捕捉到它们的影像实属不易,自然而然关于此类物种的图像数据样本会很少.利用AlexNet[1]、VGG[2]、GoogLeNet[3]等依靠数据驱动的成熟网络模型在如此小规模的数据集上训练获得的模型很难具备较高的精度,而且这些成熟模型在利用数据样本进行学习时往往既需要高算力机器支持训练,又需要大量的训练耗时.为了帮助一线渔业从业人员有效识别长江上游保护鱼类,并解决利用深度学习网络对长江上游保护鱼类微小规模图像数据集进行训练后所得模型精度较差的问题,本文提出了利用成熟网络模型对长江上游保护鱼类微小规模数据集进行迁移学习的方法,并根据实际情况通过网络线性输出层合理安排识别分类,在不使用GPU对数据进行训练的情况下,以较快的训练速度达到了相当高的识别精度,具有较强的应用价值.

1 相关工作

1.1 ResNet(残差网络)

层次不断加深的深度学习网络模型,在获取更高图像特征精度的同时,其梯度弥散也会更加严重,这会导致网络收敛困难.而且随着网络深度的增加,准确率可能还会下降.这并非是过拟合,因为它可能会在训练集和测试集上同时出现.残差学习有效解决了网络加深引起的梯度消散与准确率降低的问题.该网络模型主要以残差网络模块为基本单元线性叠加构成,其中残差模块[4]的结构根据ResNet的深度不同可以分为2种(图1).图1a为常用于浅层网络的基本残差模块,而图1b的模块结构主要用于降维,常用于深层网络.残差其实就是将输入数据直接连接到非线性层的输出上,使得整个映射转换为非线性层与输入数据的线性加和,可以表示为

y=H(x,wh)+x,

(1)

其中:H(x,wh)为非线性层,x为输入. 相较于其他多层网络模型,残差网络能够更好地拟合期望函数的权重值,对于长江上游保护鱼类识别任务而言,能够更好地拟合所对应的保护等级分类.

图1 两种残差模块

1.2 迁移学习

迁移学习[5](Transfer Learning)是一种机器学习方法,它将一个领域(一般为源领域)的知识迁移到另外一个具有相关性的领域(一般为目标领域),使得目标领域获得更理想的学习效果.通常,迁移学习适合于源领域数据样本丰富,而目标领域数据样本稀少的应用场合.

深度学习的价值巨大是因为人们掌握着不断扩展的海量数据.但是,在很多领域还没有足够的数据支撑深度学习.与传统深度学习和多任务学习不同,迁移学习通过对源领域的学习进而完成目标领域的相关任务,解决了在某些目标领域数据样本有限的问题.迁移学习过程见图2.

图2 迁移学习过程

2 基于迁移学习的长江上游保护鱼类识别网络模型

2.1 基于ResNet预训练模型的迁移学习网络

本文利用ResNet34、ResNet18预训练模型针对长江上游保护鱼类微小数据集搭建了一个迁移学习网络框架.ResNet34、ResNet18网络模型最后的线性全连接层的输入维度均为1×512,而其输出维度均为1×1 000.为了使其符合本文研究需要,将一个维度为512×4的参数矩阵与输入的1×512数据进行叉乘,便完成了由1×512输入数据到1×4输出数据的全连接,最终得到了维度为1×4的输出数据(图3),即对应了本文所提及的4种不同濒危级别的保护鱼类.因为本文的目的是判定所输入的鱼类图像属于哪个保护级别,解决的是图像分类问题,所以对于4种不同的输出,应该是4个类别的可能性值,可能性值最大的那个即为输入图像的所属类别.

图3 ResNet线性输出层

2.2 优化器

考虑到目前便携式计算设备一般不具备GPU并行计算的能力,本文使用SGD[6](随机梯度下降)作为优化函数.它可以随机地选取训练数据集中的部分数据样本进行模型训练,很大程度上减少了损失函数的计算与时间成本,适用于低算力设备.

3 实验结果分析与评价

本文实验环境如下:硬件:CPU: Intel i5-8300h 2.3 GHz,内存:8 G,集成显卡;软件:Windows 10家庭中文版,Python 3.5,Jupyter编译环境.

本文所使用的长江上游保护鱼类微小规模数据集包含训练数据集和验证数据集,它们分别包含4个保护鱼类的图像文件夹:Protected、Key Protected、Endangered和Critically Endangered,具体结构及其包含的图像样本数量见图4.

图4 保护鱼类数据集结构

为了使最终获得的网络模型具有更好的普适性,在进行网络模型训练前,先对载入的数据样本进行必要的数据扩展增强:首先,从原始图像中随机地裁切一块224×224区域;其次,随机水平翻转图像;最后,标准化图像色彩数值.载入的数据样本见图5.

图5 数据集样本示例

本文首先定义了一个标准卷积神经网络,该网络依次由一个5×5卷积层、一个2×2池化层、一个5×5卷积层及2个全连接层构成,是一个较浅的CNN,具体网络结构及参数设定见图6.

使用该CNN并以交叉熵作为损失函数,采用随机梯度下降对网络进行优化训练.为了使网络模型适应各种尺寸的输入图像并增强网络模型的鲁棒性,在对数据样本进行训练时先将加载后的图像随机裁剪一块224×224区域,然后随机水平翻转图像并对图像的色彩数值进行标准化操作.在进行前馈传播时,通过全连接层将卷积和池化后的多维张量转换为一维向量信息,脱去图像的空间信息.通过2层全连接层输出4个分类的概率分布.为了防止过拟合并减少参数运算,还在2层FC之间引入了dropout层.在利用保护鱼类数据集进行20轮迭代训练后,其错误率变化见图7.经过20轮训练,在验证集上的平均正确率仅为0.486(四舍五入)(表1),预测结果很差.误差率的计算公式为

(2)

式中:Npred为预测正确次数;Nsum为预测总数.平均正确率的计算公式为

(3)

式中:Rpred为经过某轮训练的正确率;Esum为迭代训练轮数,这里Esum=20.

其次,利用AlexNet预训练模型对本文数据集进行20轮迭代训练,其误差率变化见图8.经过20轮训练,它在验证集上的平均正确率为65.8%,且由图8可知该模型在训练集上表现尚可,但在验证集上的表现却大相径庭,预测结果较差.再次,利用VGG16预训练模型对本文数据集进行20轮迭代训练,其误差率变化见图9.在总体趋势上与AlexNet的表现类似,且经过20轮训练,它在验证集上的平均正确率为69.4%.在以上方法中,由于使用了SGD作为优化函数,前两种方法的训练效率虽然提高了,但会出现明显的抖动.这是因为随机选取的数据样本中含有的噪声信息会对训练产生较大影响,并且随机选取数据也容易导致产生局部最优解.而基于VGG16的训练,采用了Adam[7]作为优化函数,优化质量与效率均有提升,所以变化折线相对平滑,也在一定程度上避免了产生局部最优解.

图8 基于AlexNet的误差率折线图

图9 基于VGG16的误差率折线图

最后,在ResNet34和ResNet18预训练模型的基础上,根据本文研究对象对其分类器部分进行了重新定义.ResNet系列网络模型可以分为卷积部分和分类部分,卷积部分用于提取图像特征,而分类部分作为分类器使用以提供输入特征图像的语义分类参考.根据本文研究目标的需要,将分类器的最终输出由原始的1 000个分类改为4种分类输出以对应4种不同的保护鱼类,也仅仅更新分类器部分的模型参数以适应保护鱼类数据样本.利用保护鱼类微小规模数据集对修改后的模型进行20轮迭代训练,结果见图10与图11. 经过20轮迭代训练,它们所获得的平均正确率分别为71.2%和73.9%,具体训练过程见表2和表3.

图10 基于ResNet34的误差率折线图

图11 基于ResNet18的误差率折线图

表2 基于ResNet34预训练模型的训练统计结果

与前面介绍的方法相比,本文提出的2种基于ResNet预训练模型的方法虽然在正确率上有较大提高,但精度仍然较差.其原因主要有2点:其一,采用SGD会产生局部最优解,使模型在对具体输入样本进行判断时缺乏全局把握;其二,本文数据集中有些鱼类图像虽然不属于同一个类别,但其图像特征在整体或者局部有很多相似之处(图12、图13),且很多图像样本都含有大量背景噪声,较大的噪声会严重导致过拟合现象的发生,对于样本数量本来就非常有限的保护鱼类数据集来说,某些参考样本本身都有可能是一种“离群点”的存在.图12a为两种重点保护鱼类,而图12b为两种濒危鱼类,从外观角度而言,它们整体具有很大的相似度;而图13a为两种濒危鲨鱼,其尾部外观特征与属于极度濒危种类(图13b)的路氏双髻鲨、姥鲨的尾部相似(图13上方两格图像及下方两格图像).相较于其他方法,本文提出的基于ResNet18的迁移方法在训练效率和准确度方面更适用于长江保护鱼类识别分类任务(表4).本文方法2训练时长仅为VGG16的28%和ResNet34的63%,正确率均高于VGG16和ResNet34,远高于CNN;相较于AlexNet,本文方法2虽然训练时长高出两倍多,但正确率却高出近10%.综合比较,本文方法2更适合长江上游保护鱼类识别任务.

表3 ResNet18预训练模型训练统计结果

图12 整体相似的保护鱼类示例

图13 局部相似的保护鱼类示例

表4 基于不同方法的统计结果

随着低噪声数据集的不断扩充,迭代轮数的增加,模型的精度会有效提高,这在本文后续的实验中得到了证实:利用基于ResNet18的预训练模型进行迁移学习,执行30轮迭代训练后,验证集的正确率达到了78.38%.最后,在验证集中随机选取5幅图像做实际测试,经过卷积提取特征后利用分类器进行分类概率预测,最终以概率对数值最大者为确定的分类结果,测试结果见表5及图14,预测结果全对.

表5 测试图像预测概率对数表

图14 随机预测结果示例

由表5可知根据受保护鱼类的稀有程度不同,其图像分类分为极度濒危的(Critically Endangered)、濒危的(Endangered)、受重点保护的(Key Protected)及受保护的(Protected).

利用本文方法还可以方便快速地进行训练数据样本的增补扩充.通过网络等渠道采集新的图像样本文件,放入对应的文件夹下(图15).然后重新训练网络模型,在不使用GPU的情况下,进行20轮迭代训练仅需要1 581.474 551 6 s.在5G时代已经到来的今天,当然也可以使用云端服务器的GPU对新扩充的数据集进行快速训练,终端仅仅提交新的数据样本并接收处理结果.

图15 更新后的数据集

4 结论

本文提出了一种基于迁移学习的长江上游保护鱼类图像识别方法.相较于其他方法,该方法训练成本低,无需大规模数据样本驱动,且适用于便携式低算力设备.本文方法在较短时间内便可训练出较为实用的网络模型,为长江保护鱼类的分类识别提供具有实用意义的参考.

猜你喜欢

残差正确率鱼类
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
个性化护理干预对提高住院患者留取痰标本正确率的影响
基于残差学习的自适应无人机目标跟踪算法
鱼类运动会
基于深度卷积的残差三生网络研究与应用
基于两种LSTM结构的文本情感分析
奇妙的古代动物 泥盆纪的鱼类
生意
生意