基于迁移学习的有毒水母分类方法研究
2022-03-09王鑫文泽华任家乐韩艺圆
王鑫, 文泽华,任家乐,韩艺圆
(1.兰州职业技术学院, 甘肃兰州730070; 2.兰州工业学院, 甘肃兰州730050; 3.宁夏大学, 宁夏银川750021)
一、引言
提到水母,人们首先会想到它透明的、伞状的、带有许多触手的外表,它们在海洋中徜徉的袅袅身姿美丽而又奇幻,让人浮想联翩,但很多水母并不像它所表现地那么“温柔”,许多水母的触手都带有大量毒液的刺细胞,现存有不少种类是有剧毒的。如果不小心被此类水母蜇伤,会使人麻痹、休克甚至死亡。例如澳洲箱水母,它是目前已知水母品种里毒性最强的水母,一只箱水母可以毒杀60名成年人,且在短短四分钟之内就会致人死亡。此类水母对于海下勘察作业人员具有极大的安全隐患。即使是在浅滩海岸,这种危险也依然存在,曾发生过多起游客在海滩被搁浅的僧帽水母蜇伤进而引起休克的案例。设计一种通过水母图片来判别水母危险程度的系统可以方便海员、游客、海下作业人员等对所观察到的水母进行一定程度地安全识别是很有必要的。
图像识别是在计算机对图像特征提取的基础上进行的,虽然有很多有效的算法可以对图像进行特征提取,但往往这些基于数学模型的方法需要进行大量的运算,耗时较长,而且对于内容复杂的图像通常提取特征精度较低。深度学习技术在图像特征提取方面的应用在很大程度上提升了图像特征的处理效率和精度,基于深度学习的方法具有更好的实时性。卷积神经网络的提出最初就是为了解决图像分类识别问题,目前已经有很多成熟的卷积神经网络模型可以对各类图像进行分类识别,而且已经能达到很高的识别精度,例如LeNet[1]主要用来进行手写字符的分类与识别,准确率达到了98%,AlexNet[2]证明了当卷积神经网络具有更宽更深的结构时仍然有效并确立了深度学习在计算机视觉领域的地位。VGGNet[3]取得了2014年Imagenet[4]比赛定位项目第一名与分类项目第二名,它可以看作是AlexNet的加深版本,它相对于AlexNet而言,具有更深的层次和更多的参数,所以它具有更好的表达能力,而深度网络达到一定深度后,如果继续增加层数并不能进一步提高准确率,反而使得网络收敛变得更慢,测试数据的准确率也会变得更差。上述网络模型都是基于数据驱动的深度学习模型,虽然已经是非常成熟的网络模型,但在图像分类识别的具体任务中,如果想要达到较高的准确率,首先需要有大规模的数据样本作为训练数据集才能保证上述网络模型具有理想的准确率。其次,上述深度网络模型需要有比较昂贵的计算机设备才能支持大规模数据样本训练,对于普通用户和便携式设备来讲,普及性较差。为了解决上述问题,本文提出了一种迁移ResNet预训练模型的方法以解决毒性水母图像数据样本匮乏和使用普通设备很难对大型成熟网络模型进行训练的问题,实验表明,本文方法在针对有毒水母微小规模数据集进行分类识别的任务中,在使用普及性机器的情况下,相对于使用常用的深度学习网络模型,仅需要很短的训练时间就能够达到较高的识别率。
二、相关工作
(一)深度残差网络ResNet[5]
ResNet是图像分类识别任务中的王者,其准确率很高,它有效解决了深度网络由于梯度消失或者梯度爆炸而发生退化的问题,并且将网络层数扩展到了152层,其网络结构主要由残差学习模块构成,如图1:
图1 残差结构
相较于普通卷积过程,残差结构会引入一个X的恒等映射(Identity Mapping),当梯度消失时,网络模型将学习不到任何有价值的信息,这时就需要恒等映射来防止梯度消失以至于模型不能够继续学习。可以用F(X,Wi)来表示残差映射,那么输出可以表示为:
Y=F(X,Wi)+X(1)
当梯度消失时,即F(X)=0,Y=relu(X)=X,如此会将X恒等映射,相当于在浅层网络中堆叠“克隆层”,由于整个网络结构中有很多的恒等映射,所以网络继续学习到有效信息的概率会大幅度增加。从数学角度来解释的话,由于对X求导数会得到常数1,所以Loss基本不可能为0。由于VGG有3个全连接层,这会用到大量参数,而ResNet用平均池化层代替全连接层,会节省大量参数。与VGG相比,ResNet参数少了很多,所以其训练效率较高。
(二)迁移学习(Transfer Learning)
迁移学习[6]是将某个领域或任务中学习到的知识或方法应用到其他不同的领域或问题中,让计算机也具备“举一反三”的能力,以免在新的领域又要通过大数据从头学起。针对具体的应用场合,可以节省网络模型训练时间,也为普及型计算设备获得较理想的网络模型另辟蹊径。使用迁移学习有诸多益处,第一,可以利用海量数据中与当前任务相关标注数据构建适用网络模型;第二,节省设备购置成本和训练时间成本,将世界顶级公司在大数据上训练成型的模型迁移到当前应用中来,需要做的仅仅是微调模型;第三,摆脱目前还没有通用模型的局面,利用成熟模型进行灵活调整以适应当前任务需要;第四,面向特定领域和任务,利用现成的标注数据和模型。
三、基于迁移学习的水母分类网络模型
(一)网络结构
根据毒性程度不同,本文将有毒水母分为三类,分别为:警惕的(Vigilant)、危险的(Dangerous)及致命的(Fatal)。
1.基于VGG16预训练模型的迁移网络——本文方法1
本文在VGG16预训练模型的基础上,利用迁移学习方式,利用VGG16现成模型已经习得的海量标注数据及模型参数,并将已有模型分类器中的最后一层的线性输出修改为3种输出,以对应于3种不同的水母。其中的分类器结构如图2:
图2 本文分类器结构
2.基于ResNet预训练模型的迁移网络——本文方法2
由于不同种类的水母在外观方面有很多相似的特征,而越深的网络模型更有利于感知和提取这些特征之间的差异性,相较于其他网络模型,ResNet更具备这方面的优势。而且利用ResNet具有快速收敛的特性,以便可以在手持移动弱算力设备(如:智能终端)上快速识别水母的毒性程度,本文依据迁移学习的数据相关性,在ResNet预训练模型的基础上,根据任务需要做了一定修改,本文将最后的线性层进行了重新定义,将输入单元数(前面各层卷积所提取到的图像特征数目)修改为符合本文研究内容的4种输出以对应不同类别的水母。
(二)优化器
考虑到本文方法在弱算力设备上的普及应用,而通常解决大规模深度学习问题时,梯度下降法计算开销巨大,所以本文采用随机梯度下降法,每次仅用单个数据样本来确定梯度下降方向。因为随机梯度的期望就是梯度本身,所以在对网络模型的优化过程中,其实不断优化的是Expected loss,其可以表示为:
上式表示对所有可能的样本x, 计算其expected loss,其中x表示数据样本,与其对应的分布用p(x)表示,W为模型参数。那么相应的梯度可以表示为:
WL(W)=WEx[L(W,x)]=Ex[WL(W,x)] (3)
由于无法获知真实的分布p(x),所以expected loss很难计算,使用蒙特卡洛(monte carlo)算法[7]做近似估计(approximation),(3)可以近似表示为:
随着M增大,所得到的估计值就会更加准确。当M =1时,即使用了单个样本,即为SGD[8],其较适用于本文的研究内容。
(三)数据集
本文构建了一个有毒水母的微小图像数据集(可以扩充),该数据集中的图片均为.jpg、.png等网络格式图片构成,其中训练数据集和测试数据集按照水母毒性大小都含有Vigilant、Dangerous及Fatal三种类别的数据样本,数据集结构如图3。
图3 有毒水母数据集结构
四、实验分析与评价
本文实验基于如下硬软件配置环境进行:硬件:CPU:Intel i5-8300h @2.3GHz 内存:8G,集成显卡,软件:Windows10家庭中文版+python 3.6+Jupyter Notebook。为了使模型的鲁棒性更强,首先对所加载的训练图像进行数据增强处理:1、从单张图像样本中随机裁剪一块224×224的图像区域。2、随机地对图像区域进行水平或垂直翻转。3、对图像区域进行色彩标准化处理。如图4。
图4 加载随机图像样本示例
(一)首先构建一个卷积神经网络对有毒水母微小规模数据集进行训练
本文构建了一个CNN网络模型,它由提取图像特征的两个卷积层和一个池化层构成主要部分,后接两个FC层用于分类输出。使用该网络对有毒水母微小规模数据集进行20轮迭代训练,结果如表1。
由表1可以看到,搭建的CNN网络在当前微小规模数据集上的表现并不好,经过20轮迭代训练后,训练准确率只有60%左右,而测试正确率也仅有50%上下,其损失折线下降表现也并不好,如图5。接下来使用本文基于迁移学习的方法。
表1 CNN迭代训练结果
图5 CNN模型迭代训练错误率示意图
(二)使用本文提出的第一种方法
即在VGG16预训练模型上利用迁移学习对有毒水母微小规模数据集进行训练,并引入交叉熵作为损失函数,将模型参数放入Adam优化器[9]中进行训练,一个训练周期(epoch)中将对训练数据集中的所有样本都训练一遍。使用该迁移网络模型对有毒水母微小数据集进行20轮迭代训练的变化情况见表2。
如表2所示,利用本文方法1对有毒水母微小数据集进行迭代训练,随着训练持续进行,Loss值下降到0.3之后,始终在0.1到0.2左右徘徊,在迭代到第11轮之后,Loss又在0.1上下浮动,经过20轮训练后,loss值下降了6倍左右,在测试数据集可以达到80%的正确率,结合图6观察,图中,深色为训练错误率折线、浅色为验证错误率折线。可以看到,模型在测试数据中的表现并不理想,与训练数据拟合地并不尽如人意。利用本文方法1经20轮迭代训练共耗时1588.029秒。
表2 本文方法1迭代训练情况
图6 本文方法1训练错误率示意图
再来看实际测试效果,在测试集中随机抽取6张图片进行测试,结果如图7所示,判断错误的第四张图片已经在其下方以红色叉号标出,其所属类别应该为”Fatal”。
图7 本文方法1样本测试结果
(三)使用本文提出的第二种方法
即在ResNet18预训练模型上利用迁移学习再对有毒水母微小规模数据集进行训练,同样引入交叉熵作为损失函数,将模型参数放入SGD优化器[8]中进行训练,对训练数据集中的所有样本都训练一遍为一个训练周期(epoch)。使用该迁移网络模型对有毒水母微小数据集进行20轮迭代训练的变化情况如表3。
表3 本文方法2迭代训练情况
再结合图8观察利用本文方法2进行训练的错误率变化趋势,图中深色折线为训练数据集、浅色折线为验证数据集。
依据表3和图8所示,本文方法2的正确率与Loss相对吻合,在ResNet网络模型持续消除梯度消逝的情况下,相较于方法1,本文方法2的训练折线与测试折线拟合度较好,但由于本文并未考虑数据集平衡的问题,且水母图片训练样本之间确实存在特征近似的情况,在训练集和测试集样本均在几十张以内的情况下,确实很难达到理想的准确率;可以看到在20轮迭代训练后训练集的准确率仍高于验证集,测试集正确率依然具有提升的余地。由此可见,利用预训练ResNet模型在微小规模数据集上进行迁移训练是很有效的,且本文方法2经20轮迭代训练共耗时471.534秒。
图8 本文方法2训练错误率示意图
随机从测试数据集中抽取6张图片进行测试,结果如图9所示:实际测试结果均为正确。
图9 本文方法2样本测试结果
(四)结果判定
为了比较不同方法在有毒水母微小数据集上的表现,进行系统化实验,每种方法都进行10次实验,每次均迭代训练20次,并计算它们的平均结果,见表4。
表4 基于不同方法的数据统计
由表4可以说明,本文方法在针对微小规模数据集样本的图像识别分类任务中,测试精度均优于直接使用卷积网络模型进行训练的方法,对于本文提出的两种方法,后者虽然测试准确率略低,但训练时间比前者快将近3.5倍左右,对于便携式弱算力设备来讲,本文方法2最为适用。
五、结语
本文针对有毒水母图像识别分类任务提出了一套行之有效的方法,该方法解决了训练数据匮乏的窘境,并克服了在弱算力设备上难以训练较高精度网络模型的问题。本文方法可以在很短时间内快速训练出较高精度的毒性水母识别模型,且容易在手机、平板电脑等智能终端上普及应用。本文方法相较于其他方法,具有在很短时间内达到更高识别准确率的优势。