必看深度学习之父Hinton发表最新论文,或将引领AI探索新动向

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

必看深度学习之父Hinton发表最新论文,或将引领AI探索新动向[亿欧导读]GeoffreyHinton等人备受关注的NIPS2017论文《DynamicRoutingBetweenCapsules》已于数小时前公开。图片来自网络9月份,Axios的一篇报道指出,GeoffreyHinton呼吁研究者们对反向传播保持怀疑态度,并准备在深度学习之上重构人工智能的理论体系。报道指出,他和其他两位研究者被NIPS2017接收的论文《DynamicRoutingBetweenCapsules》正是Hinton对于未来人工智能形态的新探索。在论文未放出之前,业内已经对其有着热烈的讨论。昨天,这篇文章终于被提交到了预印版论文平台上,我们得以一览全貌。在本文中,机器之心对此论文做了摘要介绍。论文:《DynamicRoutingBetweenCapsules》论文链接:是一组神经元,其活动向量(activityvector)表示特定实体类型的实例化参数,如对象或对象部分。我们使用活动向量的长度表征实体存在的概率,向量方向表示实例化参数。同一水平的活跃capsule通过变换矩阵对更高级别的capsule的实例化参数进行预测。当多个预测一致时,更高级别的capsule变得活跃。我们展示了判别式训练的多层capsule系统在MNIST数据集上达到了顶尖的性能,比识别高度重叠数字的卷积网络的性能优越很多。为了达到这些结果,我们使用迭代的路由协议机制(routing-by-agreementmechanism):较低级别的capsule偏向于将输出发送至高级别的capsule,有了来自低级别capsule的预测,高级别capsule的活动向量具备较大的标量积。1、前言人类视觉可以通过使用一个小心确定的注视点序列来保证仅有极少部分画面需要进行高分辨率处理。我们很难通过内省的思路来理解一个场景中注视点序列能够传递多少信息,我们能从单一注视点中获取多少信息,但在谷歌大脑SaraSabour、NicholasFrosst与GeoffreyHinton提交的这篇论文中,研究人员假设单一注视点可以提供远多于目标种类及其属性等信息。研究人员假设人类的多层视觉系统可以在每个注视点上创建类似于解析树一样的机制,在研究中,我们将忽略这些单一注视点解析树在多个注视点中如何协调的问题。解析树通常通过动态分配内存来构建,但根据Hinton等人2000年的研究,在新的论文里我们假设对于单一注视点而言,解析树是由指定多层神经网络雕刻而出的,就像在岩洞的石壁上雕刻的图画一样。每一层会被分割为很多神经元小组,它们被称为胶囊(「Capsule」,Hintonetal.,2011),解析树上的每个节点对应于一个活动的Capsule。在迭代地进行路由选择的过程中,每个活动Capsule将在上面的层中选择一个Capsule作为其树中的父单元。对于更高级的视觉系统而言,这个迭代过程将解决从部分分配到整体的问题。在活动Capsule中神经元的活动表示了图像中存在的特定实体的各种性质。这些性质可以包含很多种不同的实例化参数,例如姿势(位置,大小,方向)、变形、速度、反射率,色彩、纹理等等。其中一个非常特殊的属性就是图像中实例化实体的存在与否。表示存在的一个简单方法就是使用单独的逻辑单元,让它输出实体存在的概率。在本论文中,研究人员探索了一个有趣的替代方法--使用实例化参数向量的总长度来表示实体的存在,并强制向量的方向来表示实体的属性。研究人员通过应用一个非线性方法,让向量方向不变,但大小可以缩放,以此确保了输出的向量长度不超过1。Capsule的输出是向量,所以我们可以使用强大的动态路由机制确保输出的信息可以被传送到合适的父capsule中(上一层)。最初,输出可以通向所有可能的父节点,但因为耦合系数为1,这个范围被急剧缩小。对于每个可能的父节点来说,capsule会通过其自身的输出乘以权重矩阵来计算一个「预测向量」。如果这个预测向量与可能的父节点输出存在一个大的标量积,则存在自上而下的反馈,使得该父节点的耦合系数上升,其他父节点的耦合系数下降。这增加了capsule对该父节点的贡献,进而提高了capsule预测和该父节点输出的的标量积。这种「路由协议」(routing-by-agreement)应该比由最大池化实现的原始形式的路由效果好得多,后者允许一层中的神经元忽视其他特征检测器,除了下一层的局部最活跃的特征检测器。我们证明我们的动态路由机制可以有效实现分割高度重叠的物体所需的「解释」(explainingaway)。卷积神经网络(CNN)使用学到的特征检测器副本(translatedreplicas),这使它们能够在图像中一个位置获得的优秀权重值知识转化到其它位置上。这已经被证明其在图像解释方面非常有帮助。尽管我们用向量输出capsules代替CNN中标量输出的特征检测器,用协议路由(routing-by-agreement)代替最大池化,但我们仍希望通过复制空间内学到的知识,所以我们令除了最后一层的capsules层级都为卷积层。和CNN一样,我们创建更高级别的capsule来覆盖图像的更大区域,但是与最大池化不同,我们无法抛弃区域内实体的确切位置信息。对于低级capsule而言,位置信息由活跃的capsule进行「位置编码」(place-coded)。随着层级的上升,越来越多的位置信息层级由capsule的输出向量中的实数值部分进行「率编码」(rate-coded)。从位置编码到率编码的转变和高级别capsule代表具备更多自由度的更复杂实体共同表明capsule的维度应该随着层级的上升而增长。2、Capsule如何计算输入和输出向量现在有很多可能的方式能实现Capsule的一般性概念。本论文的目的并不是探索整个可能的空间,而是简单地展示了一个非常直接与有效的实现方式,即动态路由选择(dynamicrouting)。我们希望Capsule输出向量的长度能表征实体(由Capsule表征)存在于当前输入的概率。因此我们能使用非线性「压缩」函数确保短向量的长度能够缩短到几乎等于零,而长向量的长度压缩到1的左邻域内。我们可以将它们放入判别式学习(discriminativelearning)以充分利用非线性的特性。其中v_j为Capsulej的输出向量,s_j为总输入向量。对于Capsule除了第一层的所有层级,Capsules_j的总输入为下面Capsule层级中所有「预测向量」的加权和,而预测向量u_hat可通过计算一个Capsule的u_i输出与下面层级的权重矩阵W_ij的乘积而得出:其中c_ij为耦合系数(couplingcoefficients),该系数由迭代的动态路由选择过程确定。Capsulei的耦合系数和上面层级所有的Capsule耦合系数和为1,并且由「routingsoftmax」决定,该softmax函数中的初始logitsb_ij为Capsulei应该和Capsulej耦合的对数先验概率:对数先验(logpriors)可以同时和其它权重有区别地进行学习。它们依赖于两个Capsule的位置与类型,但不依赖于当前的输入图像。初始化耦合系数可以通过测量前面层级中每一个Capsulej的当前输入v_j和Capsulei的预测间一致性(agreement),然后借助该测量的一致性迭代地精炼更新耦合系数。这个一致性(agreement)可以简单地设置为标量乘积。该一致性可以被视为对数似然度,并可加入初始logit中,b_ij在计算所有耦合系数更新值之前已经将Capsulei链接到更高级的Capsule中。在卷积Capsule层中,每一个Capsule单元都是一个卷积单元,因此每一个Capsule将输出一个向量组而不是单个输出向量。4、CapsNet架构图1展示了一个简单的CapsNet架构。该架构只有两个卷积层和一个全连接层。Conv1有256个9×9卷积核,步幅为1,带有ReLU激活。该层将像素强度(pixelintensity)转换成局部特征检测器的活动,然后作为输入传送至主capsule中。图1:一个简单的3层CapsNet。该模型的结果与深度卷积网络(如ChangandChen[2015])差不多。DigitCaps层中每个capsule的活动向量(activityvector)的长度代表出现的每个类别的样例,用于计算分类损失。W_ij是PrimaryCapsule中每个u_i之间的权重矩阵,i∈(1,32×6×6),v_j,j∈(1,10)。主Capsule是最低级别的多维实体,从逆向图(inversegraphics)的角度来看,激活主capsule对应的是逆转渲染过程(renderingprocess)。这和将多个实例化部分拼合起来组成一个熟悉的整体是一种非常不同的计算类型,而后者正是capsule的设计初衷。第二个层(PrimaryCapsules)是一个卷积capsule层,具有32个通道、卷积8Dcapsule(即每个主capsule包括8个卷积单元,每个卷积单元有一个9×9核,步幅为2)。每个主capsule输出接收到所有256×81Conv1单元的输出,它们的感受野与capsule的中心位置重叠。PrimaryCapsules一共有[32,6,6]capsule输出(每个输出都是一个8D向量),[6,6]网格中的每个capsule彼此共享权重。可以把PrimaryCapsules看作一个区块非线性(blocknon-linearity)为Eq.1的卷积层。最后的层(DigitCaps)的每个数字类别都有一个16Dcapsule,每个capsule接收来自下面一层所有capsule的输入。我们只在两个连续的capsule层之间执行路由选择(如PrimaryCapsules和DigitCaps)。Conv1的输出是1D的,无法对其空间进行定位。因此Conv1和PrimaryCapsules之间无法进行路由选择。所有路由选择logit(b_ij)都要被初始化为0。因此,最初capsule输出(u_i)以同样的概率(c_ij)被发送至所有父capsule(v_0...v_10)。我们在TensorFlow中进行实现(Abadietal.[2016]),使用Adam优化器及其TensorFlow默认参数,包括指数递减学习率,以最小化Eq.4中的边际损失。4.1重构损失作为正则化方法我们使用额外的重构损失(reconstructionloss)来促进数字capsule对输入数字的实例化参数进行编码。在训练期间,我们蒙住所有向量,除了正确的数字capsule的活动向量。然后,使用该活动向量来重构。数字capsule的输出被馈送至包含3个全连接层的解码器,该解码器对图2描述的像素强度进行建模。我们最小化逻辑单元(logisticunit)输出和像素强度之间的平方差的和。我们按0.0005的比例缩小重构损失,以使它不会主导训练过程中的边际损失。如图3所述,仅保留重要的细节,从CapsNet的16D输出进行重构是鲁棒的。5、MNIST上的Capsule图3:进行3次路由迭代的CapsNet在MNIST数据集上的测试重构样例。(l,p,r)分别代表标签、预测和重构目标。最右两列是两个失败的重构样例,它展示了模型如何混淆该图像中的5和3。其他列来自正确的分类,展示了模型如何挑剔细节,同时使噪声变得平滑。表1:CapsNet分类测试准确度。其中MNIST均值和标准差都是根据三个试验计算而出。我们发现capsule中的一个维度(所有16个维度中)几乎总是可以表征数字的宽度。而多个维度可以表征全局变化的组合,还有其它一些维度可以表征数字的局部变化。图4:维度扰动(dimensionperturbation)。每一行展示当DigitCaps表征的16个维度之一在区间[?0.25,0.25]中以0.0

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功