首页 > 技术文章 > CNN与Capsule Network的对比

erice-he 2019-11-03 18:25 原文

CNN的不足

  1. 卷积神经网络要在大量的图像上进行训练(或者它们重复使用了神经网络的一部分)
  2. 卷积神经网络不能很好地处理模糊性
  3. 卷积神经网络在池化层中丢失了大量信息,降低了空间分辨率,当输入发生微小的变化,输出基本不变,这是一个在整个网络中必须保留详细信息的问题。如今,这个问题通过围绕CNNs构建复杂的体系结构来解决,来恢复一些丢失的信息
  4. CNN 对物体之间的空间关系 (spatial relationship) 的识别能力不强
  5. CNN 对物体旋转之后的识别能力不强 (微微旋转还可以)
    在这里插入图片描述
  6. 卷积神经网络需要额外的组件来自动识别部件属于哪个目标(例如,这条腿属于这只羊)

CapsE的优势

  1. 胶囊网络可以很好地推广使用更少的训练数据
  2. 胶囊网络可以很好地处理模糊性,在拥挤的场景中处理的很好
  3. 胶囊网络,详细的姿态信息(如精确的目标位置、旋转、厚度、倾斜、大小等)将在整个网络中被保存,而不是丢失了之后再恢复,输入的小变化导致输出的小变化——信息被保存,这就是所谓的“等变化(equivariance)”。因此,胶囊网络可以在不同的视觉任务中使用相同简单一致的架构
  4. 胶囊网络为你免费提供部件层次

CapsE的不足

  1. 在大型图像(如CIFAR10或ImageNet)上的性能不如卷积神经网络
  2. 它们的计算量非常大
  3. 当两个检测目标离得很近的时候,胶囊网络无法检测到同一类型的两个物体(这被称为“拥挤问题”,而且已经证明人类也存在这种问题)

但是关键的想法是非常好的,胶囊网络只需要做一些调整就能充分发挥它们的潜力。毕竟,现在的卷积神经网络是在1998年被发明出来的,但它们经过几次调整之后才在2012年的ImageNet上,超越了目前的技术水平。

胶囊网络

胶囊网络是由胶囊组成的,而不是神经元。胶囊是一组神经元,它会学习检测给定区域(例如一个矩形)图像的特定目标,它输出一个向量(例如一个八维向量),向量的长度代表目标存在的概率估计,而且它对姿态参数(例如精确的位置,旋转,等等)定向编码(例如8D空间)。如果对象有轻微的变化(例如移位、旋转、改变大小等),那么胶囊将输出相同长度但方向略有不同的向量,因此,胶囊是等变化的

就像常规的神经网络,胶囊网络在多个层中构建(见图4)。胶囊在最低层被称为基本胶囊:每个胶囊把接收的一个小区域的图像作为输入(称为感受野),它试图检测一个特定部分的姿势和存在,例如一个矩形。更高层的胶囊被称为路由胶囊,能检测到更大更复杂的物体,如船只。
一个两层的胶囊网络。在这个例子中,基本胶囊层有两个5×5胶囊的映射,而第二胶囊层有两个3×3胶囊的映射。每个胶囊输出一个向量。每个箭头表示不同胶囊的输出。蓝色箭头表示胶囊检测三角形的输出,黑色箭头表示检测矩形的输出,以此类推。
基本胶囊层使用一些常规的卷积层实现。例如,在本文中,它们使用两个输出256个包含标量的6x6特征映射的卷积层。它们重塑这个输出,得到32个包含8维向量的6x6映射。最后,使用一个新的压缩函数来确保这些向量的长度在0到1之间(表示概率),得到基本胶囊的输出。

下一层的胶囊工作原理非常不同,它们使用了一种名为“路由协议”(routing by agreement)的算法来试图检测物体及其姿态,这就是胶囊网络的神奇所在,举个例子。

假设有两种基本胶囊:一种是长方形胶囊,一种是三角形胶囊,假设它们都发现了要检索的东西,矩形和三角形都可以是房子或船的一部分(见图5)。给定矩形的姿态,它会稍微向右旋转,房子和船也会稍微向右旋转。考虑到三角形的位置,房子几乎是上下颠倒的,而船会稍微向右旋转。注意,形状和整个/部分关系都是在训练中学习的。矩形和三角形在船的姿势上是一致的,而在房子的姿势上是完全不同的。所以很可能矩形和三角形是同一条船的一部分,而不是房子。
根据路由协议,步骤1根据目标部件的存在和位置预测目标的存在和位置,然后查找预测之间的一致。
因为我们确信矩形和三角形是船的一部分,所以将输出的矩形和三角形胶囊发送给更多的船胶囊,船胶囊将获得更多有用的输入信号,房子胶囊将接收到很少的信号。对于每次连接,路由协议算法维护一个路由权值(参见图6),当结果一致时协议时路由权值增加,不一致时路由权值减少。
路由协议,步骤2更新路由权值
路由协议算法涉及到协议检测+路由更新的几个迭代(注意,这种情况发生在每个预测中,而不仅仅是一次,也不仅仅是在训练时),在拥挤的场面特别适用:例如,在图7中,现场是模糊的,因为你可以看到一个倒立的房子在中间,但如果这样,底部矩形和三角形就无法解释了,所以路由协议算法将最有可能收敛到一个更好的解释:一只船在底部,顶部是一栋房子。这种模糊性被称为“被解释掉”,较低的矩形最好的解释是船,这也解释了较低的三角形,一旦这两个部分被解释掉,剩下的部分很容易被解释为房子。
路由协议可以解析拥挤的场景,比如这张模糊的图片,它可能被误解为倒立的房子加上一些无法解释的部分。相反,较低的矩形将被解释为船的一部分,这也将把较低的三角形和船联系上。一旦船被“解释走了”,就很容易将顶部理解为房子
这就是网络胶囊的关键原理!

推荐阅读