论文笔记:SUPERVISED CONTRASTIVE REGRESSION

2022arxiv的论文,没有中,但一作是P大图班本MIT博,可信度应该还是可以的

0 摘要

  • 深度回归模型通常以端到端的方式进行学习,不明确尝试学习具有回归意识的表示
    • 它们的表示往往是分散的,未能捕捉回归任务的连续性质。
  • 在本文中,我们提出了“监督对比回归”(Supervised Contrastive Regression,SupCR)的框架
    • 该框架通过将样本与目标距离进行对比来学习具有回归意识的表示
    • SupCR与现有的回归模型是正交的,并且可以与这些模型结合使用以提高性能
  • 在涵盖计算机视觉、人机交互和医疗保健领域的五个真实世界回归数据集上进行的大量实验表明,使用SupCR可以达到最先进的性能,并且始终在所有数据集、任务和输入模式上改进先前的回归基线。
    • SupCR还提高了对数据损坏的鲁棒性
    • 对减少的训练数据具有弹性
    • 改善了迁移学习的性能
    • 并且对未见过的目标有很好的泛化能力。

1 介绍

1.1 动机

  • 之前的回归问题
    • 都集中在以端到端的方式对最终预测进行约束
    • 并未明确考虑模型学到的表示
  • ——>学习的表示往往是分散的,未能捕捉回归任务中连续的关系
  • 图1(a)展示了在从网络摄像头户外图像预测天气温度的任务中,由L1损失学习的表示
    • L1模型学习的表示并没有呈现连续的真实温度值;相反,它按不同的摄像头以一种碎片化的方式进行分组。
      • 这种无序和碎片化的表示对于回归任务是次优的,甚至可能会妨碍性能,因为其中包含了干扰信息
  • 之前的表示学习都集中在分类问题上
    • 尤其是监督学习和对比学习
    • 如图1(b)所示,这些方法在上述视觉温度预测任务中学习的表示对于回归问题来说是次优的
      • 因为它忽略了回归任务中样本之间的连续顺序。

1.2 本文思路

  • 引入了“监督对比回归”(Supervised Contrastive Regression,SupCR)这一新的深度回归学习框架
    • 首先学习一个表示,确保嵌入空间中的距离与目标值的顺序相对应
      • 为了学习这样一个具有回归意识的表示,我们根据样本的标签/目标值距离将样本进行对比
    • 然后使用这个表示来预测目标值
  • 方法明确地利用样本之间的有序关系来优化下游回归任务的表示(如1(c)所示)
  • 此外,SupCR与现有的回归方法正交
    • 可以使用任何类型的回归方法将学习到的表示映射到预测值上。

2 方法

2.0 方法定义

  • 学习一个神经网络,由两部分组成

     

    • 特征encoder
    • 预测器p(\cdot):R^{d_e}\rightarrow R^{d_t} 从x \in X中预测y \in R^{d_t}
  •  对于给定的输入 batch,类似于对比学习,首先对数据进行两次数据增强,得到batch的两个view
    • 这两个view被输入到编码器f(·)中,为每个增强的输入数据获取一个de维特征嵌入
    • 监督对比回归损失L_{SupCR}是在这些特征嵌入上计算的
      • 为了将学习到的表示用于回归,冻结编码器f(·),然后在其之上训练预测器,使用回归损失(例如,L1损失)

2.1 监督对比回归损失

  • 大前提:希望损失函数能够确保嵌入空间中的距离与标签空间中的距离相对应
  • 给定N个数据组成的batch ,其中有input和label \{(x_n,y_n)\}_{n \in [N]}
    • 对该批数据应用数据增强,得到两个视图的batch
      • \tilde{x}_{2n}=t(x_n),\tilde{x}_{2n-1}=t'(x_n)
      • t和t'是两种数据增强方式
      • ——>得到两个视图下的batch\{(\tilde{x}_l,\tilde{y}_l)\}_{l \in [2N]}
        • \tilde{y}_{2n}=\tilde{y}_{2n-1}=y_n
    • 数据增强后的batch会被喂到encoder中,以获得相应的embedding
      • v_l=f(\tilde{x}_l)\in R^{d_e}, \forall n \in [2N]
  • 监督对比回归损失为

比如我们计算20这个样本的对比学习损失函数时,将30作为anchor的时候,会有两个负样本;将0作为anchor的时候,会有一个负样本

 2.2 理论证明

3 实验

3.1 五个实验

AgeDB
  • 从人脸图像预测年龄。
  • 包含了16,488张名人的图像和相应的年龄标签。
  • 年龄范围在0到101岁之间。
  • 数据集被分为12,208张训练图像、2140张验证图像和2140张测试图像。
TUAB
  • 从EEG静息态信号估计脑龄。
  • 包括1,385个21通道的EEG信号,采样频率为200Hz,来自年龄范围从0到95岁的个体。
  • 数据集被分为1,246个受试者的训练集和139个受试者的测试集。
MPIIFaceGaze
  • 从人脸图像估计注视方向。
  • 包含了213,659张从15名参与者收集的人脸图像
  • 将其划分为一个33,000张训练图像、6,000张验证图像和6,000张测试图像的数据集,参与者之间没有重叠。
  • 注视方向被描述为一个二维向量,第一维是俯仰角,第二维是偏航角。俯仰角的范围是-40°到10°,偏航角的范围是-45°到45°。
SkyFinder
  • 从户外网络摄像头图像预测温度。
  • 包含了由44台摄像头在每天上午11点左右拍摄的35,417张图像,天气和照明条件涵盖了广泛的范围。
  • 温度范围是-20°C到-49°C。
  • 数据集被分为28,373张训练图像、3,522张验证图像和3,522张测试图像。
IMDB-WIKI
  • 从人脸图像预测年龄
  • 包含了523,051张名人图像和相应的年龄标签。
  • 年龄范围在0到186岁之间(有些图像标签错误)。
  • 使用该数据集来测试方法对减少训练数据的弹性,迁移学习的性能以及对未见目标的泛化能力。

3.2 实验效果

 

 3.3 数据损坏的鲁棒性

使用ImageNet-C基准测试中的损坏生成过程来对AgeDB测试集进行19种不同强度级别的多样化损坏。

 3.4 训练数据的影响

 

### 温度参数对监督对比损失函数的影响 在监督对比学习框架下,温度参数 \( \tau \) 是控制特征空间分布的关键超参数之一。它决定了正样本对之间的相似性和负样本对之间差异性的相对重要程度[^1]。 当温度参数较低时 (\( \tau \to 0 \)),模型倾向于更严格地区分正负样本对,这可能导致优化过程更加关注局部细节而忽略全局结构信息[^3]。这种情况下,虽然可能提高分类边界的清晰度,但也容易引发过拟合现象,尤其是在训练数据有限的情况下[^2]。 相反,在较高温度设置下 (\( \tau \to 1 \) 或更大),模型会放松对于正负样本区分的要求,从而允许更多噪声存在并促进泛化能力提升。然而,如果温度过高,则可能会削弱有效信号的作用,使得最终学到的表征质量下降[^4]。 因此,在实际应用过程中需要通过实验来寻找最佳平衡点以获得最优性能表现 。通常可以通过网格搜索或者随机搜索方法来进行调优操作 ,同时结合验证集上的指标评估结果做出决策 。 ```python import torch from torch.nn import functional as F def supervised_contrastive_loss(features, labels, temperature=0.1): """ Compute Supervised Contrastive Loss. Args: features: Tensor of shape (batch_size, feature_dim). labels: Tensor of shape (batch_size,) containing class indices. temperature: Float representing the temperature parameter. Returns: Scalar tensor containing the loss value. """ batch_size = features.shape[0] mask = torch.eq(labels.unsqueeze(1), labels.unsqueeze(0)).float() logits = torch.div(torch.matmul(features, features.T), temperature) exp_logits = torch.exp(logits - torch.max(logits, dim=1, keepdim=True)[0]) log_prob = logits - torch.log(exp_logits.sum(dim=1, keepdim=True)) mean_log_prob_pos = (mask * log_prob).sum(dim=1) / mask.sum(dim=1) loss = -(temperature / batch_size) * mean_log_prob_pos.sum() return loss ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值