APP下载

胶囊网络对复杂现实场景中的物体识别*

2019-12-30贾帅宇姚红革

西安工业大学学报 2019年6期
关键词:路由重构神经元

姜 虹,贾帅宇,姚红革

(西安工业大学 计算机科学与工程学院,西安 710021)

“深度学习”自2006年被提出以来,经过十几年的发展,其已发展出众多算法,但主要以CNN为主,CNN因其对底层对象之间的空间关系表达的不够充分,并且其中的Pooling 过程会丢失一定量的位置信息[1],由于这些缺陷的存在CNN在某些方面的识别效果并不理想。文献[2]首次提出胶囊(Capsule)的概念,作者在该论文中建立了一种三层简易的网络结构CapsNet,并将CapsNet用于Mnist手写体识别,准确率高达97.5%,超越了文献[3]提到的LeNet-5模型。2018年,文献[4]对胶囊网络中动态路由迭代算法进行了解释,并提出了一种新的EM路由算法,对Capsule胶囊网络核心路由算法进行改进。尽管CapsNet网络模型使用动态路由迭代算法替代了CNN的池化操作[5-6],降低了前向传播过程中的特征损失,而且克服了CNN中特征不变性的缺点,提高了识别准确率。但目前,CapsNet仅用于简单图像的识别,对于处于复杂场景下的目标识别还鲜有研究。

本文基于胶囊网络的思想,拟构建一个新的胶囊网络模型,采用Cifar10数据集对其进行训练,在CapsNet的基础上增加Conv2和Intermediate Capsule Layer,以提升网络在复杂场景下对于物体识别精度以及单个胶囊对于信息的表征能力。

1 改进胶囊网络模型的建立

本文整体系统结构如下图1神经网络模型结构图所示。

图1 神经网络模型结构

相较于文献[6]中的CapsNet,本文提出如下改进。

1.1 增加CONV2卷积层

本网络模型在Conv1与Primary Capsule Layer之间增加了一层额外的卷积层Conv2,由于复杂场景下的彩色图片蕴含的信息量较大,图像中干扰信息较多,图像信息之间的关系较为复杂。所以在结构设计之上希望通过增加卷积层的方法过滤掉部分噪音,并且使得Primary Capsule Layer之前的卷积部分获得更多有关识别目标的信息,减少复杂背景干扰信息的影响。

1.2 扩展胶囊维度由初级8D扩宽为16D

Primary Capsule Layer之前两层卷积层在对原始图像经过两次特征提取过程,大量的有用信息被抽取至上层胶囊,经过Primary Capsule Layer,Intermediate capsule layer对其信息进行降噪并将有用信息利用Squash()函数压缩至胶囊之中,胶囊中携带有识别信息。胶囊的维度越大,胶囊中可存储的信息越多,网络分类效果更好,本实验中维度扩宽为16D。

1.3 Intermediate capsule layer

在胶囊层之间,低层的特征胶囊首先通过姿态关系对高层特征进行预测,通过“动态路由算法”和“筛分决策机制”选择性的激活高层胶囊,这相当于对低层胶囊网络预测的结果进行筛选,然后选择性激活部分高层胶囊。增加了一层胶囊层Intermediate capsule layer,拟通过前两层的胶囊层的层间传播去掉部分噪音,从Intermediate capsule layer所被Primary Capsule Layer选择激活的上层胶囊在经过一层胶囊层间预测激活过程,激活Advanced Capsule Layer完成最终分类,在两次选择激活的过程中,降低干扰因子。

本系统结构正向运行过程如下:

Conv1:将32×32的彩色图片采用256个5×5大小的卷积核对原始图像进行卷积,其中步幅为1,在卷积层采用Relu激活函数。

Conv2:采用512个5×5大小的卷积核对Conv1层进行卷积,得到Conv2层。

Primary Capsule Layer:对网络中注入的局部图像信息进行向量化,即采用16组不同的卷积核,每组卷积核中又有64个不同的10×10大小的卷积核对局部图像进行16次卷积,在卷积操作中步幅设置为1,并且采用Relu激活函数,得到低层特征Ui,其中Ui为1×16大小的向量神经元,具体结构如图2所示。

图2 Primary Capsule Layer结构

Advanced Capsule Layer:通过低层特征对高层特征进行预测,并通过筛分决策机制和动态路由迭代算法选择激活最高层特征胶囊,完成分类。

胶囊作为一个方向向量,不仅能够进行图形目标的分类,本文预测在胶囊中蕴含原始图像中识别目标的相关信息,即胶囊为原始图像信息的压缩。故本文在前向识别网络后加入下图3所示的重构网络来检测所抽取特征信息的完整度,拟通过该重构网络实现被压缩在胶囊中原始图像的还原。改进后的胶囊网络如图3重构网络结构图。

图3 重构网络结构图

如图3所示,在前半部分识别网络的后面,加上重构网络结构,识别网络结构输出10个1×16的胶囊即10个1×16的向量。该向量神经元中携带有所识别图像的信息,可以通过一个解码器对这个输出的1x16的向量进行解码,从而还原前半部分识别网络所识别的图像。

在前层网络结构的后面加三个全连接层,在第一个全连接层有512个结点组成,采用Relu激活函数,第二个全连接层有1024个结点,采用Relu激活函数,第三层由784个结点组成,激活函数采用Sigmod分类函数。

2 关键算法原理

2.1 向量神经元

胶囊网络相比于传统CNN神经网络摒弃标量神经元,采用向量神经元。其可用一个向量来表示。因向量神经元可表达的信息量更大,从而使得网络识别效率更高,识别效果更好。

每一个向量神经元的属性代表着该向量神经元所指代的信息,向量神经元的向量方向通常指代纹理,颜色,大小,形状等信息,而向量神经元的模长被用来指代该向量神经元所代表的时间发生可能性的大小,该向量神经元的模长越长则该向量神经元所指代事件发生的可能性就越大,模长越短则事件发生的可能性就越小。

向量神经元采用Squash()进行激活,在经过Squash()函数激活后的向量神经元,其长度则代表该事件发生的概率,且Squash()对向量神经元的长度能起到一定的放缩作用,使得特征比较显著的向量神经元变得概率更加大,使得识别效果更好。

2.2 姿态关系转换

胶囊层中物体各部分之间的分层姿态关系通过姿态矩阵表现出来[7-8]。其中,姿态主要包括平移 (translation)、旋转 (rotation) 和放缩 (scale) 三种形式。通过姿态矩阵物体姿态关系转换过程如图4所示。

图4 姿态关系转换例图

用R,T,S定义旋转、平移和缩放矩阵,那么将 (x,y) 先逆时针转 30 度,向右平移2个单位,最终缩放 50% 到 (x′,y′) 可以由下列矩阵连乘得到

2.3 动态路由算法

胶囊网络在相邻低级胶囊层和高级胶囊层之间,采用动态路由算法进行由低层特征向高层特征的预测过程,动态路由机制由图5所示。

动态路由算法基本工作原理如下:

① 初始化参数bij值。对于所有位于L层的胶囊i和L+1层的胶囊j,令所有bij初值均为0;

② 更新参数ci值。对于位于L层的所有胶囊i,令ci=softmax(bi)[9];

图5 动态路由机制结构图

⑤ 对于位于L+1层的所有胶囊j,令Vj= squash(Sj);

⑦ 判断胶囊层动态路由迭代次数是否达到预先设定好的迭代上限r,若未达到则重新返回步骤②,若完成则结束。

2.4 Squash函数

为了将每个胶囊的长度都压缩到0到1之间,从而使得每个胶囊的长度表示该胶囊所代表事件发生的可能性,在胶囊网络中引入Squash()函数[9],该函数不但可以完成压缩胶囊长度的工作,而且该函数能够对胶囊代表事件发生可能性的概率放缩,使得大概率事件发生的可能性更大,小概率事件发生的可能性更小。其表达式为

(1)

式中:Vj为单个胶囊经过压缩之后输出的输出向量,其长度在0到1之间;Sj为传入Squash()函数的胶囊,该胶囊为经过上一层卷积层计算,进行加权求和之后得到的结果。对于该表达式,可以分为两部分。‖Sj‖2/(1+‖Sj‖2)为在不考虑胶囊方向的情况下,单纯对胶囊长度进行放缩,使得长度小的胶囊长度表的更小,而长度大的胶囊长度变得更大,在整个计算过程中,对输入胶囊的长度起放缩作用。Sj/‖Sj‖的作用为在‖Sj‖2/(1+‖Sj‖2)对胶囊长度放缩的前提下保持胶囊的方向不发生变化,即保持胶囊所代表事件的纹理,速度等特性不发生变化。Squash()函数中这两部分的结合,使得胶囊在不改变方向的情况下有压缩了胶囊的长度,使得胶囊长度介于0到1之间表示胶囊所指代事件发生的可能性,起到一种非线性激活的作用。

2.5 筛分决策机制

低层胶囊层向量神经元通过筛分决策机制对高层向量神经元进行选择性激活,此过程类似于投票选举,票数相对较多的单元即为被选定即将被激活的单元。如图6筛分决策机制原理图所示,图中圈起的红点为投票数较多并将被激活的单元,这些点聚集在一起意味着低层胶囊对高级特征的预测较为接近,最终将代表低层胶囊对高层的预测。分散在圈外的蓝点为投票数较少无法被激活的单元,由于其距离红色的聚集点较远,所以其预测结果将被舍弃。

图6 筛分决策机制原理图

在胶囊网络结构中,每个胶囊即为一个向量神经元,该向量神经元为低层特征根据局部姿态关系预测得到的表达高级特征的向量神经元。向量神经元具有长度和方向两个属性,通过向量的方向表示向量所指代的事件,两个向量神经元方向差别越小,则这两个向量神经元所指代的事件相似度越高,其过程如上图6所示,则最多向量神经元的指向方向即为最终决策向量方向,该决策向量方向所指代的事件为最终决策事件。这种利用向量神经元方向来决策高级特征,并选择性激活高级特征胶囊的方法称为筛分决策机制。通过决策机制结合路由算法得到所识别物体最终的类别结果。

3 实验与分析

3.1 数据集

在本实验中,采用经典Cifar10数据集,该数据集由十个种类不同的对象构成,数据集共包括60 000张彩色图片,每张图片均为32×32大小。而总共的60 000张图片又分为50 000张训练样本和10 000张测试样本,其中10类不同对象的图片各有6 000张,每种对象的图片数量一样多,且图像大小均相同,在数据集图片中,所识别目标均处于较复杂场景之中,每张数据集背景图片均不相同,且背景较为复杂,对于目标的识别过程会造成较强的干扰。其中,Cifar10的十类对象的少数样本如图7 Cifar10数据集所示。

为估算本文算法对Cifar10数据集的识别效果,使用准确率(accuracy,Acc)来衡量算法的性能,Acc的取值介于[0,1]之间,具体计算公式为

(2)

式中:TN为图片识别正确的数量;EN为识别的图片数量。

图7 Cifar10数据集

3.2 实验对比分析

3.2.1 文中网络与CapsNet的性能对比

实验通过采用Cifar10数据集来测试CapsNet和本文网络在复杂场景下的表现情况。分别对两个网络进行训练,通过对相同训练批次下的两个不同网络模型进行测试发现,本文中所构建的网络相比于CapsNet识别准确率提高了3.2%,并且重构效果有所提升但是提升不明显,实验结果见表1。

表1 对CapsNet逐步改进的结果对比

参见表1,实验分步对CapsNet网络进行改进。在CapsNet网络的基础上增加一个卷积层,此时的初步模型测试准确率有所提升,模型准确率为68.1%。在此基础上分别在网络上添加胶囊层并且对胶囊进行扩维的改进,经过三次改进的胶囊最高准确率可达71%,相比于CapsNet准确度提升了3.2%。虽然改进后的网络没有达到预期结果,但是相较于CapsNet整体有所提升。

3.2.2 文中网络与CapsNet的复杂度对比

在参数数量方面,CapsNet网络模型中(不含解码器部分)大约含有63.13万个参数。在改进后的网络模型中参数数量增长到了82.88万个。改进后模型的参数量相较于CapsNet增加了31%,但是文中成功提升了CapsNet的模型性能。尽管最终的结果没有达到预期的效果,但是的确证明了一些方法(增加卷积层与胶囊层、扩维)能够有效的提升CapsNet网络模型的识别性能。

3.2.3 动态路由算法迭代次数对于识别率的影响

动态路由算法作为胶囊网络的核心算法,其迭代次数对网络模型的识别结果有着举足轻重的影响。在本实验中在其它环境不变的情况下,调整动态路由算法的迭代参数。通过比较不同迭代次数的情况下,网络模型的准确率,并通过对所得数据进行比较分析,从而分析迭代次数对于网络模型的局部影响以及全局影响,见表2。

表2 不同路由迭代次数下的准确率

在该网络模型上,对胶囊层间动态路由算法路由迭代次数进行改变,进而通过实验结果分析迭代次数对于整个网络识别率的影响。通过在MNIST和Cifar10数据集上通过调整迭代次数R分别进行四次实验,通过观察实验结果得出当R=3时,整个网络模型对于MNIST和Cifar10数据集的识别准确率都是最高的,此时即可认为当R=3时,整个网络达到了最优性能。

3.3 胶囊网络识别效果测试

3.3.1 改进网络前向识别测试

通过对动态路由算法的研究以及大量实验验证,在R=3时算法最优,故在本实验中拟设置R=3,采用Cifar10数据集对改进的网络进行测试,使用Cifar10数据集中的50 000个训练样本进行训练,通过50 000个训练样本每对网络训练一个轮次,采用10 000个测试图像对网络本次训练情况进行测试,以得到当前网络对于图像的识别准确率。在本实验中,利用Cifar10数据集对该网络模型进行了80个轮次的训练。在训练过程中,该网络模型识别准确率的变化情况如图8所示,网络loss如图9所示。

图8 准确率变化曲线Fig.8 Precision curve

该网络模型在训练过程中,当对网络的第一个训练轮次完成时,网络的准确率如图8所示,准确率为0.390 9。当对网络模型的80个轮次的训练全部结束时,网络模型的准确率如图8所示,准确率为0.625 0。但结合图9中网络总的loss走势来看,当训练程度到达5.000 k左右时,识别准确率达到最高水平为0.71,同时total loss降到最低点,此时网络中参数之间协调度达到全局最优。在训练程度超过5.000 k后,会产生过拟合,网络模型识别准确率降低,故应在5.000 k时停止对网络的训练,此时网络识别效果最佳,识别准确率为0.71。

图9 网络损失变化曲线Fig.9 Network loss curve

3.3.2 Advanced Capsule Layer胶囊扩维对重构的影响

图10为原始胶囊网络和改进后胶囊网络的重构误差,图11为原图及重构效果图。

图10 原始胶囊网络和改进后胶囊网络的重构误差曲线

图11 原图及重构效果图

由于文中模型将前向识别网络输出胶囊维度扩至16D,对比图10中重构误差曲线可看出,相比CapsNet的重构结果,文中实验所设计的网络重构误差更小,效果稍好,这说明对输出胶囊进行扩维能够提高重构效果。但是从图11中看出,重构的效果还是不够稳定,重构所得到的图片清晰度不够高。

在实验的训练过程中,随着训练的进一步深入,整个网络模型的total_loss值整体趋于下降趋势,随着总体误差值的降低,网络模型的识别准确度也随之逐渐上升,但在total_loss下降趋于0.60附近时该网络模型中的总体误差开始升高。

4 结 论

本文对CapsNet网络进行了改进,为使其在复杂场景下对于物体具有更良好的识别和表征能力,文中在CapsNet网络的基础上增加了一层卷积层和胶囊层,使其能够提取到更多细节特征。并且对各层胶囊进行了扩维,使每个胶囊能够携带更多的特征信息。网络结构的优化使得网络不但能充分的提取低层特征,而且两个胶囊层在经过两层动态路由和筛分决策之后,降低了复杂场景对于物体识别的干扰,并且改进后的前向识别网络相比于原来的CapsNet分类准确率提高了3.2%,当训练程度到达5.000 k左右时,识别准确率达到最高水平为0.71。但目前的分类结果并没有达到我们预期的结果,今后将尝试对目前的网络做进一步的改动,以达到更高的分类准确率。

猜你喜欢

路由重构神经元
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
北方大陆 重构未来
路由重分发时需要考虑的问题
跃动的神经元——波兰Brain Embassy联合办公
北京的重构与再造
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用