基质胶囊与EM路由
翻译Hinton论文(2012)MATRIX CAPSULES WITH EM ROUTING
个人学习笔记,转载参考请注明出处
摘要
胶囊是一组神经元,其输出代表同一实体的不同属性。
胶囊网络的每一层都包含许多胶囊。
我们描述了一个胶囊的版本,其中每个胶囊都有一个逻辑单元来表示实体的存在和一个4x4矩阵,它可以学习表示实体和观察者之间的关系(姿态)。
一个层中的胶囊通过将其自身的位姿矩阵乘以能够学会表示部分-整体关系的可训练的视点不变变换矩阵来为上面层中许多不同胶囊的位姿矩阵投票。
每个票数都由分配系数加权。使用期望最大化算法迭代地更新每幅图像的这些系数,这样每个胶囊的输出将被路由到上面一层中接收到一组类似投票的胶囊。
通过在每一对相邻的包膜层之间的展开的EM迭代中反向传播,对变换矩阵进行区分训练。在smallNORB基准测试中,胶囊与最先进的相比减少了45%的测试错误。与我们的卷积神经网络相比,胶囊对白盒对抗攻击也表现出更强的抵抗力。
1.介绍
卷积神经网络基于一个简单的事实,即视觉系统需要在图像的所有位置使用相同的知识。这是通过绑定特征检测器的权重来实现的,这样在一个位置学习到的特征在其他位置也可以使用。卷积胶囊扩展了跨位置的知识共享,包括描述熟悉形状的部分-整体关系的知识。视点变化对像素强度有复杂的影响,但对表示物体或物体部分与观察者之间关系的位姿矩阵有简单的线性影响。胶囊的目的是充分利用这种潜在的线性,既用于处理视点变化,也用于改进分割决策。
胶囊使用高维符合滤波:一个熟悉的对象可以通过寻找其位姿矩阵的一致投票来检测。这些选票来自已经被检测到的部分。一个部件通过将它自己的位姿矩阵乘以一个学习过的变换矩阵来产生一个投票,这个变换矩阵表示部件和整体之间的视点不变关系。当视点改变时,各部分和整体的姿态矩阵将以协调的方式改变,以便来自不同部分的投票之间的任何一致意见将持续存在。
在一团不相关的选票中找到密集的高维投票簇,这是解决将部分分配给整体问题的一种方法。这不是小事,因为我们不能像对低维平移空间网格化那样对高维位姿空间网格化,以方便卷积。解决这一挑战,我们使用一个快速的迭代过程称为路由协议更新的概率部分分配给一个完整的基于距离的选票来自这部分的选票来自其他部分分配给整个。这是一个强大的分割原则,允许熟悉的形状的知识推导分割,而不是仅仅使用低层次的线索,如接近或一致的颜色或速度。胶囊和标准神经网络的一个重要区别是,胶囊的激活是基于对多个传入的姿态预测的比较,而在标准神经网络中,它是基于对单个传入的活动向量和学习的权值向量的比较。
2.胶囊如何工作
神经网络通常使用简单的非线性,其中非线性函数应用于线性滤波器的标量输出。
他们也可以使用softmax非线性将整个对数向量转换为概率向量。胶囊使用一种更为复杂的非线性,将一层中胶囊的整个激活概率和姿态转换为下一层的激活概率和姿态。
胶囊网由几层胶囊组成。第L层的胶囊集合记为L,每个胶囊有4x4位元矩阵M和激活概率a。这些类似于标准神经网络中的活动:它们依赖于电流输入,不被存储。
在L层的每个胶囊i和L + 1层的每个胶囊j之间是一个4x4可训练的变换矩阵Wij。
这些Wij(以及每个胶囊的两个习得偏差)是唯一存储的参数,它们是有区别地习得的。胶囊的姿态矩阵转换,维琪投票Vij = MiWij胶囊的姿态矩阵j。所有的胶囊层的姿态和激活在层L + 1使用非线性路由程序计算,得到即输入Vij和ai对所有i ∈ ΩL, j ∈ ΩL+1.
非线性过程是期望最大化过程的一个版本。它迭代地调整L+1层中胶囊的均值、方差和激活概率以及所有i ∈ ΩL, j ∈ ΩL+1之间的分配概率。在附录1中,我们简单直观地介绍了协议路由,并详细描述了它与拟合高斯混合的EM算法之间的关系。
7 相关工作
在最近改善神经网络处理视点变化能力的多种尝试中,有两大主流。
一个流试图实现视点的不变性,而另一个流试图实现视点的等方差。
Jaderberg等人(2015)提出的《空间变压器网络》(Spatial Transformer Networks)通过根据仿射变换的选择改变cnn的采样来寻求视点不变性。
De Brabandere等人(2016)扩展了空间变压器网络,在推理过程中根据输入调整滤波器。它们为特征图中的每个局部生成不同的过滤器,而不是对所有的过滤器应用相同的转换。他们的方法是传统模式匹配框架(如标准的CNNs)向输入协方差检测迈出的一步(LeCun et al., 1990)。Dai等人(2017)对空间变压器网络进行了改进,推广了滤波器的采样方法。我们的工作有很大的不同,因为单元不是根据过滤器的匹配分数激活的(在推理过程中固定或动态改变)。在我们的例子中,一个胶囊被激活,只有当转换的姿态来自下面的层相互匹配。这是捕获协方差的一种更有效的方法,并导致模型具有更少的参数,从而更好地泛化。
CNNs的成功促使许多研究人员将嵌入到CNNs中的翻译等方差扩展到旋转等方差(Cohen & Welling (2016), Dieleman等人(2016),Oyallon & Mallat(2015))。
谐波网络中最近的方法(Worrall et al.(2017))通过使用圆形谐波滤波器和使用复数返回最大响应和方向来实现旋转等变特征映射。这与“胶囊”的基本表征思想相同:通过假设一个位置上只有一个实体实例,我们可以使用几个不同的数字来表示它的属性。他们使用固定数量的流的旋转命令。通过强制沿任何路径的旋转顺序和相等,它们实现了贴片方向的旋转等方差。这种方法比数据增加方法、复制特征图或复制过滤器更具有参数效率(Fasel & Gatica-Perez(2006)、Laptev等人(2016))。我们的方法编码一般的视点等方差,而不是仅仅仿射二维旋转。对称网络(Gens & Domingos(2014))使用迭代的Lucas-Kanade优化来找到最低级特征支持的姿势。它们的主要缺点是迭代算法总是以相同的姿态开始,而不是以自底向上投票的均值开始。
Lenc & Vedaldi(2016)提出了一种特征检测机制(DetNet),它与仿射变换是等变的。DetNet被设计用于检测在不同视点变化下的图像中的相同点。这与我们的工作是正交的,但是DetNet可能是实现第一级还原的好方法,它激活了主胶囊层。
我们的路由算法可以看作是一种注意机制。这个观点中,这与Gregor等人(2015)的工作有关,他们在生成模型中使用高斯核来关注编码器生成的feature map的不同部分,从而提高了解码器的性能。Vaswani等人(2017)在为查询生成编码时,使用softmax函数注意机制来匹配翻译任务的部分查询序列和部分输入序列。它们显示了使用循环架构对以前的转换工作的改进。我们的算法关注的是相反的方向。竞争并不存在于较低级别的胶囊之间,而较高级别的胶囊可能会参与竞争。它是在较高级别的胶囊之间,一个较低级别的胶囊可以发送它的投票。
7.1先前对胶囊的研究
Hinton等人(2011)在转换自动编码器中使用了一个变换矩阵,该编码器学会了从稍微不同的视角将立体图像对转换为立体图像对。但是,该系统需要从外部提供转换矩阵。最近,协议路由被证明对高度重叠的数字分割是有效的(Sabour等(2017)),但该系统存在一些缺陷,我们在本文中已经克服了这些缺陷
它使用位姿向量的长度来表示由胶囊表示的实体出现的概率。为了保持长度小于1,需要一个无原则的非线性,这就阻止了任何合理的目标函数的存在,而该目标函数被迭代路由过程最小化。
它用两个位姿向量夹角的余弦来衡量它们的一致性。不像一个高斯聚类的负对数方差,余弦的饱和值为1,这使得它不敏感于一个相当好的一致性和一个非常好的一致性之间的差异。
它使用一个长度为n的向量而不是一个有n个元素的矩阵来表示一个位姿,因此它的变换矩阵有n的平方个参数而不仅仅是n个。
8 结论
基于Sabour等人(2017)的工作,我们提出了一种新型胶囊系统,其中每个胶囊都有一个物流单元来表示实体的存在,以及一个4x4位姿矩阵来表示该实体的位姿。我们还基于EM算法在胶囊层之间引入了一种新的迭代路由过程,该过程允许将每个低层胶囊的输出路由到上层的胶囊,从而使活动胶囊接收到一组类似的姿态投票。这个新系统在smallNORB数据集上取得了比最先进的CNN更好的精度,减少了45%的错误。我们也证明了它在对抗白盒攻击时比基线CNN更加强大。
SmallNORB是开发新的精确形状识别模型的理想数据集,因为它缺少野外图像的许多附加特征。既然我们的capsule模型在NORB上工作得很好,我们计划实现一个有效的版本,在更大的数据集(比如ImageNet)上测试更大的模型。