Supervised Contrastive Learning论文笔记

Supervised Contrastive Learning

Motivation

  • 交叉熵损失是监督学习中应用最广泛的损失函数,度量两个分布(标签分布和经验回归分布)之间的KL散度,但是也存在对于有噪声的标签缺乏鲁棒性、可能存在差裕度(允许有余地的余度)导致泛化性能下降的问题。而大多数替代方案还不能很好地用于像ImageNet这样的大规模数据集。
  • 在对比学习中,核心思想是拉近某一个锚点与其正样本之间的距离,拉远锚点与该锚点其他负样本之间的距离,通常来说,一个锚点只有一个正样本,其他全视为负样本。

Contribution

  • 提出了一个新的扩展对比损失函数,允许每个锚点有多个正对。因此,将对比学习适应于完全监督的setting。

  • 作者通过梯度计算的角度说明了文中提出的loss可以更好地关注于 hard positives and negatives,从而获得更好的效果。
    在这里插入图片描述

Method

  1. 表征学习框架

    总的来说,有监督对比学习框架的结构类似于表征学习框架,由如下几个部分组成:

    1. 数据增强模块

      A ( ⋅ ) A(\cdot) A()的作用是将输入图像转换为随机增强的图像 x ˉ \bar x xˉ,对每张图像都生成两张增强的子图像,代表原始数据的不同视图。数据增强分为两个阶段:第一阶段是对数据进行随机裁剪,然后将其调整为原分辨率大小;第二阶段使用了三种不同的增强方法,具体包括:(1)自动增强,(2)随机增强,(3)Sim增强(按照顺序进行随机颜色失真和高斯模糊,并可能在序列最后进行额外的稀疏图像扭曲操作)。

    2. 编码器网络

      编码器网络 E ( ⋅ ) E(\cdot) E()的作用是将增强后的图像 x ˉ \bar x xˉ映射到表征空间,每对子图像输入到同一个编码器中得到一对表征向量,本文用的是ResNet50和ResNet200,最后使用池化层得到一个2048维的表征向量。表征层使用单位超球面进行正则化。

    3. 投影网络

      投影网络 P ( ⋅ ) P (\cdot) P()的作用是将表征向量映射成一个最终向量 z z z进行loss的计算,本文用的是只有一个隐藏层的多层感知器,输出维度为128。同样使用单位超球面进行正则化。在训练完成后,这个网络会被一个单一线性层取代。

  2. 对比损失

    本文的数据是带有标签的,采用mini batch的方法获取数据,首先从数据中随机采样 N N N个样本对,记为 { x k , y k } k = 1 , 2 , … , N {\left\{x_k , y_k\right\}}_{k = 1,2,\dots,N} {xk,yk}k=1,2,,N , y k y_k yk x k x_k xk的标签,之后进行数据增强获得 2 N 2N 2N个数据样本 { x ˉ k , y ˉ k } k = 1 , 2 , … , 2 N {\left\{\bar x_k , \bar y_k\right\}}_{k = 1,2,\dots,2N} {xˉk,yˉk}k=1,2,,2N,其中, x ˉ 2 k \bar x_{2k} xˉ2k x ˉ 2 k − 1 \bar x_{2k−1} xˉ2k1是分别用两种随机增强方法得到的数据对,在数据增强过程中,标签信息始终不会改变。

    1. 自监督对比损失

      本文的自监督对比损失与SimCLR的loss相类似,不过使用的是点积刻画样本之间的相似性,具体表达式如下:
      L s e l f = ∑ i ∈ I L i s e l f = − ∑ i ∈ I log ⁡ exp ⁡ ( z i ⋅ z j ( i ) / τ ) ∑ a ∈ A ( i ) exp ⁡ ( z i ⋅ z a / τ ) \mathcal{L}^{self}=\sum\limits_{i\in I}\mathcal{L}_i^{self}=-\sum\limits_{i\in I}\log\frac{\exp(z_i\cdot z_{j(i)}/\tau)}{\sum\limits_{a\in A(i)}\exp(z_i\cdot z_{a}/\tau)} Lself=iILiself=iIlogaA(i)exp(ziza/τ)exp(zizj(i)/τ)

      其中 z l = P r o j ( E n c ( x ˉ l ) ) \mathcal{z_l}=Proj(Enc(\bar x_l)) zl=Proj(Enc(xˉl))是表征学习得到的特征。 ⋅ \cdot 为计算内积操作。 A ( i ) A(i) A(i)为出了下标为i之外的其他所有样本组成的集合。 τ \tau τ是一个进行优化的温度参数。下标为 i i i对应anchor样本,下标为 j ( i ) j(i) j(i)对应数据扩充得到的正样本。其他的 2 N − 2 2N-2 2N2个样本为负样本。

    2. 有监督的对比损失

      有监督对比损失是对自监督对比损失的推广,从公式中很容易可以看出,有监督对比损失拓展了 x ˉ i \bar x_i xˉi正对的数量,将所有标签信息相同的子数据都视为正对,计算了 x ˉ i \bar x_i xˉi与其所有正对之间的相似性,之后进行加权平均。文中提出了两种方式计算损失。
      L o u t s u p = ∑ i ∈ I L o u t , i s e l f = ∑ i ∈ I − 1 ∣ P ( i ) ∣ ∑ p ∈ P ( i ) log ⁡ exp ⁡ ( z i ⋅ z p / τ ) ∑ a ∈ A ( i ) exp ⁡ ( z i ⋅ z a / τ ) \mathcal{L}^{sup}_{out}=\sum\limits_{i\in I}\mathcal{L}_{out,i}^{self}=\sum\limits_{i\in I}\frac{-1}{|P(i)|}\sum\limits_{p\in P(i)}\log\frac{\exp(z_i\cdot z_{p}/\tau)}{\sum\limits_{a\in A(i)}\exp(z_i\cdot z_{a}/\tau)} Loutsup=iILout,iself=iIP(i)1pP(i)logaA(i)exp(ziza/τ)exp(zizp/τ)

      L i n s u p = ∑ i ∈ I L i n , i s e l f = ∑ i ∈ I − log ⁡ { − 1 ∣ P ( i ) ∣ ∑ p ∈ P ( i ) exp ⁡ ( z i ⋅ z p / τ ) ∑ a ∈ A ( i ) exp ⁡ ( z i ⋅ z a / τ ) } \mathcal{L}^{sup}_{in}=\sum\limits_{i\in I}\mathcal{L}_{in,i}^{self}=\sum\limits_{i\in I}-\log\left\{\frac{-1}{|P(i)|}\sum\limits_{p\in P(i)}\frac{\exp(z_i\cdot z_{p}/\tau)}{\sum\limits_{a\in A(i)}\exp(z_i\cdot z_{a}/\tau)}\right\} Linsup=iILin,iself=iIlogP(i)1pP(i)aA(i)exp(ziza/τ)exp(zizp/τ)

      前者的求和操作在 log ⁡ \log log外部,而后者在内部。其中, P ( i ) ≡ { p ∈ A ( i ) : y ˉ p = y ˉ i } P(i)\equiv\left\{p\in A(i):\bar y_p=\bar y_i\right\} P(i){pA(i):yˉp=yˉi}代表所有与下标为i的样本label相同的样本集合(正样本集合), ∣ P ( i ) | |P(i)| P(i)为该集合的大小。

      相比自监督对比损失,两种方式都有如下特性:

      • 使用了大量正样本

        自监督学习仅仅将data augmentation得到的样本作为正样本,而在有监督的设置中,通过data augmentation得到的正样本以及与anchor标签一样的正样本都对公式中的分子有贡献。

      • 负样本越多,对比性越强

        保留了对于负样本的求和,噪声样本越多,对比的效果越好。

      • 具有发掘难正/负样本的内在能力

        这两个损失函数的梯度鼓励从hard positive和hard negative中学习。

      Experiments

      实验比较了他们的方法与其他使用交叉熵的有监督方法的Top-1与Top-5精度,同时对比了他们的架构使用交叉熵损失的表现,可以看到,综合来说他们的方法实现了最好的效果,同时,他们的架构在使用交叉熵损失时的表现就不是非常好,相对来说,他们的架构在改进loss的情况下,Top-1精度提升了3.8/2.8个点,Top-5精度提升了1/2.3个点。
      在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对比式自监督学习是一种无监督学习的方法,旨在通过通过训练模型来学习数据的表示。这种方法在计算机视觉领域中得到了广泛的应用。 对比式自监督学习的核心思想是通过将数据例子与其在时间或空间上的某种变形或扭曲版本对比,来训练模型。这种对比鼓励模型捕捉到数据的关键特征,从而学习到更好的表示。 对比式自监督学习的一个常见应用是图像的自学习。通过将图像进行旋转、剪切、缩放等变形,来构建一个正样本(原始图像)和负样本(变形图像)对。然后将这些对输入到一个深度神经网络中进行训练,以学习图像表示。训练过程中,网络被要求将正样本和负样本区分开,从而学习到图像的特征。 对比式自监督学习有许多优点。首先,它不需要标注数据,使其适用于大规模的无标签数据。其次,由于数据自动生成,可以轻松地扩展到大数据集。另外,对比式自监督学习的模型可以用于其他任务的迁移学习,使得模型更通用。 然而,对比式自监督学习也存在一些挑战和限制。首先,生成变形样本的过程可能会降低数据的质量,从而降低学习效果。其次,选择合适的变形方式和参数也是一个挑战。另外,对于某些领域和任务,对比式自监督学习可能不适用或效果不佳。 总之,对比式自监督学习是一种有效的无监督学习方法,可用于数据表示学习。它在计算机视觉领域有着广泛的应用,并具有许多优点。然而,仍然需要进一步的研究和发展来克服其中的挑战和限制。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值