基于胶囊网络的动态路由研究与改进

2022-05-14 03:28孙仁诚邵峰晶
计算机工程 2022年5期
关键词:特征提取路由胶囊

陈 珊,孙仁诚,邵峰晶,隋 毅

(青岛大学计算机科学技术学院,山东青岛 266071)

0 概述

随着人工智能技术的发展,目前卷积神经网络(CNN)在图像识别[1]、图像分割[2]、文本分类[3]等领域中获得了巨大的成功。但是随着CNN 应用,发现其存在识别物体空间关系的能力不强和对物体旋转后的特征识别能力较弱两大缺陷。因为CNN 通过池化选取一个区域中最活跃的点或者平均聚合所有特征,这种降采样操作会丢失物体的空间信息,不利于图像的正确分类。CNN 采取的解决方案是增加网络层数或数据量来提升性能,但这会造成模型参数量和训练时间的增加。

为了弥补CNN 在图像处理中丢失物体部件间的相对位置关系及旋转不变性差的缺点,SABΟUR等[4]提出了胶囊网络(Capsule Network,CapsNet)模型。CapsNet 在借鉴CNN 空间特征提取方面优势的基础上,提出了胶囊的结构及动态路由的特征选择方式。在胶囊网络中,低层胶囊用来刻画物体的局部特征,高层胶囊用来表达整体抽象特征,然后使用动态路由机制聚合低层胶囊信息更新高层胶囊。与CNN 相比,胶囊网络仅需少量训练数据即可在小规模图像分类中取得更好的训练效果,并具有更佳的泛化性[5-6]和可解释性[7-8]。

然而,胶囊网络在特征提取和动态路由机制中仍有较多亟需改进之处。首先,CapsNet 在特征提取部分仅使用了一层卷积提取特征,感受野太小,提取不到足够的图像信息,导致生成的初级胶囊质量不高,从而影响模型的分类精度。其次,CapsNet 的动态路由机制在将低层胶囊中的信息传递到高层胶囊时使用了相同的优先级,但对于场景比较复杂的图像,动态路由则需要更多的迭代次数不断调整胶囊之间的匹配程度,才能提取到帮助图像分类的有效特征[9]。随后,在迭代过程中,每个低层胶囊还只能隶属于一个高层胶囊,耦合系数会抑制一个有效特征对多个高层胶囊的支持,由此导致一些有效特征不能表达,最终影响图像的分类效率和准确率[10]。最后,关于动态路由的研究均是从低层胶囊和高层胶囊之间的相似性来筛选特征,忽略了同层胶囊不同位置的像素之间的空间相关性,从而损失掉有益于图像分类的重要特征。此外,目前关于胶囊网络的大部分研究,均是在通过增加网络层数来提升性能,但是这会增加模型的参数量,从而造成模型在计算资源受限的环境下不适用。

本文提出一种基于点乘注意力的胶囊图网络(Dot-Product Attention Capsule Graph Network,DPACapsGraph)分类模型。该模型主要由特征提取模块、胶囊层部分以及重构部分组成,模型目标是以较小的参数量实现更多的有效特征能被高效地传递到高层胶囊,从而达到更高的分类精度,以增加模型的泛化性和鲁棒性。

1 相关工作

胶囊网络使用向量神经元而非标量表示物体在某一位置的特征,其中向量的姿态表示特征实体类别的属性,输出向量的长度表示某一类别实体存在可能性的大小。向量胶囊将物体的位置和姿态信息封装在胶囊内部,低层胶囊用来刻画物体的具体特性,而高层胶囊用来提取物体的总体抽象特征。随机动态路由迭代更新低层胶囊和高层胶囊的耦合系数Cij,最后通过压缩函数得到表示物体类别信息的高级胶囊。最终将向量长度最大的高级胶囊输入到重构部分,得到模型编解码后输出的图像。为提升胶囊网络在图像分类领域的分类准确率,目前的研究主要分为创新胶囊结构形式来优化胶囊质量,或提出新型动态路由机制来选择特征两个方面。

为提高胶囊网络在特征提取方面的表现能力,文献[11]通过多尺度特征提取获得结构和语义信息构建不同尺度的初级胶囊,用不同维度的转换矩阵生成相同维度的预测胶囊,增加了可学习的参数量。文献[12]通过可学习的转换矩阵将输入的特征向量正交投影到胶囊子空间上来创建胶囊,使其可以学习到更多隐层的特征信息。文献[13]通过提出使用两种类型的可变形胶囊,增加特征提取的感受野并增强胶囊对于数据的自适应性。文献[14]将多个相似的初级胶囊通过卷积操作得到张量胶囊,并通过增加胶囊层数提升模型效果。但是动态路由因为迭代更新的特性不能在网络层中并行执行,顺序执行多个胶囊层增加了模型的参数量和计算时间。文献[15]使用两个密集残差网络分别构造胶囊的姿态矩阵和预测矩阵,然后用奇异值分解检测实体在一维线性子空间上提取的特征,替换了原始的动态路由策略。

同时,关于随机动态路由的改进也得到了广泛关注,不同的动态路由表示低层胶囊聚合到高层胶囊的方式不同。文献[16]通过多组消融实验证明,随机动态路由会削弱模型的健壮性。因此,有些学者从聚类最优化的角度来改进动态路由过程。文献[17]通过最小化初级胶囊分布与高级胶囊的聚类损失和KL 正则化的组合,使动态路由过程更平滑。文献[18]运用最大-最小正则化标准化耦合系数,从而允许初级胶囊可以对多个高级胶囊具有高分配概率。上述研究的动态路由都是聚焦于高层胶囊和低层胶囊之间的一致性,忽略了同层胶囊之间的内在联系,对于图像分类问题,同层胶囊之间的空间关系会影响到分类的准确性。

注意力机制[19]则允许模型动态地捕获更多与解决问题相关的特征信息。TSAI 等[10]稍微改变了原始的动态路由,通过倒点积机制计算高水平胶囊的姿势和低水平胶囊的投票之间的一致性,并提出使用并行迭代路由取代顺序执行,在所有胶囊层之间同时执行路由过程。但是由于含有多个胶囊层并发执行动态路由机制,大幅增加了模型的训练时间,并对设备内存提出了较高的要求。文献[20]是在初级胶囊层前增加使用注意力机制的网络层,提升模型在特定数据集上的分类精度。文献[21-22]通过在网络中加入注意力模块来提升胶囊网络在特征提取部分的能力。基于以上研究发现,注意力机制在胶囊网络中大多被用在特征提取部分。本文将点乘注意力机制用来改进胶囊层之间的路由机制,利用图卷积层式传播的思想来探究同级胶囊间所包含的大量特征对于提升分类准确性的重要性,从而充分利用同级特征来提升模型的分类效果。

本文在MNIST、FashionMNIST、CIFAR10 和SVHN 4 种数据集上进行了多次实验,通过和6 个胶囊网络模型的变体进行对比,DPA-CapsGraph 不仅降低了模型的参数量,而且在4 种数据集上均取得了更高的分类准确率。

本文的主要贡献包括以下两个部分:

1)为了优化初级胶囊的质量,使胶囊表达更多的特征信息,模型在特征提取部分加入跳跃连接来增加初级胶囊对特征的表达能力,为模型的训练提供更多的信息。

2)为减少参数量,提高特征选择的效率以及质量,本文采用图卷积的层式传播方式代替动态路由进行特征选择,可以在控制网络层数增长的同时提升模型的分类准确度。利用点乘注意力机制获得同层胶囊之间的特征依赖关系,综合评估当前层中所有胶囊内部隐藏状态之间的异同点,然后通过特征映射的方式使特征在空间上自动聚类,提高模型的分类准确率。

2 基于点乘注意力图卷积路由的胶囊网络分类模型

针对CapsNet 的卷积层提取特征部分和动态路由部分存在的问题,本文通过借鉴残差网络和图卷积网络的思想,设计了DPA-CapsGraph。

基于点乘注意力的图卷积路由的胶囊网络的模型框架如图1 所示。

图1 DPA-CapsGraph 模型框架Fig.1 DPA-CapsGraph model framwork

DPA-CapsGraph 主要分为3 个部分:

1)特征提取部分,利用去掉池化层的残差网络来提取既有具体的实体属性特征又有概括的抽象特征。

2)胶囊网络层,先对特征提取部分传入的特征进行通道卷积得到胶囊结构,然后通过路由过程得到高级胶囊。本文的重点是使用点乘注意力机制在同层胶囊间构建全连通图,以此获得同级胶囊中的丰富特征以及空间依赖关系,即将原始的动态路由机制改为利用注意力机制的图卷积来实现图像的正确分类。

3)重构层,将分类正确的高级胶囊重构成原始的图像。

2.1 特征提取模块

本文在特征提取部分加入恒等映射构建残差网络,训练时只需学习残差,解决了传统卷积层的特征丢失、损耗等问题,在一定程度上保护了信息的完整性。跳跃连接使得特征提取部分的输出不仅包含特定实体的属性信息,还包含图像整体结构的抽象信息。其次去掉池化层以保留实体特征之间的空间依赖关系,最后将提取到的具体属性和空间信息输入到初级胶囊层,增强胶囊的特征表达能力,优化胶囊质量,具体结构如图2 所示。

图2 特征提取部分结构Fig.2 Structure of feature extraction part

在图2 中,实线是在通道数量一致时使用Y=F(x)+x的计算方式,虚线部分是通道数不一致,需要通过权重矩阵进行调整,采用Y=F(x)+Wx的计算方式。此时的特征提取部分只需进行简单的非线性变换而无需过度参数化,在提升模型精度的同时还能抑制模型过大。

2.2 DPA-CapsGraph 路由

动态路由是在胶囊层间迭代进行特征提取的过程,当低层胶囊和高层胶囊的一致性分数较大时,高层胶囊就聚合此低层胶囊中的特征并更新自身状态,反之则抑制其一致性分数的增长。为使路由过程简单且有效,本文利用注意力分数代替迭代循环的耦合系数,不仅可以获得胶囊层全局上下文的信息,还可以通过对高质量的胶囊赋予更大的权重来提取更多有效的特征信息。本文使用基于图注意力的特征处理方式,每个胶囊仅在特征选择期间捕获某一位置的特征,取消了模型对于数据源的依赖。胶囊层间的注意力特征提取部分如图3 所示。

图3 DPA-CapsGraph 路由过程Fig.3 DPA-CapsGraph routing process

首先将模型在特征提取部分得到的信息进行通道维度的卷积得到初级胶囊,然后进行线性变换得到DPA-CapsGraph 路由过程中的预测胶囊,即利用注意力机制的图卷积中的结点。

其中:Wij∈[8,16]是胶囊层之间做线性变化的权重矩阵,初级胶囊是8 维的向量,通过线性映射得到16 维的预测胶囊胶囊的维度越高,表示的图像信息也就越多,为胶囊间的特征选择提供更多的特征信息。

在图像分类任务中,不同的胶囊提取图像不同位置的特征,本文使用点积注意力[21]以无监督的方式动态获取胶囊之间的相似度,为不同邻居的信息重要性赋予不同权值,在信息聚合时重点突出关键性较强的周围胶囊。

其中:A为预测胶囊之间的相似度矩阵,将小于零的权重置为零,对相似度矩阵进行稀疏化,减少噪音信息的干扰,既可以提高分类的准确度,还能减轻模型对设备计算资源的压力,加快计算速度。

图结构在特征提取中具有关于节点度的倾向性,因为度越大的胶囊,节点的重要性越大,即节点度越大,聚合的信息量就越大。

di即注意力分数矩阵A的每一行元素之和,度矩阵D是di组成的n×n对角矩阵。

通过上述运算可以获得像素之间的依赖关系以及图像的结构信息,根据拉普拉斯特征映射的方式得到层式特征传播算子,将预测胶囊中包含的特征在空间上自动聚类,从而得到高级胶囊。

为了提炼每个胶囊封装的通道特征信息,得到更加精确的全局特征表达,使用Squashing()函数得到最终的高级胶囊vj,使高级胶囊的模长限制在[0,1]之间。在胶囊网络中,高级胶囊的长度用来表示某个类别存在的概率大小,胶囊长度越长,存在的可能性越大,反之则越小。

其中:矢量vj表示高级胶囊的输出,长度代表j类别存在的概率大小;姿态表示物体的颜色等特征。

2.3 重构层及损失函数

取出输出Digit-Caps 层中长度最大的高级胶囊,将其输入到三层全连接网络层进行重构,得到模型最后输出的重构图片。

本文的损失函数由编码损失和重构损失两部分构成,训练目标是损失加和最小化,公式如下:

在模型的分类部分使用margin loss 对每一个表征数字c的胶囊分别给出边缘损失函数。

其中:m+=0.9;m-=0.1;λ=0.005;Tc表示c类别是否存在,存在取值为1,否则为0。

重构损失是原始图像和重构图像之间的差距,公式如下:

其中:Pict表示原始图像;Picr表示重构出来的图像,是预防模型过拟合的缩放系数。

2.4 DPA-CapsGraph 模型算法描述

DPA-CapsGraph 模型的算法学习过程如下:

算法DPA-CapsGraph 学习算法

3 实验结果与分析

3.1 数据预处理

3.1.1 数据集

为了充分验证DPA-CapsGraph 的分类效果,本文选取 了 MNIST、FashionMNIST、CIFAR10 和SVHN 4 种公开数据进行实验。FashionMNIST 和CIFAR10 是各类衣物、动物、交通工具类的图像,其中包含更复杂的背景和物体结构信息,也更符合真实世界中的图像。MNIST 和SVHN 都是数字数据集,而SVHN 是来源于谷歌街景门牌号码的彩色图片,含有较多的噪音数字。本文选取的数据集类型和样本大小均是多样化的,MNIST 和FashionMNIST是尺寸大小为28×28 像素的灰度图,CIFAR10 和SVHN 是32×32 像素的RGB 图像。

3.1.2 实验环境及参数设置

本文模型是在Ubuntu18.04 操作系统的平台上采用Pytorch 框架进行开发,编程语言为Python3.6,并使用NVIDIA GeForce GTX 1080Ti显卡来加速模型训练。

DPA-CapsGraph 由特征提取部分、初级胶囊层、高级胶囊层和重构层四部分构成,基于注意力机制的图卷积层间信息提取过程应用于初级胶囊层和高级胶囊层之间。在特征提取部分采用ResNet18 的前3 个Block,去掉池化层共有13 层3×3 的卷积用来提取图像的特征,其通道数分别为64、128 和256。然后将特征提取部分的输出特征图经过通道卷积得到32 个8 维的低级向量胶囊。最后经过特征映射筛选出10 个16 维的高级胶囊。

3.1.3 评价指标

本文使用加权平均精确度(Weighted Average Accuracy,WAA)作为评价指标。在各类样本中,该指标可以更有效地评估模型的分类能力。

其中:aacci表示类别i的分类准确率;TTP是将真样本正确分类为真样本的数量;TTN是将假样本预测为假样本的数量;FFN是将真样本预测为假样本的数量;FFP是将假样本预测为真样本的数量;ni是类别i的样本总数;N是样本总量。准确度越高,模型的分类效果越好。

3.2 实验结果

3.2.1 DPA-CapsGraph 消融实验

对CapsNet模型的改进包括两部分,为了准确评估各部分改进的效果,本文设置了如下消融实验对比分析不同改进对模型分类效果的影响,如表1 所示,其中粗体表示结果最优。消融实验共分为3 个部分:

表1 DPA-CapsGraph 消融实验准确率Table 1 Accuracy of DPA-CapsGraph ablation experiment %

1)CapsNet+R。改善模型的特征提取部分来优化初级胶囊的质量,在CapsNet 的基础上只将原始的特征提取部分更改为具有跳跃连接的残差网络。

2)CapsNet+A。优化动态路由,在CapsNet 上仅更改动态路由部分。

3)DPA-CapsGraph。在CapsNet 添加残 差块和替换动态路由两部分。

由表1 可知,增加特征提取部分和更换路由机制的优化方法均会提高模型的分类准确率,其中优化特征提取部分对模型的改进效果更为明显。对于FashionMNIST 数据集来说,只改进路由机制对模型效果提升较小,但是在综合优化胶囊质量的优势之后,效果提升较大。因为FashionMNIST 是结构较复杂的灰度图,CapsNet 中的卷积层提取不到足够的特征,所以优化胶囊质量表达更多的特征是必不可少的。对于CIFAR10 和SVHN 两种彩色数据集,动态路由机制的改进使模型准确率分别提升了7.76%和7.34%,效果明显,消融实验证明了本文提出的路由机制利用注意力机制可以关注到特征图中距离较远的胶囊信息,得到关于图像全局的结构信息,从而使模型能够有效地选择特征进行图像分类。综合优化胶囊质量和更换路由机制两方面的优势,模型在4 种数据集上分别提升了0.18%、2.74%、19.22% 和12.84%。此外,DPA-CapsGraph 在训练轮数上也有一定的表现结果,如图4 所示。

图4 DPA-CapsGraph 在FashionMNIST 中的分类精度Fig.4 Classification accuracy of DPA-CapsGraph in FashionMNIST

由图4可知,在相同的实验环境下,DPA-CapsGraph在训练初始阶段能够取得较好的分类精度,是因为本文模型可以提取更多的特征帮助模型进行分类。但是根据多次实验可知,DPA-CapsGraph 在每一轮训练时间上是Capsnet的两倍,但是在模型训练的轮数上,DPACapsGraph 只需更少的训练轮数就能收敛到更高的分类精度,所以总的训练时间是在可接受范围内。此外对于分类模型,适当增加训练时间来提升模型的分类精度是可取的,由此证明本文提出的改进方法有一定的实用价值。

3.2.2 DPA-CapsGraph 与其他模型的对比

为充分评估DPA-CapsGraph 在图像分类任务中的效果,本文选取了MS-CapsNet[11]、TextCaps[23]、AR CapsNet[24]、FSc-CapsNet[25]和DA-CapsNet[21]5 个对比模型。为确保对比模型的准确性,以上模型均是从胶囊的结构和动态路由两方面来改进向量胶囊网络,在实验过程中尽可能地使用了相同的参数设置,对比结果如表2 所示。

表2 DPA-CapsGraph 与不同模型的分类准确率和参数规模对比Table 2 Comparison of classification accuracy and parameter scale between DPA-CapsGraph and different models

由表2可知,DPA-CapsGraph 在 MNIST、FashionMNIST 和CIFAR10 3 种数据集上的准确率分别达到到99.74%、95.02%和91.78%,在除MNIST以外的另外两种数据集上,比表现最好的模型分别高出1.04 和4.59 个百分点。而且DPA-CapsGraph 在达到最优分类准确率时,在 MNIST 和FashionMNIST 上仅使用了5.4 MB 的参数量,相比CapsNet 减少了51%,在CIFAR10 数据集上也仅使用了7.7 MB 的数据,参数量也减少了36.4%。以上参数量的减少主要是因为模型在特征提取部分提取到既有实体的具体属性也有抽象的特征,保证了路由阶段所需的有效特征。所以可以通过减少初级胶囊的数量,使得模型的参数量有了一定程度的下降。综上所述,胶囊结构因包含更多的特征结构,过多的胶囊会增加模型的参数量,造成特征检测器的冗余,所以本文在提升胶囊质量的同时,在同层胶囊间用全局注意力构建图结构,筛选出图像中含有丰富特征的胶囊,从而能够在参数量小于对比模型的情况下,在3 种数据集上均达到了更高的分类精度。DPA-CapsGraph 模型能够充分利用原始数据的信息,而且还捕捉到了同级胶囊之间的相互影响程度,由此可以证明空间依赖关系对于图像分类的准确率有一定的帮助。因此,本文的改进模型在图像分类领域是合理可行的。

4 结束语

胶囊网络可以较少的网络层和相对较少的参数量,达到标准卷积神经网络在图像分类上的效果。为进一步提高胶囊网络在图像分类领域的分类准确率,本文通过点乘注意力构建胶囊图,获得同层胶囊之间的依赖关系。DPA_CapsGraph 不仅弥补了原始路由过程忽略同级特征的不足,而且还实现了提升模型的整体表现,在特征提取部分加入跳跃连接进行特征提取,提高了初级胶囊的特征表达能力;使用点乘注意力构建同层胶囊之间的关系图代替动态路由,提高了胶囊层间的特征选择能力。实验结果表明,DPA-CapsGraph 相比于传统胶囊网络模型,不但减少了模型的参数量,而且在CIFAR10 等多种数据集上均取得了更高的分类准确率。但DPACapsGraph 相比其他模型考虑了更多的图像信息,会存在部分冗余特征,模型在计算方面的时间相对会增加,下一步将在确保准确率的前提下精简特征,加快模型训练速度。

猜你喜欢
特征提取路由胶囊
时光胶囊
时光胶囊
铁路数据网路由汇聚引发的路由迭代问题研究
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
一种基于虚拟分扇的簇间多跳路由算法
路由重分发时需要考虑的问题
基于Daubechies(dbN)的飞行器音频特征提取
空基Ad Hoc路由协议研究