Ultralytics YOLO27:
返回 Ultralytics 术语表

Memory Bank

了解深度学习中的记忆库。探索记忆库如何存储嵌入,用于对比学习、目标跟踪和视频理解。

记忆库是一种用于机器学习算法的数据结构,用于存储和引用过去迭代或已处理样本中的信息,从而有效地将模型的记忆容量与其即时计算限制解耦。在深度学习(DL)中,记忆库通常用作嵌入或特征向量的存储库。这样,模型就可以将当前输入与大量历史输入进行比较,而无需同时重新处理所有数据或将其全部保存在活动的随机存取存储器(RAM)中。通过维护表示缓冲区,模型可以从更广泛的上下文中学习,从而提升需要长期一致性或与大型数据集进行比较的任务的性能。

记忆库的工作机制#

记忆库的主要功能是将可用信息扩展到当前批量大小之外。在训练期间,数据流经神经网络,生成的特征表示会被推入记忆库。如果记忆库达到最大容量,通常会移除最早的特征,为新特征腾出空间,这一过程称为先进先出(FIFO)队列。

这一机制尤为重要,因为GPU内存是有限的。如果没有记忆库,将单张图像与另外一百万张图像进行比较,就需要使用无法在标准硬件上容纳的批量大小。有了记忆库,模型可以存储这百万张图像的轻量级向量,并使用相似度搜索技术(例如点积或余弦相似度)高效地引用这些向量。

实际应用#

记忆库已成为多个高级计算机视觉(CV)和自然语言工作流的核心:

  • 对比学习(自监督学习): 最著名的应用之一是对比学习,尤其是在动量对比(MoCo)等算法中。在这里,目标是教会模型将特定图像与许多“负”样本(不同图像)区分开来。记忆库存储数千个负样本表示,使模型无需带标签的训练数据即可学习稳健的特征。对于详细的技术内容,研究人员通常会参考推广了这一方法的MoCo 论文
  • 长期目标跟踪: 在视频分析中,某个目标(如汽车或人)可能会暂时被障碍物遮挡。标准跟踪器可能会在这次遮挡期间丢失目标的身份(ID)。高级跟踪器会使用记忆库存储过去检测到的目标的视觉特征。当目标重新出现时,系统会查询记忆库,以重新确定正确的 ID。使用Ultralytics YOLO26进行目标跟踪的用户可以受益于类似的内部逻辑,该逻辑能够保持跨帧的身份一致性。
  • 视频理解: 要识别持续数秒或数分钟的动作,模型需要时间上下文。记忆库充当过去帧或视频片段的缓冲区,使网络在处理视频结尾时能够“记住”视频开头发生的事情。这对于准确的动作识别至关重要。

区分相关概念#

将记忆库与术语表中的其他存储和处理概念区分开来会很有帮助:

  • 记忆库与向量数据库的区别: 两者都存储用于检索的嵌入。不过,记忆库通常是在单个模型会话的训练主动推理期间动态使用的临时内存结构。向量数据库(例如RAG中使用的数据库)则是持久、可扩展的存储解决方案,旨在无限期保存数据并服务于多个应用。
  • 记忆库与上下文窗口的区别: 上下文窗口(在 Transformer 中很常见)定义了模型一次处理的最大输入序列长度(例如 32k 个令牌)。记忆库是一个外部缓冲区,用于在活动处理窗口之外存储压缩表示,理论上可以实现无限的记忆深度,这一点在Transformer-XL等架构中有所体现。
  • 记忆库与批量大小的区别: 批量大小决定了为进行梯度更新而并行处理的样本数量。记忆库可以增加模型用于比较的有效样本数量,而无需增加前向传播和反向传播的计算成本。

代码示例:模拟特征库#

以下Python代码片段使用 torch 演示了先进先出(FIFO)记忆库的概念。这种结构常用于在自定义训练循环或复杂推理任务期间维护特征向量的滚动历史记录。

import torch

# Initialize a memory bank (Capacity: 100 features, Vector Dim: 128)
# In a real scenario, these would be embeddings from a model like YOLO26
memory_bank = torch.randn(100, 128)

# Simulate receiving a new batch of features (e.g., from the current image batch)
new_features = torch.randn(10, 128)

# Update the bank: Enqueue new features, Dequeue the oldest ones
# This maintains a fixed size while keeping the memory 'fresh'
memory_bank = torch.cat([memory_bank[10:], new_features], dim=0)

print(f"Updated Memory Bank Shape: {memory_bank.shape}")
# Output: Updated Memory Bank Shape: torch.Size([100, 128])

挑战与注意事项#

记忆库虽然功能强大,但也带来了“表示漂移”的挑战。由于编码器网络会随着每个训练步骤发生细微变化,记忆库中来自 100 个步骤之前的特征可能已经“过时”,或与当前模型状态不一致。使用动量编码器(模型的缓慢更新平均值)等技术有助于缓解这一问题。

对于希望管理使用这些高级技术的数据集版本和模型工件的团队,Ultralytics Platform提供了一个集中式中心,用于组织数据、跟踪实验并高效部署模型。管理特征存储和检索的复杂性,对于从实验性人工智能(AI)迈向稳健的生产系统至关重要。

Explore solutions

用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

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

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

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

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

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

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多

让我们共同构建 AI 的未来!

开启你的机器学习未来之旅