社区计算机视觉课程文档

损失函数

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

损失函数

简介

在深入探讨用于训练 CLIP 等模型的各种损失函数之前,重要的是要清楚地理解什么是对比学习。对比学习是一种无监督的深度学习方法,旨在进行表征学习。其目标是开发一种数据表征,其中相似的项目在表征空间中彼此靠近,而不同项目则明显分离。

在下图中,我们有一个例子,我们希望将狗的表征与其他狗的表征保持更近,同时远离猫的表征。图片信息

训练目标

对比损失

对比损失是用于对比学习的首批训练目标之一。它以一对样本作为输入,这些样本可以是相似的或不相似的,目标是将相似的样本在嵌入空间中映射得更近,并将不相似的样本推开。

从技术上讲,假设我们有一个输入样本列表xnx_n来自多个类别。我们希望一个函数,使得同一类别的样本在嵌入空间中的嵌入彼此靠近,而不同类别的样本则彼此远离。将其转换为数学方程,我们得到的是L=1[yi=yj]xixj2+1[yiyj]max(0,ϵxixj2)L = \mathbb{1}[y_i = y_j]||x_i - x_j||^2 + \mathbb{1}[y_i \neq y_j]max(0, \epsilon - ||x_i - x_j||^2)

简单来说

  • 如果样本相似yi=yjy_i = y_j,那么我们最小化项xixj2||x_i - x_j||^2,它对应于它们的欧几里得距离,即我们希望它们更接近;
  • 如果样本不相似(yiyj)(y_i \neq y_j),那么我们最小化项max(0,ϵxixj2) max(0, \epsilon - ||x_i - x_j||^2)这相当于最大化它们的欧几里得距离,直到某个限制ϵ\epsilon,即我们希望它们彼此远离。

参考文献

< > 在 GitHub 上更新