深入了解Hinton的Capsule网络,第一部分:直观地介绍

上周,Geoffrey Hinton和他的团队发表了两篇论文,介绍了一种基于所谓的capsules(胶囊)的全新类型的神经网络。除此之外,该团队还发布了一种叫做“dynamic routing between capsules”的算法,它可以训练这样的网络。

对于学习深度学习的每一个人来说,这都是一个巨大的新闻,有几个原因。在这篇文章中,我将解释为什么这个新架构如此重要。

然而,在谈论capsules之前,我们需要看看卷积神经网络(CNNs),它是当今深度学习的主力。

CapsNet的架构

卷积神经网络有重大的缺点 卷积神经网络非常棒,它们可以做人们过去认为计算机在很长一段时间内都无法做到的事情。尽管如此,卷及神经网络有自己的局限性,而且存在着根本性的缺陷。让我们考虑一个非常简单的非技术的例子。想象一张脸,上面由什么组件(器官)组成?答案是两只眼睛,一个鼻子和一张嘴。对于卷积神经网络来说,仅仅是这些对象的存在就可以是一个非常有力的指标来考虑图像中有一张脸。这些组件之间的定位和相对的空间关系对卷积神经网络来说不是很重要。

对于卷积神经网络来说,这两张图片都是相似的,因为它们都包含相似的组件

卷积神经网络如何工作? 卷积神经网络的主要组成部分是一个卷积层。它的工作是在图像像素中检测重要的特性。更深层次的层(更接近于输入)将学会检测一些简单的特征,例如边缘和颜色渐变,而更高的层将简单的特征合并到更复杂的特征中。最后,网络顶部的密集层将结合非常高级的特征并生成分类预测。

要理解的一件重要的事情是,更高层次的特征将低层次的特征作为加权和:在被传递到激活非线性之前,前一层的激活乘以下面的层神经元的权重并相加。在这种设置中,简单特征之间的关系(平移和旋转)构成了更高级特征。卷积神经网络解决这个问题使用了最大池化(max pooling)或连续卷积层,降低数据流经网络空间的大小,因此增加更高的层的神经元的“视野”,从而使它们能够检测到在输入图像的更大的区域上的高阶特征。最大池化使卷积网络的工作变得出奇地好,在许多领域实现了强大的性能。但是不要被它的性能所愚弄:虽然卷积神经网络的工作比之前的任何模型都好,但是,最大池化正在丢失有价值的信息。

Hinton说,最大池化工作地这么好其实是一个巨大的错误和一场灾难:

The pooling operation used in convolutional neural networks is a big mistake and the fact that it works so well is a disaster.”(在卷积神经网络中使用的池操作是一个很大的错误,而且它工作得如此之好是一场灾难。)

当然,你可以用传统的卷积神经网络来解决问题,但仍然不能解决关键问题:

卷积神经网络的内部数据表示不考虑简单和复杂对象之间的重要的空间层次结构。

在上面的例子中,仅仅有2只眼睛,一张嘴巴和一个鼻子在一张图片上并不意味那就是一张脸,我们也需要知道这些物体是如何相互关联的。

硬编码3D世界变成一个神经网络:倒转图形方法 计算机图形处理以几何数据的内部分层表示来构造一个视觉图像。注意,这个表示的结构需要考虑对象的相对位置。

这种内部表示被存储在计算机的内存中,作为几何对象和矩阵的数组,它们代表了这些对象的相对位置和方向。然后,特殊的软件会将该表示转换为屏幕上的图像。这就叫做渲染(rendering)。

计算机图形处理对象的内部表示并产生图像。人类的大脑则相反。Capsule网络也遵循类似的大脑模式

在这个想法的启发下,Hinton认为,大脑实际上是在做相反的事情。他称之为倒转图形:从眼睛接收到的视觉信息,它们解构了我们周围世界的层次结构,并试图将其与大脑中储存的模式和关系相匹配。这就是识别是如何发生的。关键的想法是,大脑中物体的表示并不依赖于视角。

所以在这个问题上得关键点是:我们如何在神经网络中建立这些层次关系? 答案来自于计算机绘图。在3D图形中,三维物体之间的关系可以用一个所谓的“姿态(pose)”来表示,实质上就是平移和旋转。

Hinton认为,为了正确地进行分类和对象识别,重要的是保持物体之间的层次关系。这是一种关键的直观看法,它能让你理解为什么capsule理论如此重要。它包含了对象之间的相对关系,并且以数字形式表示为4D姿态矩阵(pose matrix)。

  • 姿态矩阵:http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MARBLE/high/pose/express.htm

当这些关系被构建到数据的内部表示时,模型就很容易理解它所看到的东西只是它之前所见过的另一种视角。看一下下面的图片。你可以很容易地看出这是自由女神像,尽管所有的图片都是从不同的角度来展示的。这是因为在你的大脑里,自由女神像的内部表征并不取决于你的视角。你可能从未见过这些照片,但你仍然能立即知道它是什么。

不同角度的自由女神像

对于卷积神经网络来说,这个任务确实很困难,因为它没有对3D空间的理解,但是对于CapsNet来说,它要简单得多,因为这些关系是明确建模的。Hinton使用这种方法完成的论文将错误率降低45%,与之前相比,这是一个巨大的进步。

Capsule方法的另一个好处是,它可以通过使用卷积神经网络所使用的数据的一小部分来学习达到最先进的性能(Hinton在他著名的演讲中提到了这一问题,地址如下)。从这个意义上说,Capsule理论更接近于人脑在实践中所做的事情。为了学会区分数字,人类的大脑只需要看几十个例子,并且最多只能看到几百个。另一方面,卷积神经网络需要成千上万的例子来达到非常好的性能,这似乎是一种强制的方法,显然比我们用大脑做的要差。

  • Hinton的演讲:https://youtu.be/rTawFwUvnLE

是什么原因让capsule花了这么长时间? 事实上,Hinton几十年来一直在思考这个问题。他的论文迟迟没有发表的原因仅仅是因为没有技术的方法可以让它工作。

其中一个原因是,在2012年前后,计算机还没有强大到有足够令人满意的能力。另一个原因是,没有一种算法可以实现并成功地学习一个capsule网络(人工神经元的想法是在1940年左右提出的,但直到1980年代中期,反向传播算法出现并成功地训练了深度网络)。

同样的,capsule本身的想法并不新鲜,Hinton之前也提到过,但直到现在才有了算法来实现它。这种算法被称为“dynamic routing between capsules”。该算法允许capsule相互通信,并在计算机图形中创建类似于场景图的表示。

与其他模型相比,capsule网络要好得多,图片告诉我们,顶部和底部的图像属于同一类,只有视图的角度不同。错误率降低了45%。

结论 Capsule引入了一个新的构建,它可以用于深度学习,从而更好地在神经网络的内部知识表达中建立层次关系。Hinton和他的团队提出了一种方法来训练这样一个由Capsule组成的网络,并成功地训练了一个简单的数据集,达到了最先进的性能。尽管如此,当前的实现比其他现代的深度学习模型要慢得多。时间将证明胶囊网络能够快速有效地训练。此外,我们还需要看看它们是否能在更困难的数据集和不同的域上良好地运行。

无论如何,capsule网络是一种非常有趣且已经工作的模式,随着时间的推移,它将会得到越来越多的开发,并有助于进一步扩展深度学习应用领域。在第二部分,我将逐步介绍更技术性的部分,那就是CapsNet的内部工作。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-11-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

写给大家看的机器学习书(第三篇)

题记 —— 我们为何出发 在开始这个系列文章的第三篇之前,为了对初次见面的朋友更友好,将这个题记放在前面。 哪怕所有的初心最终都被遗忘,至少现在的我们足够认真。...

2816
来自专栏目标检测和深度学习

如何从零开始构建深度学习项目?这里有一份详细的教程

选自Medium 作者:Jonathan Hui 机器之心编译 在学习了有关深度学习的理论课程之后,很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步...

3428
来自专栏机器学习算法与Python学习

周志华团队和蚂蚁金服合作:用分布式深度森林算法检测套现欺诈

1639
来自专栏数据派THU

手把手教你从零搭建深度学习项目(附链接)

本文共1万+字,建议阅读10+分钟。 本文将会从第一步开始,教你解决项目开发中会遇到的各类问题。

533
来自专栏Pytorch实践

机器是如何做阅读理解的?

机器阅读理解 斯坦福有个很重要的比赛,就是让机器完成阅读理解题目,即给定一篇文章,让机器理解文章含义进行题目回复。每年这一比赛都是国际性的,引来了业界、学术界的...

3617
来自专栏AI科技评论

ACL2016最佳论文:CNN/日常邮件阅读理解任务的彻底检查

摘要 NLP尚未解决的核心目标是,确保电脑理解文件回答理解问题。而通过机器学习系统,解决该问题的一大阻碍是:人类-注释数据的可用性有限。Hermann等人通过生...

2844
来自专栏人工智能头条

天啊,你要的智商已下线——用我们的IQ测试题研究测量神经网络的抽象推理能力

为了解决这个问题,我们设计了一种用于抽象推理的新颖结构,当训练数据和测试数据不同时,我们发现该模型能够精通某些特定形式的泛化,但在其他方面能力较弱。进一步地,当...

755
来自专栏机器之心

如何从零开始构建深度学习项目?这里有一份详细的教程

选自Medium 作者:Jonathan Hui 机器之心编译 在学习了有关深度学习的理论课程之后,很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步...

3238
来自专栏大数据文摘

Kaggle大神带你上榜单Top2%:点击预测大赛纪实(下)

1312
来自专栏人工智能头条

如何让机器获得幽默感——Google图学习技术揭秘

1705

扫码关注云+社区