张贤坤,陶健伟,董 梅,袁 菁
(天津科技大学人工智能学院,天津 300457)
卷积神经网络(convolutional neural network,CNN)在目标检测和图片分类领域中取得了巨大成功,广泛应用于计算机视觉领域[1-4].CNN可以通过最大池化和一系列卷积操作简化计算,将低维的具体特征组合成高维的抽象特征,逐步增强每层神经元的感受野,提高模型的特征提取能力.但是,CNN的池化操作会损失局部区域内一些重要的属性信息(如纹理和位置等),因此无法高效地建立特征间的空间位置关系.当改变特征的位置信息时,网络的识别能力就会变差,无法从根本上解决特征间的空间位置关系.
为了解决上述问题,Hinton等[5]提出胶囊的概念.相较于传统的CNN都是用标量神经元表示特征,胶囊则采用向量形式表示图片中的实体特征,因此也被称为胶囊向量,用以对特征属性例如纹理、色彩、速度、位置等进行封装和编码.胶囊向量涵盖众多属性信息,且具有大小和方向,这使胶囊网络能够拟合复杂的数据特征.在路由过程中,低级胶囊将其输出结果发送至对该输出结果表示认同的高级胶囊, 并通过迭代机制更新自身状态,这使胶囊能更好地保存并更新特征的位置与属性信息.胶囊网络建立了特征间的位置关系,这一特性使它在小型数据集上对于目标位置和角度的变化比具有相似结构的卷积神经网络更具有鲁棒性.
Sabour等[6]在2017年提出了一种基于胶囊向量和动态路由算法的胶囊网络(dynamic routing capsule network,DR-CapsNet).该网络包含2层卷积层和1层全连接层,其中第1层卷积层使用卷积操作对输入图像进行特征提取,第2层卷积层(初始胶囊层)将特征图编码成固定维度的胶囊向量,而全连接层输出高级胶囊用以分类图片.动态路由算法嵌入在初始胶囊层和全连接层之间,将低级胶囊由姿态矩阵所获取的输出送入对输出结果表示确定的高级胶囊,但路由算法有复杂的迭代机制,当输入空间维度较大时,模型会面临巨大的计算负担.为了解决这个问题,Hinton等[7]提出了最大期望(expectation-maximization,EM)算法,用胶囊矩阵代替胶囊向量,且在路由阶段交替使用步骤E和步骤M更新高级胶囊的状态,使胶囊网络的泛化性和鲁棒性更强,但随之导致模型的复杂度高、参数量大.Choi等[8]用一种注意力机制取代动态路由算法和最大期望算法中路由系数的更新过程,在减少模型参数量和复杂度的同时,能够显著提升模型的分类准确率和鲁棒性能.
上述工作中,大多数仅对胶囊层的结构或者路由机制进行优化,而本研究关注的是初始胶囊层的胶囊生成阶段,以获取多尺度的属性特征,从而提升胶囊对于图片特征的提取能力.研究[9-11]表明,多尺度特征提取作为一种即插即用的特征重构模块,已广泛应用于各类视觉任务和自然语言处理任务中.多尺度特征提取模块可代替一般的卷积模块和单尺度特征模块,作为网络模型的一种基本架构[3,12],为特征提取和重构提供了一种多尺度、多层次的选择.Szegedy等[13]通过实验表明,多尺度特征提取模块能够将提取到的不同尺度的特征信息进行融合,使模型在分类准确率上优于单尺度特征模块.
在自路由胶囊网络[14](self-routing capsule network,SR-CapsNet)的基础上,本文提出了多尺度自路由胶囊网络(multi-scale self-routing capsule network,MSSR-CapsNet),充分利用多尺度特征模块强大的特征重构能力和自路由胶囊网络的自路由机制.多尺度特征提取模块有助于捕获图片中不同尺度的特征变化,而自路由算法能以极少的计算成本和模型参数路由不同尺度的低级胶囊,两者结合实现特征提取和重构,从而提升模型的分类准确率和鲁棒性.在SVHH、CIFAR-10和CIFAR-100数据集上进行实验,与其他胶囊网络相比,MSSR-CapsNet在性能上有明显提升,达到了较高的分类准确率.
胶囊网络作为CNN的一种变体,克服了CNN不具备旋转不变性的缺陷.当输入特征的空间位置发生变化时,胶囊网络能利用姿态矩阵编码低层特征和高层特征间的位置关系和其他属性关系,使模型对于仿射变化和对抗攻击更具有鲁棒性[15].但是,胶囊网络也存在以下不足:首先该网络仅包含2层卷积层和1层全连接层,难以提取复杂的图像特征[16];其次在路由阶段[6-7]需执行复杂的迭代机制,其计算开销远大于卷积神经网络.为了进一步提升胶囊网络的性能,通常采用以下改进策略:第一,提升初始胶囊层对特征的建模能力,又称优化胶囊法;第二,改进路由算法,减少网络参数,即优化路由法.优化胶囊法的目的是提取对任务更有利的胶囊,通过改进胶囊网络,使其更适用于某项学习任务.其作用主要为减少动态路由算法的计算负担,针对特定任务提升模型的性能.优化路由法主要是为了能够减少模型的参数量,通过数学方法改进动态路由算法,可能会使局部模型的性能降低,但是影响相对较小.
SR-CapsNet[14]改进了路由系数的生成策略,提出了一种有监督、非迭代的自路由(self-routing,SR)算法,与其他胶囊网络相比[6-7],计算效率和分类准确率更高.如图1所示,在SR-CapsNet中,每个L层胶囊无需利用迭代机制协调自身和L+1层胶囊间的连接概率,巧妙地引入了一个可训练的路由权重矩阵Wroute与对应的胶囊ui相乘作为L层胶囊i连接到 L+1层胶囊j的概率.
图1 自路由算法 Fig.1 Self-routing algorithm
其中:iu为L层胶囊,softmax为非线性激活函数.
对初始特征图iU进行标量化,即采用reshape操作获取激活标量ia,ia反映了L层胶囊的激活概率值;然后将连接概率和L层胶囊的激活标量ia相乘用于产生L+1层胶囊激活标量ja,进而更新 L+1层胶囊.
其中:Ωl为L层胶囊数量,最后进入L+1层胶囊生成环节.首先引入了一个可训练的姿态权重矩阵Wpose与L层胶囊ui相乘作为L+1层的预测胶囊ui|j,然后将预测胶囊 ui|j与激活标量 aj作用,进而更新L+1层胶囊.
自路由胶囊网络去除了路由算法过程中复杂的迭代机制,仅利用一个可学习路由权重矩阵编码低级特征和高级特征的空间和属性关系,在提高胶囊网络性能的同时,能显著降低模型的参数量和计算量,但存在以下缺陷:
(1)如图1所示,SR-CapsNet采用的是单分支胶 囊结构,对于图片中实体特征的提取能力不够,难以捕获多尺度特征变化.
(2)图1中仅通过1层自路由算法难以很好地编码低级特征和高级特征间的信息转换.这是因为图像的特征往往复杂而又多级,例如特征由低到高分别是线条、嘴巴、人脸,且高级特征需要多方面融合不同位置和属性的低级特征以更新自身的状态.
多尺度自路由(multi-scale self-routing,MSSR)算法的整体结构如图2所示,针对SR算法的不足进行了如下改进:
图2 多尺度自路由算法的整体结构 Fig.2 Overview structure of MSSR algorithm
(1)采用多分支胶囊结构,在不同胶囊分支上生成不同维度的胶囊向量表征实体信息.较之SRCapsNet采用的单分支胶囊结构而言,增强了模型的特征提取能力,有利于路由算法生成多尺度路由信息.
(2)在模型融合阶段,采用胶囊注意力机制获取全局和局部的路由特征,用以高效融合不同胶囊分支所产生的路由系数.该胶囊注意力具有可以针对每个胶囊分支的路由系数自适应分配权重的优势,能够产生更精确的连接概率.
文献[14]提出的架构在SVHN和CIFAR-10数据集上的表现结果尚可,但在CIFAR-100这种包含复杂特征和对象的数据集上获取的分类准确率则低于预期.这是因为SVHN和CIFAR-10数据集本身就是轻量级数据集,包含的类别数和特征并不复杂,模型能够很容易地提取出边缘和纹理特征用于图片分类,而CIFAR-100数据集涵盖的特征较为复杂,对模型提出了进一步要求,需要对特征进行高层次理解和多尺度建模.因此,本课题组提出一种新型的多尺度胶囊网络结构,如图3所示,从左到右分别为特征映射层、多分支胶囊层、高级胶囊层.
图3 多尺度自路由胶囊网络的结构 Fig.3 Structure of MSSR-CapsNet
MSSR-CapsNet将初始胶囊层改为多分支胶囊层,在每个胶囊分支上生成具有不同胶囊维度的胶囊向量.经过特征映射层和多尺度胶囊层对原始图片进行特征提取和胶囊生成,并通过挤压函数(squash function)对每个向量神经元进行方向不变的尺度压缩,使向量模长被压缩到0~1,用于表示该向量神经元被激活的概率.在每个胶囊分支上,通过自路由算法,由低级胶囊通过路由权重矩阵routeW 对高级胶囊进行位置预测,最后通过胶囊注意力机制高效融合不同分支的预测结果,选择性地激活高级胶囊.
以CIFAR-10数据集为例,模型的前馈传递过程如下:图片的大小为32像素×32像素,首先经过特征映射层的线性和非线性变换提取出512张4像 素×4像素大小的初始特征图U.然后多分支胶囊层对这些初始特征图进行向量化处理,即每个胶囊分支(在本文中默认的胶囊分支数为4)采用不同大小的512组卷积核.前3个胶囊分支每组卷积核中分别包含1×1、3×3和5×5大小的卷积核,对特征图以步长为1和填充为0、1、2进行深度卷积.最后一个分支上每组中包含3×3和5×5大小的卷积核代替7×7大小的卷积核,用来对特征图进行深度卷积,之后所有胶囊分支都采用1×1大小的卷积核在特征图通道层面上进行点卷积.最后采用ReLU激活函数,得到不同尺度的底层特征,即为1×16、1×32、1×64和1×128大小的胶囊,具体结构如图4所示.
图4 多分支胶囊示意图 Fig.4 Schematic diagram of multiply branches capsule
其中:ai为L层胶囊的激活标量,uj为L+1层胶囊.
本文提出一种新颖的胶囊注意力机制,用以控制路由系数间的信息流动.动态调整每个胶囊的路由系数值,为每个路由系数自适应分配权重,用以突出重要的低级特征,而忽略无关或影响程度较小的低级 特征.
其中:C为融合后总的路由系数.
接下来进入胶囊注意力环节,沿着高级胶囊维度N对C进行全局平均池化操作,收集后计算全局路由信息统计值(S).具体来说,S中第m个元素值的计算是通过在高级胶囊维度N上对C进行压缩操作.
其中:Sm为路由信息统计值.
其中∂表示ReLU激活函数.在获得全局路由信息统计值W和局部路由信息统计值Z的基础上,胶囊注意力机制的最终输出为
其中: ()MC表示胶囊注意力机制产生的胶囊注意力权重,⊕表示逐元素相加(element-wise summation),⊗表示逐元素相乘(element-wise product).
3.1.1 数据集
腕表表壳采用玫瑰金材质打造,呈现出类似蛇头造型。蛇头两侧轮廓镶嵌38颗钻石,而表冠装饰一颗凸形蛋面切割粉红碧玺。带有精细玑镂纹饰的黑色蛋白石表盘配以玫瑰金时标,传递优雅气韵。
在实验中采用SVHN数据集、CIFAR-10数据集和CIFAR-100数据集(图5).
图5 数据集展示 Fig.5 Overview of datasets
SVHN数据集中的图片为街景门牌号数字0~9,其风格与MINST数据集相似.图片的裁剪尺度都很小,却包含了更复杂的背景特征,每张图片的大小为32像素×32像素,共有99289张图片,其中73257张图片为训练集,26032张图片为测试集.CIFAR-10数据集是色彩丰富的自然图片,由10个不同类别的物体构成,总共有60000张图片,其中50000张图片为训练集,而剩余的10000张为测试集.训练集中每个类别涵盖的图片数量相同,均为6000张,图片大小均为32像素×32像素,该数据集包含的特征较为复杂,分类难度更大.CIFAR-100数据集较之CIFAR-10数据集而言,包含的类别数更多,由100个不同种类的物体构成,总共有60000张三通道的彩色图片,其中50000张图片为训练集,10000张图片为测试集,且每个类别的图片都被划分为500张训练图片和100张测试图片,图片大小均为32像素×32像素.CIFAR-100数据集中的100个类分别分为20个超类,每个图片都带有一个自身标签和一个超类标签.该数据集包含的特征更为复杂,分类难度更大.
3.1.2 数据增强
SR-CapsNet已经在SVHN数据集上取得了优异的性能表现,但是在CIFAR-10和CIFAR-100这些较为复杂的数据集下,并未取得较好的分类准确率.为了提高模型的分类准确率和泛化能力,本文采取了一些数据增强方法,比如随机裁剪、随机水平翻转和归一化.
3.1.3 评价指标
为了精确衡量MSSR-CapsNet的分类准确率,采用准确率作为评价指标.
其中:TP代表分类正确的样本数,FP代表分类错误的样本数.
3.1.4 训练部署及训练策略
实验环境是基于Ubuntu16.04系统,所使用的硬件环境:NVIDIA GeForc RTX3080 10GB显卡,1TB内存(RAM),Intel Xeon E5-2650 v3处理器.使用PyTorch深度学习框架对MSSR-CapsNet进行构建和测试.在训练期间,将batch size设置为64,优化器采用Adam,使用余弦退火算法在训练期间不断调整学习率,初始学习率为0.1,截止学习率为0.001,每训练100个epoch将学习率降低为原来的0.1,训练350个epoch.
3.2.1 数据集测试结果
从分类结果和准确率这两个方面衡量模型的性能表现,统计MSSR-CapsNet在不同数据集上的分类结果和准确率.不同胶囊网络的分类结果对比见表1.由表1可知:MSSR-CapsNet在SVHN数据集和CIFAR-10数据集上已经取得了优异的性能表现,测试准确率均高于90%;在最为复杂的CIFAR-100数据集上的测试准确率也达到了63.84%,在同层次下已达到较高水准.
表1 不同胶囊网络的分类结果对比 Tab.1 Comparison of classification results of different CapsNets
实验证明MSSR-CapsNet能捕获图片中不同尺度的特征信息,并且可以选择性地筛选出重要的低级特征,即使针对最复杂的CIFAR-100数据集,模型也能进行有效的特征提取和噪声过滤.因此,MSSRCapsNet可以在SVHN、CIFAR-10和CIFAR-100数据集上得到很好的分类准确率.
3.2.2 消融实验
为了验证MSSR-CapsNet模型的优势,对多分支胶囊结构、胶囊注意力机制和两者相融的情况进行相关实验.将不同结构的多分支胶囊网络嵌入胶囊网络的胶囊生成阶段进行实验,结果见表2.以多分支胶囊结构为基本单元构建多分支胶囊网络,当胶囊分支数(branches)为0~4时,通过增加胶囊分支的数量可以使模型有更好的特征提取能力,增强对数据的表征;当胶囊分支数增加到5时,随着模型参数的增加开始出现过拟合现象,导致分类准确率下降.考虑到胶囊注意力机制会选择性地筛选出重要的路由信息而忽略无关的路由信息,降低模型参数冗余的同时提升分类准确率,所以在模型中加入了注意力操作(Attention).因此,最终确定多分支自路由胶囊网络结构为4分支胶囊数加1次胶囊注意力操作.
表2 不同分支结构的胶囊网络对比结果 Tab.2 Comparison results of capsule network with different branches
为了验证多分支胶囊网络和胶囊注意力的有效性,进行了消融实验(表3).
表3 网络结构消融实验结果 Tab.3 Experiment results of network structure ablation
由表3可知:将胶囊注意力机制应用于路由系数的融合阶段,可以提供精确的位置预测,提高模型的分类准确率;对胶囊进行多尺度表示能有效捕获不同尺度的实体特征,并提升模型的性能.
3.2.3 超参数选取实验
考虑到超参数D为全连接层之间的缩放维度,若选取过大会使模型参数剧增,增加计算负担,因此以奇数序列的方式依次递增D值.超参数R为低级胶囊缩放因子,模型参数量与该值成反比,且胶囊维度的初始值为16,因此本文选取16为初始值可以兼容维度变化,然后以2的倍率依次增加R值,以此探索最佳R和D的取值,消融实验结果如图6所示.
图6 消融实验对比 Fig.6 Comparison of ablation experiments
当D增加到5时,随着模型参数的增加,各胶囊分支间的信息交互变得冗余,导致准确率下降.当R增加到64时,随着模型参数的减少导致胶囊注意力机制难以编码重要的特征信息,导致准确率下降.因此,超参数D和R分别取5和32,模型将取得最佳分类准确率.
3.2.4 训练结果对比
胶囊网络中的经典方法分别为DR-CapsNet[6]和 EM-CapsNet[7],因此本文方法先与其进行对比,然后与目前最新的胶囊网络SR-CapsNet[14]、Deeper-CapsNet(deeper capsule network)[20]和 Efficient-CapsNet(efficient capsule network)[15]在不同数据集上进行对比,不同路由方法的分类准确率、参数量和每秒所执行的浮点运算次数(floating-point operations per second,FLOPs)见表4.
表4 不同路由方法的分类准确率和参数量 Tab.4 Classification accuracy and parameter amount of different routing methods
MSSR-CapsNet在SVHN数据集上的分类准确率与上述其他方法几乎持平,但是在较为复杂的CIFAR-10和CIFAR-100数据集上优于其他方法,尤其是在CIFAR-100数据集上,比传统的SR-CapsNet提高了3.64%.在模型参数和计算量上,MSSRCapsNet引入了多分支胶囊结构和注意力机制,导致模型参数量和计算量有了轻微提升,但与准确率提升的幅度相比,参数量可以忽略不计.这说明引入多分支胶囊结构和胶囊注意力机制所形成的多尺度特征融合能切实提升胶囊网络应对复杂数据集的能力.
在SR-CapsNet的基础上,提出一种新的多分支胶囊网络MSSR-CapsNet.该网络融合了对全局和局部路由信息提取能力更强的胶囊注意力机制,在融合不同尺度路由信息时,能够选择性地突出重要的特征信息而忽略无关的特征信息.在多分支胶囊网络中,每个分支的胶囊维数都是可变的,能高效建模不同尺度的特征变化,提高模型的特征提取能力.为了验证MSSR-CapsNet的性能表现,分别在SVHN数据集、CIFAR-10数据集和CIFAR-100数据集上进行实验,与传统的胶囊网络相比,模型的准确率分别达到了97.46%、91.22%和63.84%,显著提高了模型在CIFAR-100这种复杂数据集上分类能力.但是,目前模型采用的胶囊注意力机制在融合上还不是十分完美,会有细节上的误差,分类精度还有提升空间,在未来的工作中将会对现有的网络进行进一步改进,争取更好的性能提升.