<论文>什么是胶囊神经网络?

一、摘要

本文介绍2017年的论文《Dynamic Routing Between Capsules》,论文介绍了胶囊之间的动态路由机制,至此胶囊神经网络才算是完整地被提出来(此前几年Hinton老爷子有给出过概念,但是没有给出官方的实现)。

译文:

胶囊是一组神经元,其活动向量表示特定类型实体(如物体或物体部分)的实例化参数。我们使用活动向量的长度来表示实体存在的概率,并使用其方向来表示实例化参数。一个层级的活跃胶囊通过变换矩阵对更高层级胶囊的实例化参数进行预测。当多个预测一致时,更高层级的胶囊变得活跃。我们展示了一种经过判别性训练的多层胶囊系统在MNIST数据集上达到了最先进的性能,并且在识别高度重叠的数字方面明显优于卷积神经网络。为了实现这些结果,我们使用了一种迭代的通过一致性路由的机制:低层级胶囊倾向于将其输出发送到那些活动向量与来自低层级胶囊的预测有较大标量积的高层级胶囊。

二、核心创新点

胶囊网络最初被Hinton老爷子提出来是用于解决CNN的缺陷的。我们拿一张网上广为流传的示例图来解释胶囊网络相对于CNN的改进之处。对于下面这张图,CNN则会认为它是一张人脸的图像,而胶囊网络则可以辨别出来这不是正常的人脸。

要学习胶囊网络,我们还需要简要了解下基本概念。胶囊(Capsule)是胶囊神经网络中的基本单元 ,它由一组神经元组成,用于表示特定类型的实体及其属性。每个胶囊不仅输出实体存在的概率,还可以表示实体的姿态参数(如位置、方向、大小等)。对比常规的神经网络,常规神经网络的基本单元是神经元,其输出是一个标量值,而胶囊的输出是一个向量,这使得胶囊能够捕捉更丰富的特征信息。通过引入胶囊和动态路由机制,胶囊网络改进了卷积神经网络在特征表示和特征关系捕捉方面的局限性,从而能够更好地处理物体的变形和旋转。

1、胶囊的输入输出和动态路由机制

对于胶囊的输入和输出,作者使用胶囊的输出向量长度来表示当前胶囊所代表的实体存在于当前输入中的概率。看起来很绕,通俗来说就是如果一个胶囊对应的特征在输入中有出现,那么它对应的输出向量长度就应该比没出现的胶囊输出向量要长。因此,作者使用了一个非线性的squash函数,这个函数确保短向量的长度被压缩到接近0,二长向量的长度则压缩到略小于1的取值。这个思路通过使用判别式学习来实现:

其中,是胶囊j的输出向量,而是其总输入。对于第一层胶囊之外的其余胶囊,总输入就是所有来自下一层的胶囊的预测向量加权和,这个预测向量则是使用一个权重矩阵与下一层胶囊的输出相乘得到。

其中,是耦合系数,由动态路由迭代确定。胶囊i与上一层中的所有胶囊之间的耦合系数总和为1。并且,耦合系数由"routing softmax"函数来决定,该函数的初始logits(记为)则由胶囊i和胶囊j之间的对数先验耦合概率来确定。

对于动态路由机制,作者也给出了对应的算法流程。

2、损失函数

论文使用实例化向量的长度来表示胶囊实体存在的概率,当且仅当图像中存在数字类k时(论文案例是图像数字识别任务),作者希望数字类k的top-level胶囊具有较长的实例化向量。为了允许多个数字的情况,作者为每个digit胶囊使用单独的边界损失(margin loss)

其中,当数字类别k存在时,等于1,另外是0.9,则是0.1。对于不存在的数字类别,λ则可以防止初始学习过程缩小所有digit胶囊的活动向量长度,λ取值设定为0.5。

相关推荐
聆风吟º几秒前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee2 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
你撅嘴真丑3 小时前
第九章-数字三角形
算法
聆风吟º3 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys3 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56783 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子3 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
ValhallaCoder3 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
董董灿是个攻城狮3 小时前
AI 视觉连载1:像素
算法
智驱力人工智能4 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算