目前,自监督学习在无需人工标注的情况下展现出强大的视觉特征提取能力,并在多个下游视觉任务中取得成功。它超越了监督学习的性能,这种学习范式也因此引起了广泛关注。在这股热潮中,各种自监督学习方法层出不穷。虽然它们大多采用孪生网络的架构,但解决问题的角度却大相径庭。这些方法大致可以分为三类:以MoCo、SimCLR为代表的比较学习方法,以BYOL、SimSiam为代表的非对称网络方法,以BarlowTwins、VICReg为代表的特征解耦方法。这些方法在如何学习特征表示方面有着截然不同的想法,由于实际实现中使用的网络结构和训练设置不同,研究人员无法公平地比较它们的性能。那么,人们自然会有一些疑问:这些方法之间是否存在某种联系?它们背后的工作机制是什么关系?此外,哪些因素会导致不同方法之间的性能差异?为此,来自清华大学、商汤科技等机构的研究人员提出了一个统一的框架来解释这些方法。他们没有直接比较它们的损失函数,而是从梯度分析的角度发现这些方法都具有非常相似的梯度结构。这个梯度由三部分组成:正梯度、负梯度和一个平衡系数。其中,正负梯度的作用与对比学习中的正负样本非常相似,这说明上述三类方法的工作机制其实是相似的。此外,由于梯度的具体形式存在差异,研究人员通过详细的对比实验分析了它们的影响。结果表明,梯度的具体形式对性能影响很小,关键因素在于动量编码器的使用。论文链接:https://arxiv.org/pdf/2112.05141.pdf在这个统一框架的基础上,研究人员提出了一种简洁有效的梯度形式——UniGrad。UniGrad不需要复杂的memorybank或predictornetwork设计,也可以给出SOTA性能。在几个下游任务中,UniGrad已经取得了良好的迁移性能,可以非常简单地添加其他增强功能以??进一步提高性能。图1三类自监督方法与UniGradUnified框架的比较本节将分析不同方法的梯度形式。首先给出了三类方法的梯度形式,然后总结了共同的结构。读者还可以从梯度的角度更好地理解不同类型的方法是如何工作的。为了表达方便,作者用u表示当前样本特征,v表示其他样本特征,加下标表示不同的增强视图,加上标表示孪生网络中online或target分支生成的特征.对比学习法对比学习法希望当前样本更接近正样本,增加与负样本的距离。一般会用到下面的InfoNCELoss:在具体实现上,MoCo和SimCLR这两种代表方法有很多不同之处:MoCo使用动量编码器作为目标分支的编码器,而SimCLR允许目标分支和在线分支共享参数;MoCo使用memorybank存储负样本,SimCLR使用当前batch中的其他样本作为负样本。通过对SimCLR梯度的轻微简化(关闭目标分支的梯度反向传播不会影响最终的性能),比较学习方法的梯度可以统一为如下形式:在这个公式中,函数是带将正样本靠得更近,作用是将负样本推开,所以作者将这两项分别称为正梯度和负梯度。非对称网络方法非对称网络方法仅使用正样本来学习特征,通过非对称网络的设计避免琐碎的解决方案。这类方法一般在online分支后加入一个预测器网络,同时关闭目标分支的梯度反向传播,最后使用如下损失函数。在这类方法中,具有代表性的BYOL和SimSiam非常相似,唯一的区别是是否使用动量编码器。尽管这些方法表现出非凡的性能,但人们对它们的工作原理知之甚少。近日,DirectPred从网络优化的动态过程中对它们进行了初步的解释。这项工作观察到预测器网络的特征空间将逐渐与特征相关矩阵的特征空间对齐。基于此,DirectPred提出了预测器网络的解析解。在这项工作的基础上,作者进一步表明,非对称网络方法与其他方法相关,特别是,它们的梯度可以作为解析解导出,其中是预测器网络。可以看出,上面的公式也有两个主要部分:正梯度和负梯度。乍一看,这个结果很反直觉:损失函数中没有使用负样本,但是梯度中出现了负梯度。事实上,这些负样本来自预测器在优化过程中学习到的信息。根据DirectPred的结论,预测器的特征空间会逐渐与相关矩阵的特征空间对齐,因此预测器在训练过程中很可能将相关矩阵的信息编码到网络参数中。作为负样本出现在梯度中。特征解耦方法特征解耦方法旨在减少特征维度之间的相关性以避免琐碎的解决方案。由于不同作品采用的损失函数在形式上差异很大,所以作者分开讨论。BarlowTwins采用以下损失函数:其中是两个增强视图之间的相关矩阵。这个损失函数期望相关矩阵上的对角线元素接近于1,非对角线元素接近于0。损失函数的梯度形式为:作者首先将第一项替换为,并在同时,原始的BarlowTwins对该特征采用batchnormalization,作者将其替换为normalization。这些转换不会影响最终的性能。VICReg在BarlowTwins的基础上做了一些改动。为了去除添加到特征上的batchnormalization,它采用如下损失函数:相应的梯度形式是通过对特征应用normalization。作者可以删除最后一项而不影响其性能。这样,特征解耦方法的梯度形式可以统一为:梯度形式仍然包含两项:正梯度和负梯度,分别来自相关矩阵中的对角线和非对角线元素。因此,特征解耦方法本质上与其他两类方法非常相似,它们只是在损失函数中将正负样本以不同的形式组合在一起。将以上三类方法的梯度形式以统一的形式进行比较,作者发现它们都具有相似的结构:其中,正样本对应的特征是负样本特征的加权平均,它们是平衡两者的系数。这种相似的结构说明了三个Class方法非常紧密地工作。性能比较虽然结构相似,但不同方法的具体梯度形式还是有区别的,目标分支的类型和负样本集的构成也不同。本节将通过对比实验探讨影响最终性能的主要因素。梯度形式为了便于比较,作者首先对各种方法进行了简化和比较,最后是对不同方法进行比较。完整的实验结果如表1所示。表1不同类型方法的性能比较表1(ab)显示了对比学习方法的结果。为了保持公平比较,SimCLR使用动量编码器,在这种情况下它显示出与MoCo相同的性能。这里SimCLR只使用当前batch作为负样本集,而MoCo使用内存库作为负样本集,说明在适当的训练设置下,不需要大量的负样本。表1(c-e)显示了非对称网络方法的结果。由于带有动量编码器的SimSiam是BYOL,因此此处仅显示BYOL结果。表1(cd)分别是DirectPred形式的原始BYOL和BYOL。两者性能不相上下,这也与DirectPred的结论一致。表1(e)在不影响性能的情况下将正样本梯度替换为单位矩阵。因此,非对称网络法的梯度形式可以统一为表1(e)的形式。表1(f-j)显示了特征解耦方法的结果。对于BarlowTwins,Table1(g)将正梯度中的矩阵A替换为单位矩阵,Table1(h)将特征的batchnormalization替换为normalization,这些替换不会造成性能下降;对于VICReg,表1(j)去掉了梯度中的最后一项,同时加入归一化,对性能影响不大。最后对比表1(hj),它们之间唯一的区别是负样本系数的计算方法,但是性能上的差异很小,所以特征解耦方法的梯度形式可以统一为表中的形式1(j).最后,作者比较了三种方法的梯度,即表1(bej)中的结果。在梯度结构中,统一了正梯度的形式,平衡系数会通过搜索保持最优。唯一的区别是负梯度形式。实验结果表明,不同负梯度形式的性能非常接近。另外值得注意的是,表1(ej)中负样本的形式非常相似,不同的是表1(e)使用的是之前所有样本组成的负样本集,而表1(j)只使用了currentbatchset,这也说明负样本集的构建并不是自监督学习中最关键的因素。TargetBranchtype为了公平比较,作者对各种方法都使用了momentumencoder。下面我们来研究一下不同类型的目标分支对最终结果的影响。实验结果如表2所示。表2Targetbranchtype的影响如果targetbranch采用stop-gradient的类型,三类方法都表现出相似的性能,这与前面的结论是一致的;如果目标分支采用了momentum-encoder的类型,这三类方法都可以在之前的基础上提升2个点左右,这说明momentumencoder可以对不同的方法进行提升。此外,作者观察到在某些方法中只有正梯度使用了动量编码器的特征,因此他们尝试对三种方法仅在正梯度中使用动量编码器的特征。实验结果表明,这与对所有梯度使用动量编码器具有相似的性能。这说明对于自监督学习来说,一个更新缓慢的一致更新目标是非常重要的。最终方法基于上述统一框架,作者提出了一种简洁有效的自监督方法(UniGrad):其中是相关矩阵的移动平均。UniGrad本质上是表1(e)的梯度形式。此渐变不需要额外的内存库或设计额外的投影仪。实验表明,线性评估和迁移学习都可以达到SOTA实验性能。图2从几个指标的角度展示了不同方法的优化过程。可以看出,不同方法的优化曲线没有显着差异,这也说明该方法与之前的方法具有相似的工作机制。表3和表4显示了UniGrad的具体结果。UniGrad本身可以达到与之前方法相当的性能,并且可以简单地集成之前的数据增强方法来进一步提高性能。在更长轮次的训练中,UniGrad也能取得不错的表现。表3UniGrad结合数据增强方法的性能表4与之前方法在longrounds下的比较
