探索机器学习中的对比学习。了解其如何利用自监督数据Ultralytics 和计算机视觉构建稳健的人工智能特征。
对比学习是一种机器学习范式,通过比较相似与相异样本来指导模型理解数据。与高度依赖人工标注数据集的传统监督学习不同,对比学习常用于自监督学习场景。其核心思想简单而强大:模型学会在向量空间中将相关项目(正样本对)的表示拉近,同时将无关项目(负样本对)推得更远。这一过程使算法能够从海量无标记数据中构建稳健且可泛化的特征,这对人工智能的规模化发展至关重要。 在向量空间中拉近相关项目(正样本对)的表示距离,同时将无关项目(负样本对)的表示推得更远。该过程使算法能够从海量无标签数据中构建稳健且可泛化的特征,这对扩展人工智能(AI)系统至关重要。
对比学习的核心在于通过比较进行学习的概念。模型并非记忆特定图像代表"猫",而是学习到两张不同的猫照片彼此更相似,且两者都比狗的照片更相似。这通常通过数据增强实现。 输入图像(通常称为"锚点")通过裁剪、翻转或颜色抖动等技术生成两个变体版本,二者构成正样本对。模型通过训练使这两个版本的嵌入向量距离最小化,同时最大化与批次中其他随机图像(负样本)的距离。
这种方法有助于神经网络聚焦于高级语义特征而非低级像素细节。例如,无论汽车是红色还是蓝色,面向左侧还是右侧,其底层概念"汽车"始终不变。通过忽略这些表面差异,模型能对视觉世界形成更深刻的理解,这极大提升了物体检测与分类等下游任务的性能。
对比学习已成为许多尖端人工智能应用的基础,尤其在标注数据稀缺或获取成本高昂的场景中。
区分对比学习与类似技术有助于理解其在机器学习(ML)领域中的独特作用。
虽然从头开始训练对比模型需要大量资源,但您可以轻松利用预训练模型来提取特征。以下示例演示了如何加载模型,并使用 ultralytics 该嵌入表示通过类似对比预训练的技术所学习的语义内容。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on an image to get the results
# The 'embed' argument can be used in advanced workflows to extract feature layers
results = model("https://ultralytics.com/images/bus.jpg")
# Access the top predicted class probability
# This prediction is based on the learned feature representations
print(f"Top class: {results[0].names[results[0].probs.top1]}")
print(f"Confidence: {results[0].probs.top1conf:.4f}")
这种提取丰富、有意义特征的能力,使对比学习成为构建现代计算机视觉(CV)系统的关键,从而实现高效的图像检索和高级分析。对于管理数据集和训练受益于这些先进架构的定制模型Ultralytics 提供了一个简化的部署和监控环境。