发现对比学习的威力,这是一种自监督技术,可利用最少的标记数据实现稳健的数据表示。
对比学习(Contrastive Learning)是一种机器学习(ML )技术,主要用于自我监督学习(SSL),旨在学习有意义的数据表示,而无需依赖明确的标签。它不预测预定义的类别,而是通过比较数据点来学习。其核心思想是训练一个模型,以区分相似(正向)和不相似(负向)的数据样本对。这样,模型就能学会在学习的特征空间中将相似的项目归类到更近的位置,将不相似的项目推到更远的位置,从而创建有用的嵌入。
这一过程通常涉及一个 "锚 "数据点。通常通过对 "锚点 "应用强数据增强(如裁剪、旋转或颜色变化)来创建 "正面 "示例。负 "示例是数据集中的其他数据点,假定与锚点不同。编码器模型,通常是神经网络(NN),如用于图像的卷积神经网络(CNN),会处理这些样本以生成表示或嵌入。然后,对比损失函数(如InfoNCE)通过最小化锚点与正嵌入之间的距离,同时最大化锚点与负嵌入之间的距离来指导训练。这将促使模型学习捕捉数据中基本相似性和差异性的特征。
对比学习框架有几个基本要素:
对比学习与其他 ML 范式有很大不同:
对比学习在各个领域都取得了显著的成功:
对比预训练对于开发强大的计算机视觉模型非常重要。学习到的表征往往能很好地迁移到特定任务中,有时需要较少的标注数据来进行微调(少量学习)。这对以下模型的训练大有裨益 Ultralytics YOLO等模型的训练大有裨益,因为它提供了从大量无标记数据中学习到的强大初始权重,而这些数据可能是通过Ultralytics HUB 等平台管理和训练的。深度学习框架,如 PyTorch和 TensorFlow等深度学习框架提供了实现这些技术所需的工具。如需深入了解,可考虑浏览自监督学习和表征学习概述。