Capsule Networks (CapsNet)
探索胶囊网络(Capsule Networks / CapsNets)以及它们如何解决 CNN 的局限性。了解动态路由、空间层次结构,并将 CapsNet 与 YOLO26 进行对比。
胶囊网络(通常简称为 CapsNet)代表了深度学习领域的一种先进架构,旨在克服传统神经网络中存在的特定局限性。CapsNet 由 Geoffrey Hinton 及其团队提出,试图比标准模型更紧密地模拟人类大脑的生物神经组织。与典型的 卷积神经网络 (CNN) 不同(后者擅长检测特征,但往往会因下采样而丢失空间关系),胶囊网络将神经元组织成称为“胶囊”的组。这些胶囊不仅编码对象存在的概率,还编码其特定属性(如方向、大小和纹理),从而有效地保留了视觉数据中的分层空间关系。
Link to this section传统 CNN 的局限性#
要理解 CapsNet 的创新之处,了解标准计算机视觉模型的工作方式很有帮助。传统的 CNN 使用 特征提取 层,然后是池化层(特别是 最大池化),以减少计算负载并实现平移不变性。这意味着 CNN 无论在图像中的哪个位置,都能识别出“猫”。
然而,这个过程往往会丢弃精确的定位数据,导致“毕加索问题”:CNN 可能会正确地分类人脸,即使嘴巴在额头上,仅仅因为所有必要的特征都存在。CapsNet 通过移除池化层并用尊重对象 空间层次结构 的过程替换它们来解决这个问题。
Link to this section胶囊网络如何工作#
这种架构的核心构建块是胶囊,这是一组嵌套的神经元,输出向量而不是标量值。在 向量数学 中,向量既有大小也有方向。在 CapsNet 中:
- 大小(长度): 表示特定实体存在于当前输入中的概率。
- 方向(方位): 编码实例化参数,例如对象的 姿态估计、比例和旋转。
较低层中的胶囊(检测边缘等简单形状)预测较高层中胶囊(检测眼睛或轮胎等复杂对象)的输出。这种通信由一种称为“动态路由”或“一致性路由”的算法管理。如果低层胶囊的预测与高层胶囊的状态一致,它们之间的连接就会加强。这使得网络能够从不同的 3D 视角识别对象,而无需通常用于教 CNN 旋转和比例知识所需的大规模 数据增强。
Link to this section主要区别:CapsNet 与 CNN#
虽然这两种架构都是 计算机视觉 (CV) 的基础,但它们在处理和表示视觉数据的方式上有所不同:
- 标量与向量: CNN 神经元使用标量输出表示特征存在。CapsNet 使用向量来编码存在(长度)和姿态参数(方向)。
- 路由与池化: CNN 使用池化对数据进行下采样,往往会丢失位置细节。CapsNet 使用动态路由来保留空间数据,使其在需要精确 对象跟踪 的任务中非常有效。
- 数据效率: 由于胶囊隐含地理解 3D 视角和 仿射变换,它们通常可以比 CNN 从更少的 训练数据 中进行泛化,而 CNN 可能需要大量示例来学习对象的每一种可能的旋转。
Link to this section实际应用#
虽然 CapsNet 在计算上通常比像 YOLO26 这样经过优化的模型更昂贵,但它们在专业领域提供了明显的优势:
-
医学图像分析: 在医疗保健领域,异常的精确方向和形状至关重要。研究人员已将 CapsNet 应用于 脑肿瘤分割,在该领域中,模型必须基于标准 CNN 可能平滑掉的细微空间层次结构来区分肿瘤和周围组织。你可以探索关于 医学成像中的胶囊网络 的相关研究。
-
重叠数字识别: CapsNet 在 MNIST 数据集 上取得了最先进的结果,特别是在数字重叠的情况下。由于网络跟踪每个数字的“姿态”,它可以将两个重叠的数字(例如,在“5”之上的“3”)解开为不同的对象,而不是将它们合并为一个单一的、混淆的特征图。
Link to this section实际背景与实现#
胶囊网络主要是一种分类架构。虽然它们提供了理论上的稳健性,但现代工业应用通常更倾向于使用高速 CNN 或 Transformer 来实现实时性能。不过,了解用于 CapsNet 的分类基准(如 MNIST)很有用。
The following example demonstrates how to train a modern YOLO classification model on the MNIST dataset using the ultralytics package. This parallels the primary benchmark task used to validate Capsule Networks.
from ultralytics import YOLO
# Load a YOLO26 classification model (optimized for speed and accuracy)
model = YOLO("yolo26n-cls.pt")
# Train the model on the MNIST dataset
# This dataset helps evaluate how well a model learns handwritten digit features
results = model.train(data="mnist", epochs=5, imgsz=32)
# Run inference on a sample image
# The model predicts the digit class (0-9)
predict = model("https://docs.ultralytics.com/datasets/classify/mnist/")Link to this section胶囊与视觉 AI 的未来#
胶囊网络背后的原则继续影响着 AI 安全 和可解释性研究。通过显式地建模部分与整体的关系,胶囊为深度神经网络的“黑箱”本质提供了一种“玻璃箱”替代方案,使决策更具可解释性。未来的发展旨在将胶囊的空间稳健性与 YOLO11 或更新的 YOLO26 等架构的推理速度相结合,以提高 3D 对象检测 和机器人技术中的性能。研究人员也在探索 带有 EM 路由的矩阵胶囊,以进一步降低一致性算法的计算成本。
对于希望高效管理数据集和训练模型的开发者,Ultralytics Platform 提供了一个统一的环境来标注数据、在云端训练并部署模型,这些模型在 CNN 的速度与复杂视觉任务所需的精度之间取得了平衡。






