选文| 张一 翻译| 金明 许峰 李韩超
校对| 丁建峰 编辑| 丁建峰
素材来源:Medium
泡泡机器人推广内容组编译作品
01
介绍
上周,Geoffrey Hinton和他的团队发表了两篇论文,介绍了一种全新的神经网络,这种网络基于一种Hinton称之为胶囊(capsule)的结构;此外,还发表了囊间动态路由算法,用来训练新提出的胶囊网络。
Geoffrey Hinton花了数十年的时间思考胶囊模型
对深度学习领域的研发者而言,这算得上是一个重磅新闻。首先,Hinton是深度学习领域的开创者之一,也是现在广泛使用的众多模型和算法的发明者;其次,这两篇论文引入了一些全新的理念和算法,这些东西很有可能会激发一大波新研究和酷炫应用。
在这篇文章中,我将解释为什么这个新架构如此重要,还有它背后的直觉。我也将继续介绍这个架构的技术细节。
不过,在谈论胶囊网络之前,我们先回顾一下作为深度学习主力的卷积神经网络。
论文中的CapsNet架构
02
CNN的重大缺陷
CNN(卷积神经网络)自诞生以来它的表现就令人印象深刻,这也是为什么现在深度学习如此流行的一个原因。CNN可以做到很多令人惊叹的事情,一些过去人们觉得计算机在很长时期内做不到的事情,都能被它轻而易举的实现,尽管如此,CNN也有其局限性,而且是一个巨大的根本性的缺陷。
让我们考虑一个非常简单的非技术性例子。想象一张脸,想一下它是由哪些部件组成的?椭圆的脸型、两只眼睛、一个鼻子和一个嘴巴。对于CNN来说,仅仅这些对象的存在就足以作为一个非常强烈的暗示,意味着图像中有一张脸,而组件的朝向和空间上的相对关系对CNN来说并不是很重要。
对CNN而言,两张图片是类似的,因为它们包含相似的部件
CNN是如何工作的呢?CNN的主要部分是卷积层,用于检测图像像素中的重要特征。较深的层(更接近输入的层)将学习检测诸如边缘和颜色渐变之类的简单特征,而较高的层则将简单特征组合成复杂一些的特征。最后,网络顶部的致密层组合高层特征并输出分类预测。
这里需要重点理解的是,高层特征将低层特征组合为加权和,前一层的激活与下一层神经元的权重相乘并相加,接着传递到非线性激活函数。在这一配置中,组成高层特征的低层特征之间并不存在位姿(平移和旋转)关系。CNN解决这个问题的方法是使用最大池化或后续卷积层来减少通过网络的数据空间大小,从而增加了上层网络神经元的“视野”,因此它们得以检测输入图像较大区域的高阶特征。卷积网络表现惊人,甚至在众多领域产生了超越人类的效果,其支柱正是最大池化。不过,可不要被它的表象迷惑了。虽然CNN的效果比之前的任何模型都好,但最大池化依然损失了不少有价值的信息。
Hinton本人表示,事实上,最大池化工作效果这么好是大错误和灾难。Hinton:“池操作用于卷积神经网络是一个大错误,事实上,它工作这么好是一个灾难。”
当然,你可以用传统的神经网络来取消最大的池化,但是这仍然不能解决关键问题:卷积神经网络的内部数据表示不考虑简单和复杂对象之间的重要空间层次。
在上面的例子中,图片中仅存在2只眼睛,嘴巴和鼻子并不意味着有脸,我们也需要知道这些物体之间的相对位置。
03
逆向图形方法
计算机图形学涉及从几何数据的内部分层表示来构造可视图像。但是请注意,这种表示的结构需要考虑对象的相对位置。该内部表示作为表示这些对象的相对位置和方向的几何对象和矩阵的阵列存储在计算机的存储器中。然后,特殊软件将该表示转换成屏幕上的图像。这就是所谓的渲染。
计算机图形学采用对象的内部表示并产生图像,人脑做相反的事情。Capsule networks遵循类似于大脑的方法。
受这个想法的启发,Hinton认为,大脑事实上与渲染相反。他称之为逆向图形:从眼睛接收到的视觉信息中,他们解构了我们周围世界的层次表征,并试图将其与已经学习的模式和存储在大脑中的关系相匹配。这就是识别发生的方式。而关键的思想是大脑中物体的表示不依赖于视角。
所以现在的问题是:我们如何建模神经网络中的这些层次关系?答案来自计算机图形学。在3D图形中,3D对象之间的关系可以用姿势表示,其本质上是平移加旋转。
Hinton认为,为了正确地进行分类和对象识别,重要的是保持对象部分之间的分层姿态关系。 这是让你理解capsule 理论为何如此重要的关键。它结合了对象之间的相对关系,并以数字形式表示为4维位姿矩阵。
当这些关系被构建到数据的内部来表示时,模型变得非常容易理解,它所看到的只是另一种以前看到的东西。对于下面的图片,即使图像从不同的角度显示,你也可以很容易地认出这是自由女神像。这是因为你脑中的自由女神像的内部表现并不取决于视角。你可能从来没有见过这些照片,但你仍然知道它是什么。
即使所有的照片是从不同的角度拍摄的,你的大脑可以很容易地识别出这是同一个对象。 CNN没有这个能力。
对于一个卷积神经网络(CNN),这却是一项很艰巨的任务因为它不具备这个内建的对于3D空间的理解能力,但是对于一个胶囊网络(CapsNet)则要容易很多,因为这些关系被明确地建模表示。使用了这种方法可以将误差率降低百分之45,相比于之前的主流方法,这显然是一个很大的提升。
胶囊体方法的另一个优势是它只使用CNN网络需要的数据集的一小部分,就能够学习并达到主流方法的性能(Hinton在他的著名演讲What wrongs with CNNs中提及)。从这个角度,胶囊体理论要和实际中人脑的运转方式更相似。为了能学会区分数字,人脑只需要认识数十个例子,最多数百。然而另一方面,CNN的方法需要数万个例子才能达到很好的性能,这种类似暴力穷举的方式在我们人脑看来显然是很低劣的方法。
04
为什么花费了这么久的时间?
这种想法并不复杂,绝无可能之前没有人想到!事实是,Hinton数十年前就已经开始在思考这种方法。之前无相关论文发表的原因仅仅是因为在技术上还未能实现这种方法。一个原因是在GPU成熟之前的年代,电脑计算能力有限,直到2012年左右。另一个原因是之前没有算法可以实现并成功学习一个胶囊网络(同样地,人工神经理论在1940左右就被提出,但却直到1980年后向传播算法被提出,人们才能成功地训练深度神经网络)。
类似地,胶囊体的理论自身并不是全新的理论,Hinton也在之前就有提及,但直到现在才有算法使得这种理论成功实现。叫做“胶囊体间的动态路由算法”。该算法允许胶囊体之间交互和创建与计算机图形学中的场景图相似的表示。
胶囊体网络比其他模型方法更擅长识别出图示上下行的图片属于同类,只是视角不同。最新的论文方法将识别误差率降低了高达45%
05
结论
胶囊体理论引入了一个全新的构建模块,可以在深度学习中使用,以更好地模拟神经网络内部知识表示的层次关系。这种理论背后的直觉知识是简单和简洁的。
Hinton和他的团队提出了一种方法来训练这种由胶囊体组成的网络并成功地只在一个简单的数据集上训练学习就能达到主流算法的性能。这是很鼓舞人心的。
尽管如此,现在仍存在诸多挑战。现今的实现方法要比其他的主流深度学习模型的速度慢很多。时间将会向我们展示胶囊体网络能否被快速且有效地训练。另外,我们还需要看看它们是否适用于更困难的数据集和不同的领域。
无论如何,胶囊网络是一个非常有趣而且已经有效的模型,随着时间的推移,它肯定会得到更多的发展,并有助于深度学习应用领域的进一步扩展。
至此,胶囊体网络系列的第一部分就结束了。
#泡泡机器人新闻社-往期回顾#