1. 简介
近年来,卷积神经网络(CNN)在深度学习领域中发挥了重要作用。事实证明,CNN的变体在跨不同领域的分类任务中非常成功。但是,CNN的主要缺点有两个:无法考虑要素之间的重要空间层次结构以及缺乏旋转不变性[1]。只要在测试数据中存在某个对象的某些关键特征,CNN便会将测试数据归类为该对象,而无需考虑特征之间的相对空间方向。这会导致误报。 CNN缺乏旋转不变性,将导致网络错误地为对象分配另一个标签,从而导致假阴性。为了解决这个问题,Hinton等人。在最近的论文中,提出了一种使用胶囊概念的新型神经网络。通过使用动态路由和重构正则化,胶囊网络模型将具有旋转不变性和空间感知能力。
胶囊网络通过在MNIST上获得0.25%的测试误差的最新结果而展示了其潜力,而没有数据增加,例如旋转和缩放,优于之前的0.39%的基线。 为了进一步测试胶囊网络在高维数据上的应用,我们尝试找到在CIFAR10数据集上产生最佳测试误差的最佳配置集。
2. 胶囊网络的回顾
胶囊网络代表了神经网络架构的最新突破。 它们在MNIST数据集上达到了最先进的准确性,这是传统上由深度卷积神经网络体系结构实现的壮举。 胶囊网络引入了平移不变性的替代方法,而不是通过使用模块或胶囊进行合并。 有两个关键功能与CNN有所区别:基于层的压缩和动态路由。 CNN的神经元通过非线性被压缩,而胶囊网络的输出被压缩为整个向量。 胶囊用向量输出胶囊代替CNN的标量输出特征检测器,并通过按协议路由选择最大池化。 Capsnet体系结构通常包括几个卷积层,最后一层是胶囊层。
2.1 动态路由
胶囊输出一个向量,这意味着可以有选择地选择胶囊上方层中的哪个父对象发送到。 对于每个潜在的父对象,胶囊网络可以增加或减少连接强度。 通过协议进行的路由在增加不变性方面比通过最大池引入的原始路由要有效得多。
2.2 重构正则化
传统的CNN会通过使用Dropout来防止过度拟合,而Capsule网络则通过重构自动编码器进行了规范化处理。 在训练期间,除了与正确数字相对应的活动向量之外,所有活动向量都被屏蔽。 然后,该活动矢量用于重建输入图像。 数字的输出然后用于计算损失。 这鼓励网络学习图像的更一般的表示形式。
2.3 相关工作
多伦多大学的Geoffrey Hinton,Ilya Sutskever和Alex Krizhevsky创建了称为AlexNet的深度卷积神经网络体系结构,从而发生了机器学习领域的范式转变。他们创建的体系结构在ImageNet挑战中比最新技术成果高出10.8%。
试图解决CNN的代表性限制的一项新进展来自Hinton等人,该研究在2011年提出[3],其中“胶囊”的概念首次进入了机器学习术语。胶囊利用转换矩阵解决了CNN的代表性效率低下问题,使网络可以自动学习整体关系,从而将其推广到新颖的观点,而传统CNN的表现却表现出指数级的下降。
由Hinton等人介绍的胶囊网络代表了深度学习领域中类似的范式转变[1],具有新颖的学习架构,但是它们在数据集上比MNIST更复杂的分类能力还有待观察。如Hinton等人[7]所展示的,动态路由的思想是胶囊网络中的一个关键概念,具有生物学基础。动态路由程序的重要性通过生物学上可行的模型得到了强调,其中动态连接和基于对象的参考框架“被用来生成可用于对象识别的形状描述” [7]。
3. 方法论
我们从基线模型开始,即具有3个颜色通道的Hinton的MNIST模型。 我们探索了各种模型修改的效果,从堆叠更多的胶囊层到尝试不同的参数。
•堆叠更多的胶囊层:基线模型体系结构是专为MNIST(相对低维的数据集)构建的。为了解决CIFAR10的复杂基础功能,堆叠更多的胶囊层以解决功能之间日益复杂的关系可能会提高网络的表示能力。
•增加初级胶囊的数量:随着数据维数的增加,传统神经网络的一种典型方法是堆叠更多的层并增加隐藏单元的数量。由于每个胶囊代表一小群神经元,因此我们相信增加初级胶囊的数量会产生更好的准确性,因为可以学习更多的功能。
•集成平均:在集成平均中,一起训练一组网络,并在测试时对它们的预测进行平均。这促使不同的网络学习独特的功能,并且通常产生比一个网络本身可以达到的更高的准确性。欣顿在胶囊网络上发表的论文在7种模型的组合中产生了10.6%的测试错误。 [1]
•修改重建损失的缩放比例:由于MNIST和CIFAR10之间的数据复杂性不同,用于重建损失的每个像素的缩放比例也可能不同。我们对比例因子进行了实验,并分析了比例因子对过拟合和收敛速度的影响。
•在胶囊层之前增加卷积层数:CIFAR10数据的较高维度需要对图像进行更复杂的编码。假设是在将其输入胶囊层之前创建更复杂的图像编码可能会产生更高的精度。
•定制的激活函数:我们使用定制的激活函数代替原压缩函数功能。 我们假设我们的激活功能
将对x的细微变化敏感,从而导致更大的类分离。 例如,f(x)在值x = 3时已经收敛到1。
•不使用上述任何一种:胶囊网络倾向于解释图像中的所有内容,因此可以通过将上述一种添加为第11类来表示都不属于之前类别从而提高准确性。
4. 数据集
为了探索胶囊网络在更高维度数据上的性能,我们使用了CIFAR-10数据集,该数据集是Alex Krizhevsky,Vinod Nair和Geoffrey Hinton收集的8000万个微型图像的子集。[5]数据集由来自10个不同类别的32x32彩色和带标签的图像组成,其中每个类别正好包含6,000个图像:飞机,汽车,鸟类,猫,鹿,狗,青蛙,马,船,卡车。根据设计,该数据集是完全互斥的:例如,汽车和卡车之间没有重叠。 50,000张图像将用作训练数据,而10,000张图像将用作验证数据。选择CIFAR-10数据集是因为它是一个已建立的计算机视觉数据集,具有大量现有的分类准确性报告,并且与MNIST相比,图像足够复杂,这使我们能够对更高维度的数据进行测试。
由于在撰写本文时仅在几周前才介绍了胶囊网络,所以在CIFAR10上的性能尚无很多结果。如Hinton等人的原始论文所述,在具有胶囊网络的CIFAR10上实现的最佳测试误差是通过对24×24图像斑块和64种不同类型的原始胶囊进行3次路由迭代来训练的。 [1]使用卷积神经网络中的分数最大池,CIFAR10数据集的最新验证错误为4.50%。 [4]基于胶囊网络在MNIST数据集上的出色表现,我们认为,如果配置良好,我们可以缩小CIFAR10当前测试误差与最佳测试误差之间的差距。
5. 实验结果
在尝试了方法部分中提到的方法的不同组合之后,我们选择以下代表性模型来报告我们的准确性。 请注意,集成还包括“以上类别均不”优化。
由于资源的限制和观察到的验证准确性在那个时期数附近稳定的情况,我们训练了50个时期(如下图所示)。 尽管在一些修改中都取得了成功,例如添加了卷积层和整体平均,但大多数修改都被证明低于基线。 与预期相反,堆叠一个额外的胶囊层并使用我们自己的激活功能的性能大大低于基线模型。 降低重建比例并增加胶囊类型的数量也比预期的要差。
基线模型上MNIST和CIFAR10的真实图像和重建图像如下所示。 上半部分是输入,下半部分是重建的图像。 如下图所示,MNIST重建具有清晰的结构和鲜明的特征。 相比之下,CIFAR10重建是模糊的,并且每个类别都缺乏鲜明的特征。 我们将在下面的部分中提供关于重建重建方案中这种巨大差异的拟议解释,并提供解决该问题的潜在方法。
6 讨论和分析
6.1 模型比较
通过实验,我们发现,与基线模型相比,添加卷积层可将验证准确性提高0.41%,并且使用4模型集成可将验证准确性提高1.85%。 卷积和集成成功的根本原因可以归因于需要以更高的维数更好地表示复杂特征。 在所有实验中,最有前途的模型是利用带有附加卷积层的7模型集合的模型,最早在第25个时代就将其“ 4-集合2-conv”网络超过了0.16%。
6.2 总结
由于计算限制,我们比较了50个时代标记处不同模型的性能,而不是训练每个模型直到绝对收敛。 [1]中的基线模型不使用任何集合,仅使用一个卷积层和32种类型的胶囊,在50个时期内达到了68.93%的验证准确度。我们使用具有2个卷积层的4集成模型,在50个历元上训练了71.550%的最佳验证准确性。这比本文介绍的基线MNIST模型提高了2.57%的精度。与基线相比,这是一个显着的改进,但是我们的结果低于使用70型集成和64个胶囊的CIFAR-10的原始论文性能。由于计算资源的限制,无法测试7模型集合和64胶囊网络的组合。但是,基于2模型合奏和4模型合奏的性能,本文当前的最佳模型不太可能在很大程度上优于Hinton的结果。
6.3 重构损失
MNIST和CIFAR10之间的性能差距可能归因于重构方法。与传统的神经网络不同,胶囊网络的正则化技术试图使重建图像与真实图像之间的差异最小化。我们还观察到,胶囊网络对仿射变换(2D变换)具有鲁棒性。这种类型的正则化在二维手写数字上效果非常好,其中所有变换都是仿射或旋转的。但是,为了在现实世界中正确地对3维对象进行分类,需要视点不变性-不管视角如何都能够识别对象的能力。与MNIST中的数字不同,CIFAR10中的对象由于视点的变化而对每个类别具有多个视点。在3维数据上应用二维重构正则化方法可能会导致不正确的重构正则化值,这可能是导致胶囊网在复杂数据上性能欠佳的一个因素。
6.4 未来工作
最近发表在公开评论中的一篇论文提出了使用EM路由的矩阵胶囊的想法[6],其中使用4 x 4姿势矩阵来说明物体与观看者位置之间的关系。 随着视点的变化,以某种方式修改姿势矩阵,使得来自不同胶囊的投票将持续存在,从而使具有姿势矩阵的胶囊网络成为视点不变的。 包含这种姿态矩阵是未来研究的一个有趣且有希望的方向,因为它似乎可以解决胶囊网络在复杂数据上的缺点。