对比学习损失函数(RINCE/ReLIC/ReLICv2)

对比学习常用的损失函数为InfoNCE。

一、Robust Contrastive Learning against Noisy Views(RINCE)

原文链接:https://arxiv.org/pdf/2201.04309.pdf

        本文提出RINCE,一种对噪声(如图像的过度增广、视频的过度配音、视频和标题未对准等)有鲁棒性的损失,且不需要显式地估计噪声。

        文章提到:RINCE是一个用Wasserstein dependency measure表示的互信息的对比下界;而InfoNCE是KL散度表示的互信息的下界。

        设数据分布为D,噪声数据集为S=\{x,\hat{y}\},其中标签正确即\hat{y}_i=y_i的概率为\eta。则目标为最小化

R_l^\eta(f)=\mathbb{E}_{D_\eta}[l(f(x),\hat{y})]

其中l为二元交叉熵损失。

        对称的损失函数对噪声有鲁棒性。损失函数l对称即满足

l(s,1)+l(s,-1)=c         (1)

c为常数),其中sf产生的预测分数(ls的梯度也应具有对称性)。

        对称的对比损失有如下形式:

L(s)=\underbrace{l(s^+,1)}_{\textup{Positive Pair}}+\lambda\underbrace{\sum_{i=1}^Kl(s_i^-,-1)}_{K\textup{ negative pairs}}        (2)

其中s^+s^-分别为正/负样本对的分数。权重\lambda的大小反映正负样本的相对重要程度。

        InfoNCE不满足对s^{+/-}梯度中的对称条件。

        RINCE损失如下:

L^{\lambda,q}_{\textup{RINCE}}(s)=\frac{-e^{q\cdot s^+}}{q}+\frac{(\lambda\cdot(e^{s^+}+\sum_{i=1}^Ke^{s^-_i}))^q}{q}

其中q\lambda均在(0,1]范围内(实验表明对\lambda的值不敏感)。

        q=1时,RINCE完全满足(2)式的对称性(此时,满足(1)式且c=0):

L^{\lambda,q=1}_{\textup{RINCE}}(s)=-(1-\lambda)e^{s^+}+\lambda\sum_{i=1}^Ke^{s^-_i}

 此时该损失对噪声有鲁棒性。

        q趋于0时,RINCE渐近趋于InfoNCE。

        不论q为何值,正样本分数越高,负样本分数越低,损失越小。 

在梯度计算时:

        q=1时,RINCE更重视easy-positive的样本(分数高的正样本);

        InfoNCE(q=0)更重视hard-positive的样本(分数低的正样本);

        两者均重视hard-negative的样本(分数高的负样本)。

        因此InfoNCE在无噪声时收敛更快,而q=1的RINCE对噪声更有鲁棒性。实际中在[0.1,0.5]的范围内取q

二、Representation learning via invariant casual mechanisms(ReLIC)

原文链接:https://arxiv.org/pdf/2010.07922.pdf

        本文把数据分为内容和风格(例如要分类图像是否为狗时,图像中的狗为内容,而背景、光照等因素为风格),学习到的表达应只与内容有关。

        采用数据增广的方案在保留内容的同时改变风格(如图像旋转、改变灰度、裁剪和平移等),形成正样本。

-\sum_{i=1}^N\sum_{a_{lk}}\log\frac{\exp(\phi(f(x_i^{a_l}),h(x_i^{a_k}))/\tau)}{\sum_{m=1}^M\exp(\phi(f(x_i^{a_l}),h(x_m^{a_k}))/\tau)}+\alpha\sum_{a_{lk},a_{qt}}KL(p^{do(a_{lk})},p^{do(a_{qt})})

上式f表示神经网络;hf相关,往往取h=f\phi(f(x_i),h(x_j))=\langle g(f(x_i)),g(h(x_j)) \rangleg是全连接层。a_{lk}=(a_l,a_k)为一对增广;p^{do(a_{lk})}p^{do(a_{lk})}(Y^R=j|f(x_i))\propto \exp(\phi(f(x_i^{a_l}),h(x_j^{a_k}))/\tau)

        前面一项为通常的对比损失,而后面一项是增广的不变性惩罚(或者不变性损失)(即增广应尽可能地不改变内容),该项可以减小类间距离。

        本文还解释了自监督学习成功的原因,即证明了:设下游任务集合Y,且任务Y_RY中所有任务均更细化。如果通过Y_R学习到的表达只与内容有关,那么这个表达可以泛化到Y中所有的下游任务。

三、Pushing the limits of self-supervised ResNets: Can we outperform supervised learning without labels on ImageNet?(ReLICv2)

原文链接:https://arxiv.org/pdf/2201.05119.pdf

ReLICv2和ReLIC的损失函数相似:

l_{\textup{ReLICv2}}(x_i)=\sum_{x^+_i\in P(x_i)}-\alpha\log p(x_i;x_i^+)+\beta D_{KL}(p(x_i)|p(x^+))

这里的p就是ReLIC中公式第一项\log后的内容,而D_{KL}就是ReLIC中公式的第二项:

\log p(x_i;x_i^+)=\log \frac{e^{\phi_\tau(x_i;x_i^+)}}{e^{\phi_\tau(x_i;x_i^+)}+\sum_{x_i^-\in N(x_i)}e^{\phi_\tau(x_i;x_i^-)}}

D_{KL}(p(x_i)|p(x_i^+))=\textup{sg}\left [ \mathbb{E}_{p(x_i;x_i^+)}\log p(x_i;x_i^+) \right ]-\mathbb{E}_{p(x_i;x_i^+)}\log p(x_i^+;x_i)

\textup{sg}[\cdot]表示stop gradient,在优化过程中可以避免退化解。

        和ReLIC的区别在于选择正负样本:正样本的产生先采用multi-crop augmentation和基于显著性的背景移除,然后用标准的SimCLR的增广方案(见自监督学习概述对比学习部分例2);负样本可以使用hard-negative sampling,但本文就在batch里面均匀随机抽取。

:两个离散概率分布的KL散度:

KL(P,Q)=\sum P(x)\log \frac{P(x)}{Q(x)}

通常P为数据的真实分布,Q为数据的预测分布。

你可能感兴趣的:(对比学习相关,深度学习)