专栏首页ATYUN订阅号深入了解Hinton的Capsule网络,第一部分:直观地介绍

深入了解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),作者:Yining

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 揭秘图像识别,告诉你机器如何“看见”这个世界

    看懂一个东西对人类来说很容易,但是对机器来说却是很难的,这个时候图像识别技术就应运而生。今天我们就为大家揭秘图像识别技术原理,告诉你机器如何利用卷积神经网络进行...

    AiTechYun
  • 利用人工智能丰富数字地图

    麻省理工学院和卡塔尔计算研究所的研究人员发明了一种新的模型,可以利用卫星图像来标记数字地图中的道路特征,这可能有助于改善GPS导航。向司机展示更多有关路线的详细...

    AiTechYun
  • 深度学习不只是“Import Tensorflow”(下)

    上一部分我们通过努力得到了一个不错的基本神经元,今天我们将会得到一个不同的线性模型!

    AiTechYun
  • NAS(神经结构搜索)综述

    本文是对神经结构搜索(NAS)的简单综述,在写作的过程中参考了文献[1]列出的部分文献。深度学习技术发展日新月异,市面的书很难跟上时代的步伐,本人希望写出一本内...

    SIGAI学习与实践平台
  • 马里奥 AI 实现方式探索 :神经网络+增强学习(上)

    如果能够在游戏自动化测试、智能 AI 中应用这些有趣的算法,想想还是有点小激动哒。

    肖力涛
  • AI 赌神——如何教神经网络玩 21 点游戏?(附代码)

    原文标题:Teaching A Neural Net To Play Blackjack

    AI科技评论
  • AI 赌神——如何教神经网络玩 21 点游戏?(附代码)

    最后,我们观察到一个简单的策略:只有在没有机会爆破的情况下才拿牌,这大大提高了我们获胜的几率,因为它将爆破的风险完全转移到了赌场。

    AI研习社
  • 一分钟安装fastDFS(脚本自动自动化安装)

    用脚本安装是不是非常简单,如果安装时候遇到任何错误欢迎大家留言提问,一般不会出现错误的。

    云上天
  • ICLR 2020 | 如何让图卷积网络变深?腾讯AI Lab联合清华提出DropEdge

    腾讯 AI Lab 和清华大学的这项研究表明,图神经网络无法做深由两个原因造成:过拟合 (Overfitting) 和过平滑(Oversmoothing)。为了...

    机器之心
  • 机器学习很有趣!第3章:深度学习和卷积神经网络

    很多的文章会介绍有关深度学习的一些新闻报道,但我们却并不真正了解其背后的原理!那么今天我们这篇文章便会带大家一览其中的奥秘!

    lujohn3li

扫码关注云+社区

领取腾讯云代金券