探索零样本学习(ZSL),以在没有训练数据的情况下 detect 和 classify 对象。了解 Ultralytics YOLO-World 如何实现实时开放词汇 detect。
零样本学习 (ZSL) 是一种机器学习范式,它使人工智能模型能够识别、classify 或 detect 在训练阶段从未遇到过的对象。在传统的监督学习中,模型需要数千个带标签的示例才能识别每个特定类别。ZSL 通过利用辅助信息(通常是文本描述、语义属性或嵌入)来弥合已知类别和未知类别之间的差距,从而消除了这种严格的依赖性。这种能力使得人工智能 (AI)系统能够显著提高灵活性、可扩展性,并能够处理在动态环境中收集每个可能对象的详尽数据不切实际的情况。
零样本学习 (ZSL) 的核心机制涉及使用共享语义空间将知识从熟悉概念转移到不熟悉概念。模型不是仅仅通过记忆黑白条纹的像素模式来识别“斑马”,而是学习视觉特征与语义属性(例如,“马状”,“条纹图案”,“四条腿”)之间的关系,这些属性源自 自然语言处理 (NLP)。
这一过程通常依赖于 multi-modal models,它们能够对齐图像和文本表示。例如,OpenAI's CLIP 等基础研究展示了模型如何从自然语言监督中学习视觉概念。当 ZSL 模型遇到一个未见过的物体时,它会提取视觉特征并将其与语义向量字典进行比较。如果视觉特征与新类别的语义描述对齐,模型就能正确地 classify 它,有效地执行“零样本”预测。这种方法是现代 foundation models 的基础,它们能够泛化到各种任务。
零样本学习通过使系统能够超越其初始训练数据进行泛化,正在推动各行各业的创新。
Ultralytics YOLO-World 模型是零样本学习的典范。它允许用户在运行时动态定义自定义类别,而无需重新训练模型。这是通过将强大的detect骨干网络与理解自然语言的文本编码器连接起来实现的。
以下Python示例演示了如何使用YOLO-World检测未明确包含在标准训练集中的对象。 ultralytics 包装
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()
要充分理解 ZSL,最好将其与计算机视觉(CV)中使用的类似学习策略区分开来。 计算机视觉 (CV) 中使用的类似学习策略区分开来:
虽然零样本学习(ZSL)具有巨大潜力,但它面临着诸如领域漂移问题等挑战,即训练期间学习到的语义属性无法完美映射到未见类别的视觉外观。此外,ZSL模型可能存在偏差,即已见类别的预测准确性显著高于未见类别。
斯坦福大学人工智能实验室和IEEE计算机学会等组织的研究持续致力于解决这些局限性。随着计算机视觉工具变得更加强大,ZSL有望成为一项标准功能,从而减少对大规模数据标注工作的依赖。对于希望在部署高级模型之前高效管理数据集的团队,Ultralytics Platform提供了全面的标注和数据集管理工具。

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