近日,Geoffrey Hinton 那篇备受关注的 capsule 论文终于公开了,这是 Hinton 对未来人工智能形态的新探索,得到了人工智能领域的广泛关注。而现在基于 Capsule 的新研究成果也已经出现。这里介绍的就是一篇正处于双盲评审阶段的关于 Capsule 的 ICLR 2018 论文(目前论文作者未知)。机器之心对该论文进行了摘要介绍,论文全文请访问以下链接。
论文地址:https://openreview.net/pdf?id=HJWLfGWRb
论文:使用 EM 路由的矩阵 capsule(MATRIX CAPSULES WITH EM ROUTING)
capsule 是一组神经元,其输出可表征同一个实体的不同性质。我们描述了一种 capsule 版本,其中每个 capsule 都有一个 logistic 单元(用来表示一个实体的存在)和一个 4×4 的姿态矩阵(pose matrix)(可以学习表征该实体与观看者之间的关系)。某一层的 capsule 会为上一层中许多不同 capsule 构成的姿态矩阵投票(vote),这是通过将它自己的姿态矩阵与视角不变的变换矩阵(viewpoint-invariant transformation matrix)相乘而实现的,可以学习表征「部分-整体」关系。这些投票中的每一个都会根据分配的系数加权。这些系数使用 EM 算法迭代式地更新,这样每一个 capsule 的输出都会被路由到上一层的一个 capsule,它会收到一组相似投票的集群。这整个系统是通过每个相邻层对之间的 EM 的展开的 3 次迭代而鉴别式地训练的。在 smallNORB 基准上,相比于当前最佳的方法,capsule 将测试错误的数量降低了 45%。比起我们的基准卷积神经网络,capsule 也表现得更能抵抗白盒对抗攻击(white box adversarial attack)。
Hinton et al. (2011) 在一个变换自编码器中使用了一个变换矩阵,它可以将立体图像对变换成来自稍微不同视角的立体对。但是,这种系统需要由外部提供变换矩阵。最近,按一致性路由(routing-by-agreement)在分割高度重叠的数字上得到了非常好的效果(Sabour et al. (2017)),但这个系统还有一些不足之处,而我们的研究成果已经解决了这些问题:
1. 它使用了姿态向量(pose vector)的长度来表示由一个 capsule 所表示的实体存在的概率。为了让该长度小于 1,需要一种无原则的非线性(unprincipled non-linearity),这可以防止其成为任何可感知的目标函数,它由迭代式的路由过程(routing procedure)最小化。
2. 它使用了两个姿态向量之间的角的余弦来测量它们之间的一致性。和高斯聚类的对数方差不一样,余弦并不非常适用于区分相当好的一致性与非常好的一致性。
3. 它使用了长度为 n 的向量,而不是有 n 个元素的矩阵来表示一个姿态,所以其变换矩阵具有 n^2 个参数,而不只是 n 个。
capsule 模型
我们模型的一般架构如图 1 所示。模型开始时有一个带有 32 个通道(A=32)的 5×5 卷积层,其步幅(stride)为 2,且带有 ReLU 非线性激活函数。所有其它层都是 capsule 层,是从主 capsule 层开始的。每一个 capsule 都有一个 4×4 的姿态矩阵和一个 logistic 激活单元。B=32 种主 capsule 类型中每一个的 4×4 姿态都是以该位置为中心的所有更低层 ReLU 的输出的线性变换。主 capsule 的激活是通过在更低层 ReLU 的同一个集合的加权和上应用 sigmoid 函数而得到的。
主 capsule 之后跟着两个 3×3 卷积 capsule 层(K=3),其中每一层都带有 32 种 capsule 类型(C=D=32),步幅分别为 2 和 1。卷积 capsule 的最后一层连接到最后的 capsule 层,该层的每一个输出类别都有一个 capsule。
图 1:带有一个 ReLU 卷积层,后面跟着一个主卷积 capsule 层和两个其它卷积 capsule 层。
当将最后的卷积 capsule 层连接到最后一层时,我们不想扔掉任何有关该卷积 capsule 的位置的信息,但我们也想利用这个事实:所有同一类型的 capsule 都在不同的位置提取同一个实体。因此我们在同一 capsule 类型的不同位置之间共享变换矩阵,并且会将每个 capsule 的感受野的中心的扩展坐标(行、列)添加到其投票的前两个元素。我们将这种技术称为 Coordinate Addition。这应该可以鼓励共享的最终变换为这两个元素提供价值,它们能表示该实体相对于该 capsule 的感受野的中心的精细位置(fine position)。
路由过程用在每个相邻的 capsule 层对之间。对于卷积 capsule,在 L+1 层中的每个 capsule 都会只向 L 层中的感受野中的 capsule 发送反馈。因此,在 L 层中的每个卷积实例都最多从 L+1 层中的每个 capsule 类型接收 kernel_size×kernel_size 个反馈。接近图像边界的实例接收更少的反馈,而图像边角处的实例仅从从 L+1 层中的每个 capsule 类型接收 1 个反馈。
路由算法(routing algorithm)会根据 L 层中的 capsule 的激活和投票返回 L+1 层中 capsule 的激活和姿态。V_ich 是从 capsule i(在 L 层带有激活 a_i)到 L+1 层中 capsule c 的 H 维投票。β_a、β_v 是鉴别式的学习到的,反向温度(inverse temperature)λ 按每个固定调度的迭代增加。
图 2:在每次路由迭代后,5 个最终 capsule 中每一个到它们平均投票的距离的直方图。每个距离点都有其分配的概率的加权。所有三张图像都是从 smallNORB 测试集选择的。在卡车和人类样本中,这个路由过程正确地选择了这些投票的路径。飞机样本是该模型的一个罕见的失败案例,该模型在第三个路由迭代中将飞机和汽车混淆了。这个直方图被放大了,只显示了距离小于 0.05 的投票。
实验
表 1:我们的 capsule 模型在 smallNORB 上改变不同分量的效果。
表 2:当基准 CNN 与 capsule 模型在相似视角下的误差率相当时,该基准 CNN 与 capsule 模型在全新视角下的 smallNORB 测试误差率比较。