朱书勤,李 锐,王天乐
(1.北京交通大学软件学院,北京 100044;2.首都师范大学信息工程学院,北京 100048;3.北京交通大学电子信息工程学院,北京 100044)
海洋对人类仍然是一个未知的空间,人类对海洋生物的研究进展比较缓慢。由于拍摄条件限制,海洋生物图像数据往往难于获取,拍摄时受到能见度的影响较大;一些物种间的特征差异很小,视觉分辨的难度大。同时受到水下光线不均匀的影响,水下图像存在颜色失真和曝光不足等问题,严重影响了水下目标的识别精度[1]。卷积神经网络得益于其优秀的性能,被广泛应用于图像分类领域[2]。其中,EfficientNet 作为现有最佳的图像分类卷积神经网络模型,拥有较好的分类正确率。
该文针对海洋生物图像分类问题,将EfficientNet B0 模型、MobileNet V2 模型和DenseNet 模型融合,建立可迁移的模型。将经过迁移学习训练后的模型在现有海洋生物的数据集上进行训练,最终使用模型融合的方式优化训练结果,获得海洋生物物种分类结果。实验得到的模型有较好的迁移性,可以迁移至其他水下生物图像数据集,并有较高的分类准确度。
海洋生物分类的总体流程如图1 所示。分类流程由数据集拆分、迁移学习、图像预处理、模型训练、模型融合5 部分构成。首先将现有实验数据集拆分成训练集和测试集,做好前期准备工作。其次构建EfficientNet B0[3]、DenseNet[4]和MobileNet V2[5]3 个 卷积神经网络模型,将3 个模型各自在ImageNet 数据集上进行预训练,提取底层通用特征,缓解在海洋生物小数据集上训练的过拟合问题。将预训练后的模型迁移至该文实验数据集,需要先对数据集作预处理。预处理分为两个阶段,首先是图像增强处理:将图形通过随机旋转、缩放、裁剪以及根据给定模式进行填充,增加多样性和差异性;其次默认自然图像是一类平稳的数据分布,即数据每一维的统计都服从相同分布,在此基础上用数据集的每个样本减去训练集图像的像素统计平均值,可以移除共同的部分,凸显个体差异。最终,将前文所述的3 个模型进行融合[6]。
图1 海洋生物分类流程图
文中选用EfficientNet 系列中的基础网络模型EfficientNet B0。首先将该模型在ImageNet 数据集上进行预训练[7],共包含5 330 564 个参数,其中需要梯度下降训练的参数有5 288 548 个,不需要梯度下降训练的参数包括Batch Normalization 层中的均值和方差,共42 016 个。相比于传统卷积神经网络模型,该网络的核心结构为移动翻转瓶颈卷积(MBConv)模块。该模块通过神经网络架构搜索得到,引入了压缩与激发网络的注意力思想。
目前,分类网络的模型扩展主要从3 个维度进行:加宽网络、加深网络和增大分辨率。针对分类网络深度d、宽度w和分辨率r这3 个维度分别作扩展和优化,都能提升模型效果,但上限也比较明显:准确率达到80% 后提升就很小了。而通过同时调整上述3 个维度的模型扩展参数,就能更加有效地提升模型的效果[8]。
EfficientNet 为了找到满足式(1)的3 个维度的最佳参数,引入参数φ,将深度d、宽度w和分辨率r3 个参数按照式(2)分别用φ表示,并使用如式(3)所示的模型复合缩放方法。
同时为了减少搜索时的计算量,对式(2)中的底数作了数值限 制,分别为α·β2·γ2≈2,α≥1,β≥1,γ≥1。将复合系数φ固定为1,先假设有两倍以上的计算资源可以使用,然后对α、β、γ进行网络搜索;找到最佳参数值后固定α、β、γ,通过复合调整公式对基线网络进行扩展。最后,在基础的EfficientNet B0 模型上添加了全局空数据平均池化层、Dropout 层和全连接层。
随着网络层数的加深,网络在训练过程中的前传信号和梯度信号在经过很多层之后可能会逐渐消失。为了最大化网络中所有层之间的信息流,DenseNet 网络[9]中的所有层都两两进行了连接,使得网络中每一层都接收它前面所有层的特征作为输入,从而使网络中存在着大量密集的连接。
对比诸多神经网络,DenseNet 在一定程度上减轻了训练过程中梯度消散的问题。DenseNet 模型结构如图2 所示,在反传时每一层都会接收其后所有层的梯度信号,所以靠近输入层的梯度不会随着网络深度的增加变得越来越小。由于大量的特征被复用,所以使用少量的卷积核就可以生成大量的特征,最终模型的尺寸也比较小。DenseNet 的架构为:
图2 DenseNet模型结构示意图
其中,xl表示l层的输出,Hl表示一个非线性变换,包括BN、ReLU 和3×3 的卷积;[x0,x1,…,xl-1]表示将0 到l-1 层的输出特征图作通道合并。
MobileNet网络结构是一款轻量级的移动终端神经网络,文中选用了其系列中的V2 版本。MobileNet V2 相比于其V1 版本,在可分离卷积架构的基础上引入倒残差模块(Inverted Residuals)和线性瓶颈(Linear Bottleneck)层[10]。倒残差模块与传统残差模块中维度的先缩减再扩增正好相反,捷径连接的是维度缩减后的特征图。线性瓶颈层去掉了小维度输出层后面的非线性激活层,目的是保证模型的表达能力。
考虑到模型移植性能,内存消耗的缩减也十分重要。倒残差瓶颈层模块可构建有向非循环计算超图G,该超图G由代表操作的边和代表中间计算张量的节点组成。调度计算是为了最大程度地减少需要存储在内存中的张量的总数。在最一般的情况下,如式(5)所示,它将搜索所有可能的计算阶数并选择最小化的阶数。
在海洋生物分类的应用场景,文中使用Mobile Net V2模型可以在需要时单独将其移植到移动设备。
为解决神经网络模型训练成本过大的问题,该文实验对前文所述的3 个神经网络模型使用了迁移学习的方法。
在训练深度学习网络模型时,需要大量的高质量标注数据,尤其是在图像领域[11-12]。因此会选择在ImageNet 数据集上预训练,对模型进行初始化。通过使用其预训练的权重,使得即使只有一个较小的数据集,也能够得到很好的性能。该文实验中融合的3 个模型都各自先在ImageNet 上进行学习,以解决海洋生物图像数据集较少的问题[13]。将预训练后的模型迁移到该实验数据集进行学习时,冻结其底层卷积层,保留该层中包含的大量底层信息,仅训练顶层卷积层和全连接层[14]。
该文实验中将EfficientNet B0模型、MobileNet V2模型以及DenseNet 模型融合。将已在ImageNet 数据集上训练过的3 个神经网络模型迁移至该实验数据集上训练并融合之前,需要首先将图像数据集进行处理。
把原始的训练集先分成训练集和测试集两部分,使用图片样本增强器对样本中的每个sample 进行迭代。设置其缩放比例、旋转角度等,使原本的图像更多样。同时逐样本减去均值,突出图像特征[15]。
文中选用的3 个模型训练后在测试集上的正确率都达到了80%以上,但还有提升空间。为了使效果更好,使用Uniform Blending 模型融合方法[16],在训练集的数据上训练3 个模型,对3 个模型的预测结果进行平均,通过减少过拟合,使得决策边界更加平滑。使用融合后的模型去预测测试集数据的标签。
将前文所述的3 个模型设为(g1,g2,g3),每个模型权重相同。融合后的模型如式(6)所示:
该文实验使用的计算机CPU 为Intel Core I7-9750H,主频为2.6 GHz,运行内存为24 GB;显卡采用NVIDA RTX 2070,运行显存为6 GB,操作系统采用Windows 10。使用Python 3.8 编写程序,读取本地数据集。
文中使用的图像数据集共有1 882 幅图像,分为20 类。其中,1 323 幅作为训练集图像,560 幅作为测试集图像。图像数据集规模如表1 所示。
表1 海洋生物图像数据集
将图像统一调整为224×224 像素的RGB 彩色图像。在此基础上将图像作旋转、缩放、裁剪等随机调整,以增加多样性和差异性。将调整后的彩色图像分别输入3 个神经网络模型。采用批量随机梯度下降的方法训练网络模型,优化参数。海洋生物图像数据集样例如图3 所示。
图3 海洋生物图像数据集样例
为定量评价该文提出的海洋生物图像分类方法的准确率,选取模型在测试集上的正确率和损失函数值作为评价指标。3 个模型的参数设置如表2所示。
表2 神经网络模型参数
同时给每个模型添加回调函数,监测模型权重:若连续10 次迭代损失函数值不再下降,则停止训练并获得模型训练过程中的最佳权重;若连续两次迭代模型性能不再提升,则降低学习速率至原有速率的80%。通过这样的方法,确保训练得出的模型具有最佳表现。3 个模型的正确率和损失函数值随迭代次数的变化如图4 所示。
图4 3种模型的正确率和损失函数值随迭代次数的变化图
文中先将前文提到的3 个神经网络模型各自进行训练,并存储模型文件。由图4 可知,正确率随迭代次数的增加而逐渐上升;损失函数值随迭代次数的增加而逐渐下降,符合预期。3 个模型各自的最终正确率和损失函数值如表3 所示。
表3 单个模型最终正确率和损失函数值
使用模型融合的方法,使得整体效果得到进一步提升。最终融合训练后,在测试集上损失函数值降低到0.303 3,正确率提升至0.912 5,相比分别单独使用3 个模型,损失函数值分别降低了0.136 8、0.223 4、0.211 2;正确率分别提高了0.026 8、0.073 2、0.083 9。使用融合后的最终模型对海洋生物进行分类,损失函数值和正确率获得显著优化,效果良好。
文中针对图像数据集较小的海洋生物领域进行了研究,设计了基于卷积神经网络、迁移学习和模型融合的图像分类模型。文中采用现有卷积神经网络中在图像分类领域效果最好的EfficientNet B0 模型,辅助以可以解决特征丢失问题的DenseNet 模型和便于移植至移动设备的MobileNet V2 模型进行模型融合。同时使用了迁移学习方法,解决目标场景下图像数据集过少、易产生过拟合现象的问题。
该文实验采用的方法和思路可以进一步扩展和优化,并在水下生物分类等领域使用。