Zero-Shot Learning
探索零样本学习 (ZSL) 以在没有训练数据的情况下检测和分类对象。了解 Ultralytics YOLO-World 如何实现实时开放词汇检测。
零样本学习 (ZSL) 是一种机器学习范式,它使人工智能模型能够识别、分类或检测在训练阶段从未遇到过的对象。在传统的 监督学习 中,模型需要针对其需要识别的每个特定类别提供数千个标记示例。ZSL 通过利用辅助信息(通常是文本描述、语义属性或 嵌入 (embeddings))来弥合已知类和未知类之间的差距,从而消除了这种严格的依赖。这种能力使 人工智能 (AI) 系统能够变得更加灵活、可扩展,并能够处理动态环境,在这种环境中,为每个可能的对象收集详尽的数据是不切实际的。
Link to this section零样本学习的工作原理#
ZSL 的核心机制涉及使用共享的语义空间将知识从熟悉的概念转移到陌生的概念。模型不是仅仅通过记忆黑白条纹的像素模式来学习识别“斑马”,而是学习视觉特征与源自 自然语言处理 (NLP) 的语义属性(例如,“马形”、“条纹图案”、“四条腿”)之间的关系。
此过程通常依赖于对齐图像和文本表示的 多模态模型。例如,像 OpenAI's CLIP 这样的基础研究展示了模型如何通过自然语言监督学习视觉概念。当 ZSL 模型遇到未知对象时,它会提取视觉特征并将其与语义向量字典进行比较。如果视觉特征与新类别的语义描述对齐,模型就可以正确地对其进行分类,从而有效地执行“零样本”预测。这种方法对于能够跨越大量任务进行泛化的现代 基础模型 (foundation models) 至关重要。
Link to this section实际应用#
零样本学习通过使系统能够泛化超出其初始训练数据范围的能力,正在推动各行各业的创新。
-
Open-Vocabulary Object Detection: Modern architectures like YOLO-World utilize ZSL to detect objects based on user-defined text prompts. This allows for object detection in scenarios where defining a fixed list of classes beforehand is impossible, such as searching for specific items in vast video archives. Researchers at Google Research continue to push the boundaries of these open-vocabulary capabilities.
-
医学诊断: 在 医疗保健领域的 AI 应用中,获取罕见疾病的标记数据通常既困难又昂贵。ZSL 模型可以在常见疾病以及从 PubMed 等数据库中找到的医学文献中罕见症状的描述上进行训练,从而使系统能够在无需大量阳性病例数据集的情况下,标记医学影像中潜在的罕见异常。
-
野生动物保护: 对于 农业领域的 AI 和生态学而言,识别很少被拍摄到的濒危物种至关重要。ZSL 允许保护工作者使用在 生命百科全书 (Encyclopedia of Life) 等生物数据库中定义的基于属性的描述来检测这些动物。
Link to this section使用 Ultralytics 进行零样本检测#
Ultralytics YOLO-World 模型是零样本学习的典范。它允许用户在运行时动态定义自定义类,而无需重新训练模型。这是通过将稳健的检测骨干网络与理解自然语言的文本编码器连接起来来实现的。
以下 Python 示例演示了如何使用 ultralytics 软件包通过 YOLO-World 检测不属于标准训练集的显式对象。
from ultralytics import YOLOWorld
# Load a pre-trained YOLO-World model capable of Zero-Shot Learning
model = YOLOWorld("yolov8s-world.pt")
# Define custom classes via text prompts (e.g., specific accessories)
# The model adjusts to detect these new classes without retraining
model.set_classes(["blue backpack", "red apple", "sunglasses"])
# Run inference on an image to detect the new zero-shot classes
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()Link to this section与相关概念的区别#
为了充分理解 ZSL,将其与 计算机视觉 (CV) 中使用的类似学习策略区分开来是有帮助的:
- 少样本学习 (FSL): 虽然 ZSL 不需要目标类的任何示例,但 FSL 会为模型提供一个非常小的支持集(通常为 1 到 5 个示例)以进行调整。ZSL 通常被认为更具挑战性,因为它完全依赖于语义推理,而不是视觉示例。
- 单样本学习 (One-Shot Learning): 这是 FSL 的一个子集,其中模型从仅有的一个标记示例中学习。ZSL 的根本区别在于它甚至可以在没有新类别图像的情况下进行操作。
- 迁移学习 (Transfer Learning): 这个广泛的术语指的是将知识从一个任务转移到另一个任务。ZSL 是一种特定类型的迁移学习,它使用语义属性将知识转移到未见过的类,而无需在新数据上进行传统的 微调 (fine-tuning)。
Link to this section挑战与未来展望#
虽然 ZSL 提供了巨大的潜力,但它也面临挑战,例如 域偏移问题 (domain shift problem),即训练期间学到的语义属性不能完美地映射到未知类的视觉外观上。此外,ZSL 模型可能会遭受偏差,即已知类的预测准确率明显高于未知类。
来自 斯坦福大学 AI 实验室 (Stanford University's AI Lab) 和 IEEE 计算机协会 (IEEE Computer Society) 等组织的研究人员正在继续解决这些局限性。随着 计算机视觉工具 变得越来越稳健,ZSL 有望成为一项标准功能,减少对大规模 数据标记 (data labeling) 工作量的依赖。对于希望在部署高级模型之前高效管理数据集的团队,Ultralytics Platform 提供了全面的标注和数据集管理工具。






