Contrastive Learning
探索机器学习中的对比学习。了解它如何使用自监督数据为 Ultralytics YOLO26 和计算机视觉构建强大的 AI 特征。
对比学习是一种机器学习范式,它通过比较相似和不相似的样本来教导模型理解数据。与严重依赖人工标注数据集的传统监督学习不同,对比学习通常用于自监督学习场景。核心思想简单却强大:模型学会在向量空间中将相关项(正样本对)的表征拉得更近,同时将不相关项(负样本对)推得更远。这个过程允许算法从海量未标记数据中构建出强大且具泛化能力的特征,这对于扩展人工智能 (AI) 系统至关重要。
对比学习的机制#
对比学习的核心是通过比较进行学习。模型不是去死记硬背某张特定的图片是“猫”,而是学会猫的两张不同照片彼此之间的相似度,高于它们任何一张与狗的照片的相似度。这通常是通过数据增强实现的。输入图像通常被称为“锚点”,通过裁剪、翻转或颜色抖动等技术转换为两个不同的版本。这两个版本构成一个正样本对。然后训练模型以最小化其嵌入之间的距离,同时最大化与批处理中其他随机图像(负样本)的距离。
这种方法有助于神经网络专注于高层语义特征,而不是低层像素细节。例如,无论一辆车是红色的还是蓝色的,是朝左还是朝右,“汽车”的底层概念保持不变。通过忽略这些表面的变化,模型对视觉世界有了更深入的理解,这极大地有益于目标检测和分类等下游任务。
实际应用#
对比学习已成为许多前沿 AI 应用的基石,特别是在标注数据稀缺或获取成本高昂的情况下。
-
零样本图像分类: 像 CLIP (Contrastive Language-Image Pre-training) 这样的模型使用对比学习在共享特征空间中对齐图像和文本。通过在数百万个图文对上进行训练,模型学会将视觉概念与自然语言描述关联起来。这实现了零样本学习,模型只需将图像与文本提示进行匹配,即可将图像分类到其在训练期间从未见过的类别中。
-
医疗影像的强大预训练: 在医疗保健领域,获取专家标注的医疗扫描件成本高昂且耗时。研究人员使用对比学习在未标记的 X 光片或 MRI 扫描的大型数据库上预训练模型。这种无监督预训练创建了一个强大的主干网络,可以用少量带标签的样本进行微调,以高精度检测肺炎或肿瘤等疾病。这项技术利用迁移学习来改进医疗 AI 中的诊断工具。
区分相关概念#
区分对比学习与类似技术有助于理解其在机器学习 (ML) 领域的独特作用。
- vs. 自编码器: 尽管两者都是无监督方法,但自编码器旨在逐像素重建输入数据,将其压缩到瓶颈层中。相比之下,对比学习不试图重新创建图像,而是专注于学习能够分离不同概念的判别性表征。
- vs. 生成对抗网络 (GANs): GANs 涉及生成器创建假数据和鉴别器试图检测它。对比学习侧重于表征学习而不是数据生成,使其更适合搜索、检索和分类等任务。
- vs. 三元组损失: 传统的三元组损失明确需要锚点、正样本和负样本。现代对比方法,如 SimCLR 或 MoCo,通过在批次中同时将锚点与许多负样本进行比较来概括这一点,通常使用 InfoNCE 等特定的损失函数。
关于嵌入的实践示例#
虽然从头开始训练对比模型资源消耗大,但你可以轻松使用预训练模型来提取特征。以下示例演示了如何使用 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 Platform 为部署和监控提供了精简的环境。






