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

一、摘要

本文介绍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。

相关推荐
hn小菜鸡7 分钟前
LeetCode 3643.垂直翻转子矩阵
算法·leetcode·矩阵
救救孩子把30 分钟前
3-机器学习与大模型开发数学教程-第0章 预备知识-0-3 函数初步(多项式、指数、对数、三角函数、反函数)
人工智能·数学·机器学习
CareyWYR30 分钟前
每周AI论文速递(250908-250912)
人工智能
张晓~1833994812131 分钟前
短视频矩阵源码-视频剪辑+AI智能体开发接入技术分享
c语言·c++·人工智能·矩阵·c#·php·音视频
deephub1 小时前
量子机器学习入门:三种数据编码方法对比与应用
人工智能·机器学习·量子计算·数据编码·量子机器学习
ゞ 正在缓冲99%…1 小时前
leetcode101.对称二叉树
算法
AI 嗯啦1 小时前
计算机视觉----opencv实战----指纹识别的案例
人工智能·opencv·计算机视觉
max5006001 小时前
基于多元线性回归、随机森林与神经网络的农作物元素含量预测及SHAP贡献量分析
人工智能·python·深度学习·神经网络·随机森林·线性回归·transformer
trsoliu1 小时前
前端基于 TypeScript 使用 Mastra 来开发一个 AI 应用 / AI 代理(Agent)
前端·人工智能
YuTaoShao2 小时前
【LeetCode 每日一题】3000. 对角线最长的矩形的面积
算法·leetcode·职场和发展