Geoffrey Hinton 一直在研究神经网络中他称之为“胶囊理论”的东西。它是什么?胶囊神经网络如何工作?
胶囊神经网络如何工作?
它似乎尚未发布;最好的在线可用幻灯片是本次演讲的这些幻灯片。(有几个人通过这个链接引用了一个较早的谈话,但遗憾的是它在写这个答案的时候被打破了。)
我的印象是,这是对神经网络内部子网创建的形式化和抽象化的尝试。也就是说,如果你看一个标准的神经网络,层是完全连接的(也就是说,第 1 层中的每个神经元都可以访问第 0 层中的每个神经元,并且本身可以被第 2 层中的每个神经元访问)。但这显然没有用;比如说,一个人可能有n 个并行的层堆栈(“胶囊”),每个层都专门处理一些单独的任务(它本身可能需要不止一层才能成功完成)。
如果我正确地想象它的结果,这个更复杂的图形拓扑似乎可以轻松提高结果网络的有效性和可解释性。
补充前面的答案:有一篇论文主要是关于从原始数据中学习低级胶囊,但在其介绍部分解释了 Hinton 的胶囊概念:http ://www.cs.toronto.edu/~弗里茨/absps/transauto6.pdf
还值得注意的是,上面答案中指向麻省理工学院演讲的链接似乎再次起作用。
根据 Hinton 的说法,“胶囊”是一层内神经元的子集,它输出指示实体是否存在于有限域内的“实例化参数”和指定实体相对于的姿势的“姿势参数”向量。一个规范的版本。
低层胶囊输出的参数被转换成对高层胶囊表示的实体的姿态的预测,如果预测一致,则激活它们并输出它们自己的参数(高层姿态参数是接收到的预测的平均值) )。
Hinton 推测,这种高维巧合检测正是大脑中的微型柱状组织的用途。他的主要目标似乎是取代卷积网络中使用的最大池化,其中更深层会丢失有关姿势的信息。
胶囊网络试图模仿 Hinton 在机器上对人脑的观察。动机源于这样一个事实,即神经网络需要更好地建模零件的空间关系。胶囊网络不是对共存进行建模,而是忽略相对定位,而是尝试对不同子部分沿层次结构的全局相对变换进行建模。正如其他人在上面解释的那样,这是等方差与不变性的权衡。
因此,这些网络在某种程度上包括视点/方向意识,并对不同的方向做出不同的反应。该属性使它们更具辨别力,同时潜在地引入了执行姿势估计的能力,因为潜在空间特征包含可解释的姿势特定细节。
所有这些都是通过在层中包含一个称为胶囊的嵌套层来完成的,而不是在网络中连接另一个层。这些胶囊可以提供向量输出,而不是每个节点的标量输出。
这篇论文的关键贡献是动态路由,它用智能策略取代了标准的最大池。该算法在胶囊输出上应用均值偏移聚类,以确保输出仅发送到上层中适当的父级。
作者还将这些贡献与边际损失和重建损失相结合,这同时有助于更好地学习任务并在 MNIST 上展示最先进的结果。
最近的论文名为Dynamic Routing Between Capsules ,可在 Arxiv 上找到:https ://arxiv.org/pdf/1710.09829.pdf 。
卷积神经网络的主要优点之一是它们对平移的不变性。但是,这种不变性是有代价的,即它没有考虑不同的特征之间是如何相互关联的。例如,如果我们有一张人脸的图片,CNN 将难以区分“嘴”特征和“鼻子”特征之间的关系。最大池化层是造成这种效果的主要原因,因为当我们使用最大池化层时,我们会丢失嘴巴和鼻子的精确位置,并且无法说出它们之间的关系。
Capsules 试图保持 CNN 的优势,并通过两种方式解决这个缺点
- 不变性:引用本文
当胶囊正常工作时,视觉实体存在的概率是局部不变的——它不会随着实体在胶囊覆盖的有限域内的多种可能外观上移动而改变。
换句话说,胶囊考虑了我们正在寻找的特定特征的存在,比如嘴巴或鼻子。此属性确保胶囊与 CNN 一样具有平移不变性。
- Equivariance:而不是使特征平移不变性,capsule 将使其平移等变或视点等变。换句话说,随着特征在图像中移动并改变它的位置,特征向量表示也会以相同的方式改变,这使得它是等变的。胶囊的这一特性试图解决我在开头提到的最大池化层的缺点。