图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读( 四 )


(1) Stacked Capsule Autoencoders
 图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读
文章图片
这篇文章的思想是,物体是由一系列几何部分组成,因此,可以用一个无监督的胶囊自动编码器来明确各个部分之间的几何关系,进而推理出对象 [5]。因为这些关系不依赖于视角,所以这个模型对于任意视角的图片都具有很强的鲁棒性。总体而言 unsupervised capsule autoencoder(SCAE)的实行主要分为两个阶段。
第一阶段, 该模型使用 PCAE 直接从图像中预测部分模版存在的概率和姿态,并试图通过重新排列部分模板重建原始图像。第二阶段,SCAE 使用 OCAE 预测一些物体胶囊的参数,并试图组织和发现部分和姿势为一组更小的对象,这对于重建图像十分重要。在这个模型中,由现成的神经编码器来实现推理过程,这点与以前的胶囊网络都不相同。其具体的原理如图 11 所示。
 图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读
文章图片
图 11. Stacked Capsule Autoencoders:(a) 部分胶囊将分割输入为部分和姿态,这些姿势随后被放射变换的模板用来重建输入图像;(b) 对象胶囊试图把推理出的姿态对应到物体,因此找出潜在的结构信息。
具体来说,将一幅图像分割成多个部分并不是件容易的事,所以作者从抽象像素和部分发现阶段开始,提出 CCAE(Constellation Capsule Autoencoder),它使用二维点作为部分,给出它们的坐标作为系统的输入。CCAE 学习将点集进行建模成为熟悉星座,每一个点都是由独立的相似变换来变形。CCAE 能在事先不知道星座的数量和形状的情况下学会给每个点分配对应的星座。之后作者还提出了 PCAE( Part Capsule Autoencoder ),它学着从图像中推理出它的部分和姿势。最后,叠加 OCAE( Object Capsule Autoencoder),OCAE 与 CCAE 高度相似。
在 CCAE 中,一组二维输入点如图 12 所示,首先对其进行编码到 K 个对象胶囊中,一个对象胶囊 k 包含着一个胶囊特征向量 ck,它的存在概率 ak 在 0 到 1 之间,然后还存在在一个 3x3 的对象 - 观察者关系矩阵,矩阵代表着对象和观察者之间的仿射矩阵。
 图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读
文章图片
图 12. 超过三个点的在不同位置,不同尺度和方向的无监督分割。
在 PCAE( Part Capsule Autoencoder )中,与 CCAE 只有二维点(XY 轴)输入不同,每个部分胶囊 m 都包含有一个 6 维姿态(2 个旋转,2 个翻译,尺度和裁剪),一个存在概率变量 dm 和一个独特的个体。作者将部分发现问题改变为了自动编码,编码器学习和推断不同部分胶囊的姿态和存在,而解码器学习图像每个部分的模板 Tm。如果一个部分存在,对应的模板将被仿射转换成推测姿势。最后,转换后的模板被安排到图像中,紧接着在后面的 OCAE 中进行处理。
在 OCAE( Object Capsule Autoencoder)中,在确定了部分及其参数之后,我们希望发现其中可以组合的对象。为此,使用连接姿势 xm、特殊特征 zm 和扁平模板 Tm(它传达部分胶囊的实体)作为 OCAE 的输入。首先,将部分胶囊存在概率 dm 输入到 OCAE 中,其次,dm 也被用来衡量部分胶囊的似然对数。因此, 每一个部分 - 姿势被解释为一个从物体 - 胶囊中得到的独立的混合预测。
整个部分组合的网络框架如图 13 所示。
 图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读
文章图片
图 13. 网络结构图
最后,作者一样做了对该方法的评估,我们选择其在 MNIST, CIFAR10,SVHN 三个数据集中的实验结果来说明,在第 1,3 个数据集中,效果明显较好,但在第二个数据集中,识别率还是不高。
 图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读
文章图片
(2) DeepCaps
 图像中|学习Hinton老爷子的胶囊网络,这有一篇历史回顾与深度解读
文章图片
顾名思义,这个版本胶囊网络使得能使结构变得更深,进而能够处理更为复杂的数据 [6]。此外,在这篇文章中还有一个 3D-convolution-inspired routing 算法被提出,用于减少参数。该网络的主要特点就是在结构上的改变,引入了专门针对胶囊的 3D 卷积,并且使用了残差网络的结构。
当前,动态路由的主要缺点之一是目前形式只能在胶囊间实现完全连接的方式而它不能以卷积的方式连接两个胶囊。因此需要有一种新的针对 3D 卷积的动态路由方式被提出。在 V 中,每个元素能被以 3D 卷积的方式得到,其计算过程如下。
如果使用以前的路由方式,卷积运算得到的特征图只具有局部特征,因此,相邻的胶囊共享相似的信息。作者提出可以从第 l 层到第 l + 1 层的胶囊间通过排列一个胶囊块而不是分别路由第 l 层的每个胶囊就路由来消除这种冗余。这一修改结果大大减少了参数的数量。类似地,使用 3D 卷积核变换,一个子集的胶囊在一个区块进行一次投票,可以实现了局部投票。例如,3×3×8 的核会把相邻的 9 个结果变成 1 票。换句话说,在第 l 层中,低层实体可以用一个胶囊或者几个相邻的胶囊表示,因此,不是分别路由它们到一个更高级别的胶囊,而是把它们组合在一起来路由。下图为 3D 卷积中的路由方式。


推荐阅读