实用帖:大白话给你唠Hiton的胶囊网络!

介绍胶囊网络

胶囊网络(CapsNets)是一个热门的新型神经网络体系结构,可能对深度学习,特别是计算机视觉,有深远的影响。等等,计算机视觉的基本问题已经解决了吗?我们不是所有人都能看到卷积神经网络(CNNs)在各种计算机视觉任务(如分类、定位、物体检测、语义分割或实例分割等复杂的神经网络(CNNs)达到超人类水平的惊人例子了么(见图1)?

实用帖:大白话给你唠Hiton的胶囊网络!

一些主要的计算机视觉任务

的确,我们现在已经看到了神话般的CNN,但是:

·他们接受了大量图像的训练(或者重复使用了神经网络的部分)。 胶囊网络可以使用少得多的训练数据进行概括。

·CNN不能很好地处理歧义。而胶囊网络,即使在拥挤的场景下,他们也可以表现出色(尽管他们现在仍然与背景纠缠在一起)。

·CNN在池化层中丢失了大量的信息。这些层减少了空间分辨率(见图2),所以它们的输出对输入的小变化产生的变化基本不显现。当在整个网络中必须保存详细的信息时,这就是一个问题了,例如在语义分割中。今天,这个问题的解决是通过在CNN周围建立复杂的体系结构来恢复一些丢失的信息。使用将囊网络,详细的姿态信息(如精确的对象位置、旋转、厚度、歪斜、大小等等)在整个网络中都会被保留下来,而不是丢失并且随后可以被恢复。对输入的小改动会导致输出的信息的细微变化。这就是所谓的“equivariance”。因此,胶囊网络可以在不同的视觉任务中使用相同的简单而一致的体系结构。

·最后,CNN需要额外的组件来自动识别一个部件属于哪个对象(例如,这条腿属于这只羊)。 而胶囊网络则为你免费提供部件的层次结构。

实用帖:大白话给你唠Hiton的胶囊网络!

胶囊网络于2011年由Geoffrey Hinton等人在一篇名为Transforming Autoencoders的论文中首次提出,这一消息AI中国也曾关注有过报道(https://www.toutiao.com/i6486220996138238478/)。但是仅在几个月前,即2017年11月,Sara Sabour、Nicholas Frosst和Geoffrey Hinton发表了一篇名为《胶囊间的动态路由 》他们引入了一个胶囊架构,在MNIST(手写数字图像的著名数据集)上达到了最先进的性能,并且在MultiMNIST上获得了比CNN明显更好的结果(一个具有重叠的对的不同变体位数)。 见图3。

实用帖:大白话给你唠Hiton的胶囊网络!

MultiMNIST图像(白色)及由CapsNet(红色+绿色)重建。,“R”=重建; “L”=标签

尽管他们拥有很多的优点,但胶囊网络仍不够完美。 首先,现在它们在CIFAR10或ImageNet等大图像上的表现不如CNN好。 此外,它们是计算密集型的,当它们彼此太靠近时,它们不能检测到相同类型的两个对象(这被称为“拥挤问题”,并且已经有显示,人类也拥有这个问题)。 但关键的想法是非常有前途的,而且似乎他们只是需要一些调整来发挥其全部的潜力。 毕竟,现代CNN是在1998年发明的,但经过一些调整后,它们在2012年打败了ImageNet的最新技术。

那么,CapsNet究竟是什么?

简而言之,CapsNet由胶囊而不是神经元组成。胶囊是一小组神经元,其学习检测图像的给定区域内的特定对象(例如矩形),并输出其长度表示所估计的概率的矢量(例如,8维矢量)该对象存在,并且其方向(例如,在8D空间中)对对象的姿态参数(例如,精确的位置,旋转等)进行编码。如果对象稍微改变(例如,移动,旋转,调整大小等),则胶囊将输出相同长度的矢量,但是定向稍有不同。因此,胶囊是等变的。

就像常规的神经网络一样,CapsNet组织在多个层(见图4)。最下层的胶囊被称为主胶囊:它们中的每一个都接收图像的小区域作为输入(称为其接受场),并且试图检测特定图案的存在和姿态,例如矩形。更高层的胶囊称为路由胶囊,能够检测更大更复杂的物体,如船只。

实用帖:大白话给你唠Hiton的胶囊网络!

双层CapsNet

主胶囊层使用几个常规的卷积层来实现。例如,在本文中,他们使用两个卷积层输出256个包含标量的6x6特征映射。他们重塑这个输出以获得包含8维矢量的32个6x6地图。最后,他们使用一个新的压缩函数来确保这些向量的长度在0到1之间(以表示一个概率)。就是这样:这给出了主胶囊的输出。

接下来的层中的胶囊也尝试检测物体和它们的姿态,但是它们的工作方式非常不同,使用称为按协议路由的算法。这就是胶囊网络的大部分魔力所在。我们来看一个例子。

假设只有两个主胶囊:一个长方形胶囊和一个三角胶囊,假设他们都检测到他们正在寻找的东西。矩形和三角形都可以是房子或船的一部分(见图5)。由于长方形的位置略微向右旋转,房屋和船只也必须稍微向右旋转。考虑到三角形的姿势,房子将几乎颠倒,而船会稍微旋转到右侧。请注意,形状和整体/部分关系都是在训练期间学习的。现在注意到长方形和三角形对船的姿势达成一致,而他们强烈地不同意这个房子的姿势。所以,矩形和三角形很可能是同一条船的一部分,并没有房子的存在。

实用帖:大白话给你唠Hiton的胶囊网络!

由于我们现在确信长方形和三角形是船的一部分,因此将长方形和三角形胶囊的输出更多地发送到船舱,而不是发送到房屋舱:这样,船舱将接收更有用的输入信号,并且房屋胶囊将会收到较少的噪音。 对于每个连接,按路由协议算法保持一个路由权重(参见图6):当达成一致时,它会增加路由权重,在出现分歧时减少路由权重。

实用帖:大白话给你唠Hiton的胶囊网络!

协商路由算法涉及协议检测+路由更新的一些迭代(注意,这对于每个预测都会发生,不仅仅是一次,而且不仅仅是在训练时间)。这在拥挤的场景中特别有用:例如,在图7中,场景模糊不清,因为你可以在中间看到倒置的房屋,但是这会使底部的矩形和顶部的三角形无法解释, 协议算法很可能会更好地解释:一艘船在底部,顶部是一栋房子。 这种模棱两可的说法被认为是“可解释的”:下面的矩形最好用船的存在来解释,这也解释了下面的三角形,一旦解释了这两个部分,剩下的部分就很容易被解释为一个房子。

实用帖:大白话给你唠Hiton的胶囊网络!

希望通过这篇文章的简单梳理,能够对你的学习之路产生一定的帮助!

相关推荐