术语表

对比学习

发现对比学习的威力,这是一种自监督技术,可利用最少的标记数据实现稳健的数据表示。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

对比学习(Contrastive Learning是一种机器学习(ML 技术,主要用于自我监督学习(SSL),旨在学习有意义的数据表示,而无需依赖明确的标签。它不预测预定义的类别,而是通过比较数据点来学习。其核心思想是训练一个模型,以区分相似(正向)和不相似(负向)的数据样本对。这样,模型就能学会在学习的特征空间中将相似的项目归类到更近的位置,将不相似的项目推到更远的位置,从而创建有用的嵌入

对比学习如何发挥作用

这一过程通常涉及一个 "锚 "数据点。通常通过对 "锚点 "应用强数据增强(如裁剪、旋转或颜色变化)来创建 "正面 "示例。负 "示例是数据集中的其他数据点,假定与锚点不同。编码器模型,通常是神经网络(NN),如用于图像的卷积神经网络(CNN),会处理这些样本以生成表示或嵌入。然后,对比损失函数(如InfoNCE)通过最小化锚点与正嵌入之间的距离,同时最大化锚点与负嵌入之间的距离来指导训练。这将促使模型学习捕捉数据中基本相似性和差异性的特征。

主要组成部分

对比学习框架有几个基本要素:

  • 数据扩充策略:创建有效的积极配对在很大程度上依赖于数据扩充。技术因数据类型(如图像、文本、音频)而异。您可以探索各种数据增强策略Albumentations 等库。
  • 编码器网络:该网络将原始输入数据转换为低维表示。架构(如ResNetVision Transformer)的选择取决于具体任务和数据模式。
  • 对比损失函数:该函数量化学习表征之间的相似性,并驱动学习过程。除了 InfoNCE,对比学习文献中还使用了其他损失函数。

对比学习与其他方法

对比学习与其他 ML 范式有很大不同:

  • 监督学习主要依赖人工标注数据进行训练。对比学习绕过了大量标记的需要,因此适用于大量无标记的数据集
  • 无监督学习虽然 SSL(包括对比学习)是无监督学习的一种,但聚类(K-Means)等传统方法通常侧重于对数据进行分组,而没有对比方法中固有的明确的正/负比较机制。
  • 其他自我监督方法:生成式 SSL 模型(如自动编码器)通过重构输入数据来学习,而对比式方法则通过比较样本来学习判别特征。

实际应用

对比学习在各个领域都取得了显著的成功:

  1. 视觉表征学习:在大型无标记图像数据集(如ImageNet)上预先训练功能强大的模型,以完成图像分类物体检测等下游计算机视觉任务。开创性的工作包括Google 研究院Meta AI (FAIR) 等研究实验室的SimCLRMoCoCLIP等模型还利用了图像和文本之间的对比技术。
  2. 图像检索和语义搜索:通过比较学习到的嵌入,构建能够在庞大的数据库中找到视觉相似图像的系统。这在基于内容的图像检索(CBIR)系统中非常有用。
  3. 自然语言处理(NLP):为文本分类、聚类和语义搜索等任务学习有效的句子和文档嵌入。

计算机视觉和Ultralytics相关性

对比预训练对于开发强大的计算机视觉模型非常重要。学习到的表征往往能很好地迁移到特定任务中,有时需要较少的标注数据来进行微调(少量学习)。这对以下模型的训练大有裨益 Ultralytics YOLO等模型的训练大有裨益,因为它提供了从大量无标记数据中学习到的强大初始权重,而这些数据可能是通过Ultralytics HUB 等平台管理和训练的。深度学习框架,如 PyTorchTensorFlow等深度学习框架提供了实现这些技术所需的工具。如需深入了解,可考虑浏览自监督学习表征学习概述。

阅读全部