首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入了解Hinton的Capsule网络,第一部分:直观地介绍

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

作者头像
AiTechYun
发布2018-03-05 16:52:39
7960
发布2018-03-05 16:52:39
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

上周,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的内部工作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档