Dynamic Routing Between Capsules

dwSun 2018-02-06 16:16
关注文章
提交模型

A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or an object part. We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation parameters. Active capsules at one level make predictions, via transformation matrices, for the instantiation parameters of higher-level capsules. When multiple predictions agree, a higher level capsule becomes active. We show that a discrimininatively trained, multi-layer capsule system achieves state-of-the-art performance on MNIST and is considerably better than a convolutional net at recognizing highly overlapping digits. To achieve these results we use an iterative routing-by-agreement mechanism: A lower-level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule.

数据集:CIFAR-10、MNIST

原作者:Sara Sabour, Nicholas Frosst, Geoffrey E Hinton

发布时间:2017-10-26

论文链接

{{panelTitle}}(2)
支持Markdown和数学公式,公式格式:\\(...\\)或\\[...\\]
dwSun 2018-02-06 17:56

吐个槽,看好多人说Hinton不过如此之类的话,目前神经网络训练的框架其数据输入都是四维的,BatchSizexWxHxChannels或者BatchSizexChannelsxHxW,也就是我们用的框架,只能支持3维的数据运算,CapsNet的实现中,还不得不reshape了一下数据。但是Capsule的概念本身是4维甚至可以是5维6维的。典型的技术发展跟不上先进概念的节奏,第一波人工智能热潮不就是因为运算能力跟不上,所以被打压下去了么。

dwSun 2018-02-06 17:47

Capsule的概念是革命性的。当前cnn的问题,按照论文作者的看法,是对于特征进行了最大化的抽取,但是对于特征之间的关系却没有很好的进行描述。所以论文里面将一组的cnn组合起来,利用其抽取一组特征并进行整合,最后输入到下一层的capsule中进行进一步的处理。

我认为capsule属于一个高维度的模型,其最大的革命性在于模型里面引入了更高维度的特征。对于低维度的特征,可以有更好的方式对其进行组合,以形成一个更高维度的特征用于后续的任务。相比于低维度特征通过扩展通道数进行特征抽取的方式,高维度的特征本身拥有更大的信息容量,因此在相同的计算量的前提下,高维度的特征能便于模型更有效的对数据进行处理。按照MobileNetV23.2. Linear Bottlenecks关于relu在不同的维度中进行激活后数据信息损失的描述,神经网络的处理过程中,对特征的抽取损失,高维度的数据要低于低维度的数据。在MobileNetV2中,论文作者是通过增加通道数来增加数据的维度,但是数据的维度rank仍然是3,而在capsule中,数据的维度rank可以达到4也就是真正的提高了数据的维度。

关于论文中的Dynamic Routing,看来看去,就像是神经网络早期用的特别多的fullconnect一样,只不过这里的Dynamic Routing权重是由一些数学的方式进行的计算,而fullconnect里面的权重是反向传播得来的。这里用Dynamic Routing来组织低维度的数据,看上去总觉得稍微有点low,在人工智能及深度学习大行其道的今天,论文作者还在用机器学习的方式处理特征。但是神经网络这些年的发展是很快的,也许很快就会出现对高维特征抽取进行反向传播的方式来训练网络。

脑洞大开了一下,这里还在用Dynamic Routing来组合低维度的特征信息,如果真的用上full connect呢,再进一步,用上convolution在更高的维度上对特征进行组合,目前的cnn网络都convolutions,这个CapsNet出现之后,后面可能会出现Conved-convolutions,可以叫做Capsuled-CapsNet。再进一步,再升高几个维度,用Conved-Conved-convolutions,可以叫做Capsuled-Capsuled-CapsNet...

Google的Inception结构就是用神经网络来在不同的卷积核中进行选择。那么这里的Capsuled-...-CapsNet也可以考虑类似的结构,构建一个supervisor-net,对几个不同层次的高维Capsuled-...-CapsNet进行组合训练,将其最后的features进行concat,并进行输出。这个恐怕得算力支持才行。

人类大脑的结构是很复杂的,已经不能用维度来衡量神经元之类的连接复杂性。我们目前所谓的人工智能模型,或多或少受限与算力,以及模型的结构,因此能力都比较有限。也许在某个应用非常狭窄的领域,一些模型的表现已经超过了人类的平均水平,例如完全信息博弈的围棋,似乎人类已经彻底败给人工智能了,考虑计算机算力以及存储能力的优势,这种结果本身不值得惊讶。在其他领域,例如同样是竞技,但是属于不完全信息的星际争霸,目前的结果是,研发alphago的deepmind目前做出来的星际争霸AI,任何一个人类不太菜的玩家都可以轻松吊打它。

CapsNet带来了更高维度和更复杂结构的模型的可能性。

关注微信公众号