Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Capsule Networks (CapsNet)

胶囊网络(CapsNets)将每个部分编码为一个向量,向量长度表示其概率,方向表示其姿态,并通过动态路由连接各部分。

胶囊网络(CapsNets)是由胶囊构成的神经网络;胶囊是由一小组神经元组成的单元,其输出是一个向量,而非单个数值。胶囊向量的长度表示某个实体(例如数字、眼睛或车轮)存在的概率,其方向则编码该实体的实例化参数:位置、大小、方向、笔画粗细,以及姿态和形变的其他属性。Geoffrey Hinton、Alex Krizhevsky 和 Sida Wang 在 2011 年一篇关于变换自编码器的论文中提出了胶囊;随后,Sara Sabour、Nicholas Frosst 和 Hinton 在 胶囊间的动态路由中将胶囊实现为一个可用的分类器。该论文发表于 NIPS 2017,提出使用名为“一致性路由”的迭代算法连接相邻层中的胶囊。

胶囊为何取代最大池化#

卷积神经网络(CNN)使用标量激活检测特征,并经常通过最大池化缩小特征图:保留每个窗口中的最强响应,却丢弃该响应在窗口中的位置。这样做能让检测对小幅位移不敏感,但只检查部件是否存在的网络可能会接受嘴巴长在眼睛上方的人脸,这就是所谓的毕加索问题。Hinton 主张使用等变性而非不变性:物体移动或旋转时,胶囊的向量也应随之旋转,而其长度(物体存在的概率)则保持不变。以这种方式学习视角的胶囊无需像 CNN 那样依赖大量数据增强,也能识别来自新角度的物体。

Ultralytics YOLO26无需胶囊也能保留物体位置:五个步幅为 2 的卷积层会将输入分辨率降至 1/32;其唯一的最大池化模块 SPPF 使用步幅 1 和 5 x 5 窗口连续池化三次,从而扩大感受野,同时不缩小检测头进行预测的网格。

动态路由的工作原理#

较低层中的每个胶囊都会将自己的输出乘以一个学习得到的权重矩阵,从而预测上一层每个胶囊的输出。路由过程随后决定每个子胶囊的输出有多少传递给各个父胶囊。对初始值为零的路由 logits 进行 softmax 运算,就能得到耦合系数,将每个子胶囊的输出分配到各个父胶囊。每个父胶囊会将预测值按这些系数加权求和,再应用 squash 函数;该函数保留向量方向,并将向量长度映射到 0 到 1 之间。每个预测值与父胶囊新输出的点积会加到 logit 上,因此子胶囊会将更多输出发送给其状态与预测相符的父胶囊:

import torch

torch.manual_seed(0)

# 6 个子胶囊各自为 2 个父胶囊预测一个 8D 姿态
predictions = 0.2 * torch.randn(6, 2, 8)
pose = 0.5 * torch.randn(8)
predictions[:4, 0] = pose + 0.05 * torch.randn(4, 8)  # 子胶囊 0 至 3 与父胶囊 0 一致

logits = torch.zeros(6, 2)
for _ in range(3):  # 一致性路由,按论文所述迭代 3 次
    coupling = logits.softmax(dim=1)  # 每个子胶囊将自己的投票分配给父胶囊
    s = (coupling.unsqueeze(-1) * predictions).sum(dim=0)
    squared = s.square().sum(dim=-1, keepdim=True)
    parents = squared / (1 + squared) * s / squared.sqrt()  # squash:长度位于 [0, 1) 范围内
    logits = logits + (predictions * parents).sum(dim=-1)  # 一致性会提高 logit

print(coupling[:, 0].round(decimals=2))
print(parents.norm(dim=-1).round(decimals=2))

输出为 tensor([0.9700, 0.9700, 0.9700, 0.9700, 0.5700, 0.4700]) 和 tensor([0.9800, 0.1500])。经过三次迭代后,四个意见一致的子胶囊会将 97% 的输出发送给父胶囊 0;另外两个子胶囊仍接近平均分配。父胶囊 0 的向量长度达到 0.98,而只收到零散投票的父胶囊 1 则保持在 0.15。路由机制与Transformer中的注意力机制类似,但方向相反:softmax 在子胶囊可连接的父胶囊之间运算,因此父胶囊会竞争每个子胶囊的输出。

2017 年的 CapsNet 及其结果#

原始网络较浅:一个包含 256 个 9 x 9 卷积核的卷积层连接到 PrimaryCaps;这是一个卷积胶囊层,会将 28 x 28 的数字图像转换成 32 x 6 x 6 = 1,152 个八维胶囊;随后,路由将这些胶囊连接到 DigitCaps,其中每个类别对应一个 16 维胶囊。训练时,模型会结合基于胶囊长度的间隔损失函数:存在的数字对应的长度需超过 0.9,其余数字需低于 0.1;同时,解码器会根据正确数字的胶囊重建图像,并加入一个缩小至 0.0005 倍的正则化项,类似自编码器。扰动 16 个维度中的一个并解码结果,就能改变缩放、笔画粗细、倾斜或宽度等单一属性,因此与 CNN 激活相比,胶囊输出更容易检查;这一目标也与可解释 AI相同。

CapsNet 有 820 万个参数,基线 CNN 有 3,540 万个参数;前者在 MNIST 上的测试误差率为 0.25%,基线模型为 0.39%;在 MultiMNIST 上分别为 5.2% 和 8.1%。MultiMNIST 中的数字对平均有 80% 的边界框重叠。模型仅使用位移最多 2 像素的 MNIST 数字进行训练,在 affNIST(同一组数字经过随机仿射变换)上得分为 79%;参数量相近的 CNN 得分为 66%。在 CIFAR-10 上,七个 CapsNet 组成的集成误差率为 10.6%,与 CNN 首次应用于该数据集时的表现大致相当;作者将差距归因于胶囊试图处理杂乱的背景。

局限性与后续胶囊模型#

路由会针对每一对子胶囊和父胶囊进行多次迭代,因此计算量和内存占用会随图像尺寸和类别数量迅速增长;胶囊网络在 ImageNet 等大型图像分类基准上的表现始终未能赶上 CNN 或视觉 Transformer。研究人员也将胶囊网络应用于医学图像分析,例如根据 MRI 扫描对脑肿瘤类型进行分类;这类任务的训练集规模较小。

Hinton、Sabour 和 Frosst 在 ICLR 2018 发表的使用 EM 路由的矩阵胶囊,用 4 x 4 姿态矩阵取代姿态向量,并通过期望最大化进行路由;在 smallNORB 基准上,该模型针对从多个视角拍摄的玩具物体进行分类,相比之前的最先进方法将测试错误降低了 45%,并且比基线 CNN 更能抵御白盒对抗攻击。2019 年,研究人员进一步提出堆叠式胶囊自编码器,无需标签即可学习胶囊。Hinton 于 2021 年提出的 GLOM 方案,则将相同的部分—整体层级结构表示为彼此一致的嵌入向量岛,完全不使用动态路由。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来