首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用群卷积建立深度、等变的胶囊网络

作者 | Dyson

编辑 | 贾伟

ICLR 2020会议将于 4 月 26 日在非洲埃塞俄比亚(亚斯亚贝巴)举行。本届会议共有 2594篇投稿,其中 687篇论文被接收(48篇oral论文,107篇spotlight论文和531篇poster论文),接收率为26.5%。本文介绍发表在 ICLR 2020 上的一篇 Oral 论文《Building Deep Equivariant Capsule Networks》。

论文实现代码地址:https://github.com/AnonymousCapsuleSOVNET/SOVNET

卷积神经网络在池化层中丢失了大量信息,降低了空间分辨率,很难发现特征之间的方位关系(orientation)和相对空间(relative spatial)关系,因此当输入发生微小的变化,输出基本不变。为了解决CNN不具备旋转等变性的问题,胶囊网络围绕CNN的体系结构,通过将详细的姿态信息保存在整个网络中来恢复一些丢失的信息。

为了解决胶囊网络在层上的计算量较大,也不能保证有可证明的等变性等相关问题,文章把胶囊网络的动态路由放到群论的框架里面来讨论,提出了可拓展、等变的深度胶囊网络(SOVNET)架构。结果是从理论的角度保证了网络的等变性,并降低了胶囊网络层间的计算成本。

符号和简要说明

由于文章涉及到群(group)表示等相关数学知识,我首先把相关符号及概念简要列举如下:

1. 文章称之为函数元组,

和是向量和激活层的函数。考虑到胶囊网络的特征是vector in vector out, 可以认为是层上第个胶囊类型(capsule-type)的实例对应的d维Pose向量的函数。对于“Pose向量”的理解,假设我们处理的是2维图片数据,此时每一个像素坐标在群域上,对应着函数返回的特征图上一个第层的Capsule的维特征向量;

2.:表示对特征图进行变换;

3.:卷积层的Filter,对输入的特征图进行卷积或相关的操作;

4.:在Degree-routing中表示将特征图与预测网络(卷积核)进行操作(平移、旋转等)的算子。

一、动机

目前大部分的胶囊网络虽然能解决CNN “不具备等变性” 的问题,但都不能很好地扩展到深层架构。因为胶囊网络中层与层之间的所有成对(pair-wise)关系模型都用同一个神经网络来描述。因此在胶囊网络的卷积层中可训练的神经网络单元取决于卷积网络的空间范围(spatial extent)和层间胶囊网络类型的积。这不仅会使得计算复杂,而且所有的胶囊类型并不都具有显著的关系,因为每一个“对象-组件”的表示并不一定是属于同一个类别的,或者不可能组合起来(不兼容),需要提升胶囊网络的可扩展性。

是不是感觉有点绕?从个人理解的角度,这里的显著关系其实可以通俗的举一个例子描述它:我们知道胶囊网络能够将图片处理成向量的形式,然后在通过routing,得到分类正确的向量。那现在比如一张图片中有马、鲨鱼和轮船。我用表示三种特征:水里游的、地上跑的、人造的三种特征;然后表示特征对应的实体“鲨鱼、轮船和马”。于是单靠“水里游的”的特征,我们推导出它属于三种实体的概率分别为:

我们肯定知道,分类正确时,,肯定很大,因为他们是属于一个类别的,但是对于明显不属于一个类别的——就是上面的的 “鲨骑马” 这种生物肯定不是一个类别,也即不具有显著关系的情况,也在网络中计算了一边,因此限制了网络的训练能力。

对于胶囊网络的第二个问题是理论上的问题。作者认为它尚且未能保证等变性(lack of guarantees on equivariance),大多数胶囊网络只是直观启发式的学习组件平移旋转时空间方位的变化,增强模型的鲁棒性,但这不是最理想的方式。

目前已存在的方法和可能的解决方案

群等变性网络(group-equivariant convolutions,GCNN)采用群卷积的方法对卷积神经网络进行扩展,并提出一个在特定的变换(旋转、平移等,也可表示为一个特殊的群)下具有等变性的网络。可以在理论上对胶囊网络中的预测和路由算法部分进行等变性的探索。

二、本篇文章的贡献

1、针对可扩展性问题(scalable),提出了一种扩展性的框架模型;

2、针对等变性,提出的模型具备等变卷积和等变路由算法(term: degree-centrality-based routing algorithm)

3、用基于图模型的框架研究胶囊网络的表示问题,证明了提出的模型对输入的特征图transformation后仍然“等变地”将其表示进行保留。

4、在概念验证时,将MNIST,FASHIONMNIST和CIFAR10等数据集进行仿射变换后进行相关实验,同时还在KMNIST和SVHN数据集进行实验,展示了SOVNET网络在特征图的几何变化(扰动)情况下仍能保持不错的performance.

三、方法

1、SOVNET, Equivariance, and Compositionality

对于群,群上的函数定义为:

描述了层内数据的维度变化和对应激活函数在0~1之间的取值。每一个胶囊类型用群转换的函数进行表征。对每一个胶囊类型,我们希望他的Pose矩阵和activation在群转换时是等变的。也就是将输入特征映射到输出特征时保留结构信息(structure preserving)。

解决上面的问题之前,我们先要弄清楚等变性。下面给出等变性的定义:

考虑空间上,对于一个网络或者是网络的一层具有等变性的定义为:是群上的两个向量空间,令分别为的群表示(group-representation)。记满足等变性,当时,有成立。

根据上面的定义,我们规定算子就代表它们具有等变性,那么我们就可以用数学来描述抽象的transformation:定义在特征图上的一种变换为,则:

其中表示对特征图进行变换。

可以仿照拉普拉斯变换的角度解读上面这个变换式,要得到进行变换后特征图上的值,等于原特征图函数上的值。

那么现在我有了描述等变性的数学工具和特征图变换的定义,可是好像离我们需要的对胶囊网络的等变性还很远呐?

其实问题不大,因为我们现在得到的新特征图在胶囊网络中将在路由中得到训练(根据胶囊网络的架构,每一次训练要经过一次卷积),那么证明我们设计的网络是等变的,不就转化成证明在路由机制中新特征图对其操作是满足上面等变性定义就可以了呀:

其中算子就代表网络中的routing操作。

接下来作者先认为上述等变性是成立的,构造出了两个算法框架——路由算法框架和采用该路由算法的SOVNET网络的框架,证明等变性会在最后SOVNET网络的框架下证明,从而解决刚刚提及的ProblemB问题,使SOVNET网络保证等变性。

2、SOVNET layer

接下来作者给出了上述路由部分的算法:

结合胶囊网络的路由机制,其实很容易看出上述算法与路由算法的相似之处。

输入与输出是层间的传播,路由体现在训练过程中。传统胶囊网络的特点是vector in vector out,输入向量会与filter进行内积,而我们知道内积是度量“靠近”的工具,那么第一步可以理解为对输入batch个特征做相似性度量

第二步对度量加权,用来分辨不同的类;

第三步是为了第四步利用梯度下降优化,通过求导推导得到的近似表达式。结合网络相关资料与个人理解如下:

根据第二步,我们可以写出Loss表达式:

可以得到

无下界的函数我们不能用来做loss,因此需要先对目标进行归一化:

简单地取,作为Loss来优化最终路由的。实现对于某种类型的胶囊(向量),它的激活值取决于它的预测一致程度,提高了模型的可扩展性。

接下来作者将上述算法实例化在SOVNET模型中,此时胶囊的激活值通过Squash函数计算(实现Squash有很多方法,比如2范数),用softmax实现GetWeight,以及☆表示卷积相关的操作。此外,新定义了脚标的表示意义,比如表示向量在上的第p个元素。

值得注意的是作者提出的新路由算法没有超参数。在EM路由机制中,相似性度量写作

,则代入上述算法1中经过次迭代后:

但是迭代次数是一个超参数,太大容易过拟合,但若迭代次数不够不能很好地近似到真实的。所以用

上式后作者认为可以解决无穷次迭代后softmax非零即一的问题。

3、Equivariance, Compositionality and SOVNET

接下来作者将新的路由机制应用在提出的SOVNET框架中,层的第 j 个胶囊类型描述为

是前一层所有函数的集合。把这层所有的胶囊类型作一个循环遍历,与所有的预测网络进行operation得到的作为下一层的函数,实现了胶囊类型的更新传播。

上述SOVNET算法具有等变性,即

证明过程在附录中进行展示。

SOVNET算法的训练网络中,是层对应每个胶囊类型数据的卷积核,☆表示群的相关操作的等变算子。

4、Capsule-decomposition graph

文章在介绍完两个算法框架后开始对模型“等变性”的输入输出进行了部分讨论,由此引出了文章最后的工作——用基于图模型的框架研究胶囊网络的表示问题,并提出了“胶囊-分解图”(capsule-decomposition graph)模型。

对于一个有输入模型的SOVNET网络,其中每一个胶囊的所有类型就组成了胶囊-分解图的一个点(vertex).图的边则是通过SOVNET的路由连接而成,边的方向是从浅层胶囊向深层胶囊传递(有向图)。

那么,当上述的输入改变视点(change-of-viewpoint)后,上述图模型的理想状态是什么呢?虽然输入对象的姿态矩阵和组成元件transformations了,但是输入的相对几何是恒定的。所以特定输入(及其转换后的变体)的分解图应该是彼此同构(isomorphic)的。接下来作者给出了上述“胶囊-分解图”正式的描述:

考虑一个 L 层的SOVNET模型,其路由机制属于算法1框架下的方法族。考虑一个固定的输入,定义胶囊分解图:对于输入有。分别是图的点集和边集。满足

其中

这个定义使用每个胶囊的位置信息和类型信息来唯一地识别它。接着给出了这个图模型满足的一个定理2.2:

Theorem 2.2. 考虑一个L层SOVNET,其激活是通过算法1方法族下的路由给出的。假设这个路由对群G是等变的,则对于输入x,,和互为同构。

下面对训练网络的算法及等变性证明过程进行解读:

证明上述算法2是等变的,我们需要证明每一步算法都是等变的。

根据

的结论以及事实关系

,第一步中预测满足等变性,其中相关证明如下:

用卷积核对特征图做相关(correlate):

令,忽略G的求和步骤,可以证明

,即相关对平移具有等变性。

接下来证明DegreeScore这一步是等变的:作者给出的证明方法如下:

结合相关资料及个人理解,其中高亮部分需要用到特征图的变换,因为

不难推出

再根据群论的结合律,最终证明了算法等变性,也即:

对定理2.2的证明部分解读如下:

对于固定的L层SOVNET模型,在群域G上具有等变性。对于输入定义在群域上,每一个特征图均属于G,G(x)是输入对应的“胶囊-分解”图模型。那么表示当输入特征图 x 进行 h 变换后()对应在上的值。

根据,可知在h变换下

也是同构的。

记点集,点集,那么上述变换是从集合映射到的一个双射。(群有一个性质,如果两个群满足双射的条件,也即存在一个变换,可以让两个群的元素一一对应,那么就称这两个群是同构的)

接下来作者继续证明:

证明必要性:假设有

条件,与间路由因数。因为我们已经假设了模型具有等变性这一前提条件,所以与间的路由因数为,则有:

证明充分性:注意到,将上述假设和结论互换即可得证。

四、实验和结果

作者进行了两组实验:

1#首先比较SOVNET架构与其他胶囊网络的baseline在分类上的transformation鲁棒性;

2# :第二部分是将SOVNET与某些胶囊以及基于分类性能的卷积baseline进行比较。

在实验一中,作者对第一层网络引入残差修正模块和SELU激活函数,这么做是为了使用更多的等变特征图来创建第一个胶囊。因为第一个胶囊在整个胶囊网络的性能提升上有很重要的影响。

含有5个隐层的SOVNET使用的数据集为:MNIST FASHION、KMNIST SVHN。

6隐层的SOVNET实验的数据集是:CIFAR-10。

在训练部分的代码中,作者利用边际损失和重构损失来训练网络。对于边际损失,前半段的epoch权值给0.5,后半段在0.95,,0.05,0.8之间变化取值能提升网络性能。

作者的实验方法是利用5种对MNIST、FashionMNIST和CIRAR-10数据集transform后的数据随机作为训练和测试的输入,基线baseline的设置是:Capsnet, EMcaps, DeepCaps 和 GCap。五种transform的方法(Tabel1)和相关实验结果(Tabel2-4)如下:

第二个实验内容是在KMNIST和SVHN数据集上训练和测试SOVNET模型。作者利用了p4群工具来完成这一实验,相关结果在Table5中。

此外为了对比SOVNET和 CNN(作为基线)的表现,作者用ResNet-18和ResNet-34的transformation开展了相关实验,结果在Table6中:

从实验结果可以分析出最明显的一点是,SOVNET在训练和测试时对输入进行几何转换时鲁棒性更好。然而,在某些情况下,一些基线比SOVNET表现得更好。下面简要讨论这些情况。

在CIFAR-10的实验中,DeepCaps在未转换的情况下的表现明显好于SOVNET。然而,SOVNET从训练时间的角度而言,前者在转换过程中的训练效果在其他大多数情况下都比DeepCaps好。作者认为在第一个实验中由于DeepCaps的参数数量增加了(几乎是原来的两倍),这使得DeepCaps能够比SOVNET更好地学习转换的泛化特性,使得DeepCaps在未转换的情况下优于SOVNET。另外还可能是由于使用了p4群这一预测工具所导致的。

第二个值得注意的实验结果是GCaps在MNIST和FashionMNIST上的泛化到极端transformation的结果优于SOVNET,但是当训练时间变动后这一结果会比SOVNET低。作者推测可能的原因是G-Caps中胶囊的显式几何参数化(explicit geometric parameterization)造成的。作者认为采用这种参数化等简单的预测机制,可能是有害的。总而言之,采用卷积的预测可以捕获更复杂的特性,SOVNET更深层的模型具有更强的表达性和等变的预测机制,在更复杂的数据情况下训练效果可能更好。

五、结论

作者提出了一个可扩展到深层架构的胶囊网络的通用模型。提出了一种基于群等变卷积的预测机制和一种基于度中心性(Degree-centrality)的路由算法。论文证明了所提出的模型是等变的,这取决于等变卷积的性质。

论文开展了相关实验,给出了各类分类数据集仿射变化的实验结果,表明该模型比几种胶囊网络基线具有更好的性能。其中第二组实验表明,我们的模型在其他两个数据集上的性能与卷积基线相当。在实验部分还讨论了transformation的效率和非几何组成关系表示中的效率之间可能的折衷。

作为未来的工作,作者的目标路由算法在“胶囊-分解图”的相关优化,以及基于它的各种其他有趣的性质。

六、附录

以下是SOVNET模型的实现代码的个人解读:

运行这套代码需要安装 group-equivariant convolutions(groupy)

GcnnSovnet:输入是primary+5个hidden+class_capsules子类+reconstruction_layer

返回模型activation,预测值prediction,和Loss(margin_loss + reconstruction_loss)

PrimaryCapsules: 2D卷积将输入vector抽取成capsule-type特征图。输入为P4m群处理后的特征,前向传播是用2范数设计的sqursh函数对输入向量进行处理。

ConvolutionalCapsules:是一个“瓶颈”胶囊网络层(即输入网络的维度与输出维度差距很大),负责处理capsule-type的数据。输入:batch个数据,num、dim和卷积核的size.调用类内方法给出输出的预测并通过余弦相似度给出相似性度量,再通过softmax归一化得到degree-routing的分数(路由的实现方法),根据相似度完成预测取舍。

P4PoolingCapsules: 是一个池化层,将具有相同type的capsules进行pooling

ReconstructionLayer: 从最后一个胶囊层中重构输入(一个处理层)。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200303A0549G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券