对比损失(Contrastive Loss)详解
对比损失(Contrastive Loss)是一种常见的度量学习损失函数,它通过学习样本对之间的相似性和差异性,使得相似样本对在特征空间中的距离更小,而不相似样本对的距离更大。这种方法广泛应用于人脸识别、图像检索等任务中。
核心思想
对比损失的基本思想是,通过构建一对样本 ( (x_i, x_j) ),如果这对样本来自同一类(即正样本对),模型应该使得它们在特征空间中的距离更小;而对于不同类别的样本(即负样本对),模型则应该使得它们在特征空间中的距离尽量大。
数学公式
假设:
- ( f ) 表示神经网络模型,用于提取样本的特征表示。
- ( y ) 表示标签,( y = 1 ) 表示样本对 ( (x_i, x_j) ) 是同一类别(正样本对),( y = 0 ) 表示不同类别(负样本对)。
- ( D(f(x_i), f(x_j)) ) 表示样本 ( x_i ) 和 ( x_j ) 在特征空间中的距离,通常使用欧几里得距离。
对比损失的公式定义为:
对比损失公式
L c o n t r a s t i v e = y ⋅ D ( f ( x i ) , f ( x j ) ) 2 + ( 1 − y ) ⋅ max ( 0 , m − D ( f ( x i ) , f ( x j ) ) ) 2 L_{contrastive} = y \cdot D(f(x_i), f(x_j))^2 + (1 - y) \cdot \max(0, m - D(f(x_i), f(x_j)))^2 Lcontrastive=y⋅D(f(xi),f(x