改进胶囊网络的小样本图像分类算法

2022-10-16 05:51王飞龙刘萍张玲李钢
计算机与生活 2022年10期
关键词:胶囊准确率卷积

王飞龙,刘萍,张玲,李钢+

1.太原理工大学 大数据学院,山西 晋中030600

2.太原理工大学 软件学院,山西 晋中030600

在当前人工智能不断发展的时代,图像处理扮演着举足轻重的角色。图像分类作为图像处理的一个重要分支,促进了大量行业的迅速发展。目前的图像分类多数是基于大数据进行的,然而在各行业中存在数据收集、清洗困难、噪音过多的问题,这使得多数行业只能提供少量有效的复杂图像数据,导致图像分类精度不高。针对小样本复杂图像的分类问题是当前图像处理领域研究的难点和热点,伴随深度学习技术的发展,学者们尝试用神经网络来解决此类问题。

Lecun 等人提出了卷积神经网络模型LeNet-5,采用三层卷积、两层全连接,运用了tanh 激活函数,但tanh 激活函数存在幂运算与梯度消失问题,无法有效对图像进行分类;Hinton 和Alex 随后提出了AlexNet,增加了网络规模,并使用了ReLU 激活函数,使计算复杂度降低,一定程度上解决了梯度消失的问题;Simonyan 等人在2014 年提出了VGGNet,简化了AlexNet 网络结构,验证了通过加深网络深度可以提升模型性能;2016 年,He 等人提出残差网络(residual network,ResNet),解决了深度网络难以训练的问题,加大了网络深度;Szegedy 等人在2016 年提出了卷积分解的理念,在保证模型性能的前提下,降低了模型的参数量与计算量;Hu 等人在2018年提出了SENet(squeeze-and-excitation networks),利用了通道间的相关性来提升模型性能,却屏蔽了空间相关性;2018 年,Redmon 等人在ResNet 的基础上,提出了Darknet-53 架构,该架构引入残差理念,并取消池化层,可以更加有效地提取特征,减少了特征损失。然而卷积神经网络通过不断改进虽然能更加有效提取图像的特征图谱,却无法学习特征的空间相关性,只能通过大量样本提升其泛化性。目前卷积神经网络针对复杂小样本图像的分类问题,主要是通过数据增强提升样本数量或通过特征融合强化提取的特征等手段,效果却并不理想。

Hinton 等人于2017 年提出了胶囊网络(capsule network),将特征表征成向量,考虑了特征空间相关性,训练所需数据量也大幅减少,相比传统的卷积神经网络,在Mnist、Fashion Mnist 等简单样本数据集上可以使用更少的样本获得较好的分类效果,但在CIFAR 等复杂样本数据集上表现效果不佳。这是由于胶囊网络将图像所有的信息都表征成向量,一方面增加了模型训练难度,另一方面保留了过多图像细节特征,导致产生过拟合问题。2019 年,Zhang 等人提出了DCaps,在原始的胶囊网络中加入了一个残差块并在CIFAR 数据集上进行实验,一定程度上减少了图像中无用的细节特征,提高了胶囊网络对复杂图像的分类准确率,提升效果却并不显著。

基于此,本文考虑了胶囊网络的优缺点,提出一种融合Darknet 与胶囊网络的分类模型,本模型对小样本图像的分类准确率远高于胶囊网络、DCaps 和传统的卷积神经网络。本文主要在以下方面进行改进:首先将Darknet网络架构进行改进,将图像的浅层边缘特征与深层语义特征进行融合以最大程度地保留图像中有用的细节特征,再通过胶囊网络对特征进行向量化表示,可以有效减少分类所需数据量,最后通过动态路由实现图像的分类;在模型的损失函数中加入网络各层的L正则化损失项,减轻过拟合的现象,从而提高分类精度。

1 相关模型

1.1 胶囊网络

根据相关研究可知卷积神经网络的池化操作会造成图像有效特征的丢失;同时无法对特征进行向量化表达,只能通过训练大样本数据提升其泛化性能,导致在处理小样本数据集时的分类效果急剧下降。基于此胶囊网络提出使用向量代替网络中的标量神经元,使得特征具有方向性,故可以用更少的数据获取更多的信息来提升分类精度;其次在低层特征向量与高层特征向量之间引入动态路由算法,使得低层的特征能被传到高层的特征中加以利用来计算出目标物体存在的概率。

胶囊网络将提取的特征用胶囊单元(向量)进行表示,胶囊单元的模长表示物体存在的概率,方向表示实例参数,即实体特征的信息。

胶囊网络采用了Margin Loss损失,如下所示:

其中,T表示类是否存在,=0.9,=0.1,为超参数,一般设置为0.5,||v||代表该胶囊单元属于这个类别的概率。

胶囊网络虽然一定程度解决了卷积神经网络的缺陷性,但是当图像太复杂时保留了图像过多的细节特征,无法对图像特征进行有效的筛选,导致模型存在过拟合问题,致使其分类效果不佳,无法满足分类需求。

1.2 Darknet

Darknet模型汲取了残差的思想,避免了网络退化问题。它由多个Darknet块组成,每个Darknet块由两个卷积(卷积核分别为1×1与3×3)和一个残差连接组成,且每两个Darknet块之间都有一个单独的卷积层,它们都是下采样卷积,是将原有的输入补0,再通过步长为2,卷积核为3的卷积来实现,以此代替池化,避免局部信息的丢失,使模型可以更有效地提取图像特征。

Darknet 模型能有效保留一类图像的共有细节特征,避免过多保留图像无用细节特征的特性可以弥补胶囊网络的缺陷,因此本文将Darknet 融入胶囊网络来处理小样本数据集的分类问题。

2 本文模型

目前的深度学习模型一般都需要足够多的数据量才能获得较好的效果,在复杂小样本数据集上的分类效果往往并不理想。因此,本文提出一种融合模型(如图1 所示),本模型首先通过Darknet 模型提取图像的有效特征,以此解决胶囊网络保留过多图像无用细节特征容易产生的过拟合问题;接着将提取的有效特征经过胶囊网络做进一步处理,将特征表征成1×8 的二维向量,通过变换矩阵w与耦合系数c来激活高层胶囊:

图1 胶囊网络与Darknet融合模型结构Fig.1 Fusion model structure of capsule network and Darknet

进而通过squash 激活函数进行非线性化处理,将输出向量的模长压缩到0~1,的模长代表属于相应类别的概率,向量本身表示特征的位置、姿态等信息,信息量更加丰富:

最后用动态路由迭代实现最后的分类。本模型利用胶囊网络对特征进行向量化处理可以获得有效特征的多视角空间信息,使模型可以使用更少的数据量获得更高的分类准确率。此外,模型整体沿用Darknet 步长为2 的卷积代替池化,以此避免池化所带来的信息缺失问题。

本模型为了防止Darknet提取的有效特征中某种特征权重过大造成模型产生过拟合的问题,在胶囊网络的Margin Loss 损失函数后加入了网络各层权重的L正则化损失项。损失函数公式如下所示:

其中,T表示类是否存在,=0.9,=0.1,为超参数,一般设置为0.5,||v||代表该胶囊单元属于这个类别的概率,||w||为网络各层权重的L正则化损失。

图2 为未经改进初步调整后的Darknet 模型,为了让模型适应CIFAR数据集,在原模型的基础上一定程度地减少了网络深度,且在最后一层步长为2 的卷积之前增加padding 操作以减少边界信息丢失。图3为改进后的Darknet模型,该模型每个Darknet块依然采用两个传统卷积加一个残差单元,但是整个模型通过并列的特征提取器同时提取深层与浅层特征进行融合,一列通过3×3 的卷积核大小与更深层次的网络提取出有效的深层语义特征,另一列通过5×5 的卷积核大小与浅层的网络提取出视野更宽广的浅层边缘特征,通过特征融合输出16×16 的有效特征图谱,同时保留图像深层语义和浅层轮廓边缘特征,融合后的特征图谱获得的特征信息量更多。图4 为未经改进初步调整后的Darknet 模型提取的特征图谱,特征图只考虑了深层语义特征,却没有关注浅层轮廓边缘的细节特征,无法显示出相对完整的有效图像信息,在数据量较少时容易造成过拟合问题;图5 为改进后的Darknet 模型提取的特征图谱,不仅关注了深层语义特征,同时关注浅层轮廓边缘特征,可以显示相对完整的有效图像信息,一定程度地减少过拟合。

图2 未经改进的Darknet模型Fig.2 Unimproved Darknet model

图3 改进后的Darknet模型Fig.3 Improved Darknet model

图4 未经改进的Darknet模型提取的特征图谱Fig.4 Feature map extracted through unimproved Darknet model

图5 改进后的Darknet模型提取的特征图谱Fig.5 Feature map extracted through improved Darknet model

3 实验及分析

3.1 实验数据

本模型采用CIFAR-10 数据集和CIFAR-100 数据集进行实验。CIFAR-10 和CIFAR-100 是8 000 万个微型图像数据集的标记子集,如图6 所示。

图6 CIFAR 数据示例Fig.6 Example of CIFAR data

CIFAR-10数据集分为10个类别,由60000 张32×32 彩色图像组成,每个类别包含6 000 张图像,分为5 000 张训练图像和1 000 张测试图像,构成大样本数据集。CIFAR-100 分为100 个类别,每个类只包含600 张32×32 彩色图像,分为500 张训练图片和100张测试图片,由于每个类的训练图像数据较少,构成小样本数据集。本实验将CIFAR-10 与CIFAR-100 重新划分为训练集、验证集和测试集,且未对数据集进行其余的处理,其中CIFAR-10 分为训练集40 000 张图像,每类4 000 张;验证集10 000 张,每类1 000 张;测试集10 000 张,每类1 000张。CIFAR-100 分为训练集40 000 张,每类400 张;验证集10 000 张,每类100 张;测试集10 000 张,每类100张。对比各种模型在CIFAR-10 与CIFAR-100 不同量级数据集下的准确率,进行分析。

3.2 参数优化

本实验在Ubuntu18.04 的系统下进行,CPU 为AMD R9-3900X,GPU 为单块RTX-2080Ti,实验环境为Python3.6+Tensorflow1.14。

如无特殊说明,模型的参数设置为=50;学习率为0.000 1,衰减指数为0.98,每1 000 轮衰减一次;权重的初始化为截断的正态分布,均值=0,标准差=0.01。

本实验使用Cap-Dark 与Bi-Cap-Dark 测试了采用不同的方法在CIFAR-10 与CIFAR-100 数据集上对模型准确率的影响,如表1、表2 所示。

表1 Cap-Dark 不同参数的分类准确率Table 1 Classification accuracy of Cap-Dark with different parameters 单位:%

表2 Bi-Cap-Dark 不同参数的分类准确率Table 2 Classfication accuracy of Bi-Cap-Dark with different parameters 单位:%

表1与表2中conv2d为普通卷积,seperable_conv2d为可分离卷积;relu 与selu 分别为卷积神经网络所采用的非线性激活函数;BN 为对每层网络的输入进行批量归一化;GN 为组归一化,即先把输入通道分成组,然后把每个组单独拿出来进行归一化处理,最后把组归一化之后的数据再进行合并;L、L、L分别为不同的正则化项。

Cap-Dark 采用未改进的Darknet 模型提取特征,Bi-Cap-Dark 采用改进后的Darknet 模型提取特征。对比表1 与表2 的实验准确率可以看出,在特征提取部分采用改进后的Darknet 模型:在模型细节方面采用传统卷积加relu 激活函数以及批量归一化;在损失函数方面,将L正则化项加入到原有损失函数中,所得到的模型在CIFAR-100 小样本数据集上的准确率是最优的,且在CIFAR-10 大样本数据集下的准确率同样是最高的,证明了本模型具备良好的泛化性能。然而针对未改进的Darknet 模型,单独采用可分离卷积与组归一化、selu激活函数以及损失函数中加入L与L正则化项都无法获得较高的分类准确率。

3.3 实验分析

为了体现本文所提出的新模型的性能,本文选用了典型的卷积神经网络模型ResNet50、Xception 以及胶囊网络模型Capsule Network 与其改进模型DCaps 分别在CIFAR-100 与CIFAR-10 数据集上进行测试对比,对比所有模型在小样本数据集和大样本数据集下准确率的变化,实验结果如表3 所示。

表3 不同模型分类准确率Table 3 Classification accuracy of different models 单位:%

不同模型的实验均在Ubuntu18.04 的系统下进行,CPU为AMD R9-3900X,GPU为单块RTX-2080Ti,实验环境为Python3.6+Tensorflow1.14,其中DCaps的实验结果来自DCaps原始文献,其余模型的分类准确率均为重新实验的结果。

不同模型的参数设置均采用普通卷积加批量归一化,非线性激活函数采用relu,正则化项使用L正则化项;且batch 设置为50;学习率为0.000 1,衰减指数为0.98,每1 000 轮衰减一次;权重的初始化为截断的正态分布,均值=0,标准差=0.01。

Cap-Dark-NR 为将Darknet 与胶囊网络进行融合,但未对Darknet 和损失函数进行改进。该模型在CIFAR-100 小样本数据集上的分类准确率明显高于卷积神经网络模型与胶囊网络模型,由于在小样本数据集下,卷积神经网络无法有效关注特征空间信息,提取特征的信息量有限;胶囊网络无法对图像关键特征进行有效筛选,过多关注图像的无效特征信息导致过拟合问题;而通过Darknet 进行特征提取可以对无效特征进行过滤,再使用胶囊单元对有效特征进行向量化表示可以增加特征空间信息量以提升分类准确率。但在CIFAR-10 大样本数据集下的分类准确率略低于卷积神经网络模型,由于在大样本数据集下卷积神经网络可以实现良好的泛化性,而Cap-Dark-NR 一方面忽略了图像的浅层边缘轮廓特征,另一方面没有对网络的权重加以限制,使得模型在大样本数据集下的分类准确率略低于卷积神经网络。证明了融合Darknet与胶囊网络可以有效避免胶囊网络无法对图像的细节特征进行有效筛选造成的分类效果不佳的问题,但是当训练样本加大时,模型的泛化性能有待提高。

Cap-Dark 为将Darknet 与胶囊网络进行融合且在损失函数中加入L正则化项,但未对Darknet 进行改进。该模型在CIFAR-100 小样本的分类准确率比Cap-Dark-NR 高0.05 个百分点;在CIFAR-10 大样本下的分类准确率比Cap-Dark-NR 高1.76 个百分点,却依然略低于卷积神经网络模型,证明在损失中加入L正则化项能一定程度减少过拟合问题,却依然无法弥补浅层轮廓边缘特征缺失导致的准确率下降的问题,模型泛化性能还需进一步提升。

Bi-Cap-Dark 为将Darknet 与胶囊网络进行融合,并将Darknet改进为并列的特征提取器且在损失函数中加入L正则化项,发现模型性能再次获得明显提升。本模型在小样本数据集CIFAR-100 上的准确率比胶囊网络高28.51 个百分点,比DCaps高24.40 个百分点;同时在大样本数据集CIFAR-10 的准确率相比胶囊网络高30.03 个百分点,且比DCaps高22.51 个百分点。对比胶囊网络模型与其改进版DCaps,本文所提模型在小样本数据集与大样本数据集上的分类准确率得到了明显的提高,证明了改进后的模型整体泛化性能得到明显提升,能有效处理小样本数据集。这是由于模型采用改进后的Darknet同时考虑了图像的深层语义特征与浅层边缘细节特征,避免了有效特征的缺失,可以相对完整地保留有效图像信息,同时避免了胶囊网络将图像的全部细节特征表示成向量造成的分类效果不佳的问题;其次胶囊网络对有效特征的向量化处理使得模型能更加有效地处理小样本数据集,大幅提升了模型的泛化性能;最后在损失函数中加入L正则化项能有效避免模型的过拟合问题。

与卷积神经网络模型相比,本模型在小样本数据集CIFAR-100 上的测试准确率得到明显提高,相比ResNet50 高21.57 个百分点,比Xception 高18.02 个百分点;在CIFAR-10 大样本数据集上的测试准确率相比ResNet50高2.29个百分点,比Xception高1.91个百分点。对比卷积神经网络模型,本文所提模型针对小样本数据集的分类准确率明显提升,且在大样本数据集下同样获得优秀的分类效果,证明了本模型的泛化性能优于传统的卷积神经网络。这是由于ResNet50、Xception 等卷积神经网络虽然可以有效提取图像深层语义细节特征,但是卷积网络的平移不变性使得模型必须学习到不同观测角度的滤波器,但这需要大量的训练数据来提高模型的泛化性能,缺少胶囊网络的天然优势。

本文对不同损失函数以及不同特征提取器进行对比,对比网络各层权重的L正则化项与改进前后的Darknet 特征提取器对模型分类准确率的影响,实验结果如图7、图8 所示。图7 为L正则化项与不同特征提取器对CIFAR-10 数据集准确率的影响,图8为L正则化项与不同特征提取器对CIFAR-100 数据集准确率的影响,其中Cap-Dark-NR 为模型的损失函数中没有加网络各层权重L正则化项且特征提取器采用未改进的Darknet 模型;Cap-Dark 为特征提取器采用未改进的Darknet 模型,但在损失函数中加入网络各层权重L正则化项;Bi-Cap-Dark 为既采用改进的Darknet模型,又采用改进后的损失函数。

图7 CIFAR-10 消融实验分类准确率Fig.7 Classification accuracy of CIFAR-10 in ablation experiments

图8 CIFAR-100 消融实验分类准确率Fig.8 Classification accuracy of CIFAR-100 in ablation experiments

Bi-Cap-Dark 在小样本数据CIFAR-100 的分类准确率比Cap-Dark-NR 高6.91 个百分点,比Cap-Dark高6.86 个百分点;在大样本数据CIFAR-10 的分类准确率比Cap-Dark-NR 高4.50 个百分点,比Cap-Dark高2.74 个百分点。通过对比实验,发现采用改进的Darknet特征提取器且在损失中加入L正则化项的模型效果最优。只在损失函数中加入L正则化项对大样本数据的分类效果提升较为明显,但对小样本数据的分类效果并无明显提升,这是由于在大样本数据集下,虽然模型泛化能力相对较强,但是某一特征权重过大还是会对准确率造成一定的影响,因而需要在损失函数中加入L正则化项来避免模型过拟合问题;然而在小样本数据集下,由于本模型提取的有效细节特征过于单一,只关注深层语义特征而忽略了浅层边缘特征,使得模型的泛化性相对较弱,因此只在损失函数中增加L正则化项依然不能有效提升模型泛化性能。然而在改变损失函数的基础上再采用改进后的Darknet 模型提取特征,可以丰富图像的有效细节特征,使模型的泛化性得到明显提升。通过图7、图8 发现,本模型的拟合速度快,容易训练,在30 个epoch 时,模型就趋于拟合。本模型可以大幅度提升小样本数据集的分类准确率;同时在大样本数据集上的分类准确率也获得了一定程度的提升,证明了本模型具有良好的泛化性能。

4 结束语

目前的图像分类模型中胶囊网络可以对简单的小样本数据集进行有效分类,但在复杂的小样本数据集上分类效果不佳。本模型针对胶囊网络的缺陷进行改进,将Darknet 与胶囊网络进行融合,并对Darknet 进行改进,将图像浅层边缘特征与深层语义特征进行融合,解决胶囊网络关注过多的图像细节特征,难以对图像细节特征进行有效筛选而造成的模型过拟合问题。在对小样本数据集进行分类时,本文模型相比胶囊网络、DCaps、ResNet50、Xception分类准确率提升明显;且对大样本数据的分类准确率比原始的胶囊网络及DCaps模型得到了明显提高,同时对比ResNet50、Xception 分类准确率也获得了一定程度提升,证明了模型泛化性能良好。在未来的研究工作中,将在减少模型参数的数量上做进一步研究。

猜你喜欢
胶囊准确率卷积
国家药监局批准七蕊胃舒胶囊上市
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
时光胶囊
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
时光胶囊
从滤波器理解卷积