没有合适的资源?快使用搜索试试~ 我知道了~
9640×个训练自我监督视觉变形者的实证研究Xinlei Chen*Saining Xie*KaimingHe Facebook AI Research(FAIR)代码:https://github.com/facebookresearch/moco-v3摘要本文没有描述新颖的方法。相反,鉴于计算机视觉的最新进展,它研究了一个简单的,增量的,但必须知道的基线:视觉变换器(ViT)的自监督学习。虽然标准卷积网络的训练方法虽然ViT已经非常成熟和强大,但ViT的配方还有待建立,特别是在训练变得更具挑战性的自我监督场景中。在这项工作中,我们回到基础知识,并研究了几个基本组成部分的影响,用于训练自我监督的ViT。我们观察到不稳定性是降低准确性的主要问题我们发现,这些结果确实是部分失败的,他们可以得到改善时,培训更加稳定。我们在MoCo v3和其他几个自监督框架中对ViT结果进行了基准测试,并在各个方面进行了消融。我们讨论了目前的积极证据,以及挑战和开放的问题。我们希望这项工作将提供有用的数据点和经验,为今后的研究。1. 介绍无监督预训练彻底改变了自然语言处理(NLP)[36,15,37,4]。在计算机视觉中,无监督/自我监督的预训练范例在至少两个方面不同于它们的NLP对应物:(i)NLP中的学习器是掩蔽的自动编码器,而在视觉中,最近流行的选择是连体网络(例如,[20,10,18,7]);(ii)NLP中的骨干架构是自我注意力变换器[42],而在视觉中,常见的选择是卷积[27]-但非注意力-深度残差网络(ResNets)[21]。为了完成视觉自我监督学习的大图景,并缩小视觉和语言之间预训练方法的差距这项工作的重点是训练变形金刚与领先的自我监督框架的愿景。鉴于视觉变换器(ViT)的最新进展,该研究是一个简单的扩展[16]。与使用掩码自动编码训练自监督变压器的先前作品[9,16]相比,我们研究了基于Siamese网络的框架,包括MoCo [20]和* :同等贡献。MoCo v3ViT-BN-L/7304M81.0端到端微调:掩蔽块预测[16] ViT-B 86M 79.9†MoCo v3 ViT-B 86M 83.2MoCo v3 ViT-L 304M84.1表1. ImageNet分类中最先进的自监督变换器,通过线性探测(上图)或端到端微调(下图)进行评估。iGPT [9]和掩蔽块预测[16]都属于掩蔽自动编码范例。MoCo v3是一种对比学习方法,比较两种(224 224)作物。ViT-B、ViT-L、ViT-H是[16]中提出的视觉变换器。使用BatchNorm修改ViT-BN,†:在JFT-300 M中预先训练。其他[10,18,7]。与标准卷积网络不同,由于社区的持续努力,其训练实践已经得到了广泛的研究,ViT模型是新的,其配方尚未建立。在这项工作中,我们回到基础,研究训练深度神经网络的基本组成部分:批量大小、学习速率和优化器。我们发现,在各种情况下,不稳定性是影响自我监督ViT训练的主要问题。有趣的是,我们观察到不稳定的ViT训练可能不会导致灾难性的失败(例如,);相反,它会导致精度轻微下降(例如,1- 3%)。这样的退化程度可能不明显,除非有更稳定的对应物可用于比较。据我们所知,这种现象在训练卷积网络1的文献中是罕见的,并且我们相信这个问题及其隐藏的退化值得注意。为了证明不稳定性可能造成的危害,我们研究了一个简单的技巧,可以在实践中提高稳定性。基于对梯度变化的经验观察,我们在ViT中冻结补丁投影层,即,我们使用固定的随机片投影。我们的经验表明,这一招缓解了不稳定的问题,在几个sce-narios和一致地增加准确性。[1]另见相关讨论的后记。框架模型paramsacc.(%)线性探测:iGPT [9]iGPT-L1362M69.0iGPT [9]iGPT-XL6801M72.0MoCo v3维生素B86M76.7MoCo v3ViT-L304M77.6MoCo v3ViT-H632M78.1MoCo v3ViT-BN-H632M79.19641×个×个LΣ=−log。Q我们在各种情况下对自我监督ViT进行基准测试和消融。我们在几个自我监督的框架中提供ViT结果。我们对建筑设计进行了消融,并讨论了影响。此外,我们探索了扩大ViT模型,包括非平凡的ViT-Large和ViT-Huge [16] -后者比ResNet-50多40个计算[21]。基于这些实验结果,我们讨论了目前积极的证据以及挑战和开放的问题。我们报告说,与掩蔽自动编码相比,自监督变压器可以使用对比学习框架实现强大的结果(表1)。Transformer的这种此外,作为一个有希望的信号,我们更大的自监督ViT可以实现更好的准确性,而不像[16]中的ImageNet监督ViT,其准确性在变大时会降低。例如,对于非常大的ViT-Large,在某些情况下,我们的自我监督预训练可以优于其监督预训练对应的迁移学习。这呈现了需要自我监督预训练的概念验证场景此外,我们报告说,我们的自我监督ViT模型具有竞争力的结果与。现有技术中的大卷积ResNet [11,18]。一方面,这种比较显示了ViT的潜力,特别是考虑到它使用相对“较少的感应偏置”来实现这些结果另一方面,我们认为,可能有空间,自我监督的ViT模型,以进一步改进。作为一个示例,我们观察到,移除ViT中的位置嵌入仅使准确度降低很小的幅度。这表明自监督ViT可以在没有位置归纳偏差的情况下学习强表示,但这也意味着位置信息尚未得到充分利用。总之,我们认为,如果自我监督的变形金刚将缩小视觉和语言之间的预训练差距,那么这项研究中的证据,挑战和开放性问题值得了解我们希望我们的数据点和经验将有助于推动这一前沿。2. 相关工作自我监督视觉表征学习。 在com-方法表明,通过匹配正样本来学习不变特征是至关重要的。变压器. Transformer [42]最初是为了机器翻译而引入的,后来成为NLP [36,15,37,4]中的主要骨干。由于语言的非局部性和关系性,这种长距离的、自我关注的行为使Transformers成为一种有效的工具。人们一直在努力将Transformers推广到计算机视觉[43 , 5 , 38 , 48 , 6 , 16] 。最 近 关 于 VisionTransformers(ViT)[16]的工作极大地推动了这一前沿。ViT纯粹是基于Transformer的,而不是与非退化(即非11)卷积。这在很大程度上缩小了NLP和视觉之间的架构差距。ViT在监督学习中实现了令人信服的准确性,特别是在大规模数据和高容量模型的情况下。鉴于这些属性,我们相信ViT是计算机视觉中自我监督学习的一个必须研究的基线。自我监督的变形金刚视觉。在开创性的工作[9,16]中,训练视觉问题的自监督变换器通常遵循NLP [36,15]中的掩码自动编码范式(表1)。iGPT [9]掩蔽和重建像素,并且[16]中的ViT的自监督变体掩蔽和重建补丁。在这项工作中,我们专注于训练变形金刚的对比/连体范式,其中的损失是没有定义的重建,ING的输入。3. MoCo v3我们引入了一个“MoCo v3”的框架,方便我们的研究。MoCo v3是MoCo v12的增量改进[20,12],我们在简单性,准确性和可扩展性之间取得了更好的平衡。MoCo v3的伪代码在Alg中。1,接下来描述。作为惯例(例如,[20,10]),我们在随机数据增强下为每个图像取两个作物。它们由两个编码器fq和fk编码,输出向量为q和k。直观上,q的行为就像一个这被公式化为最小化对比损失函数[19]。我们采用InfoNCE的形式[33]:在计算机视觉中,对比学习[19]对于自我监督学习已经变得越来越成功,例如,[44、33、22、2、20、10]。方法论是学习代表-exp(q·k+/τ)exp(q·k+/τ)+exp(q·k−/τ)k−(一)吸引相似(阳性)样本并消除差异的选项这里k是f阴性样本。 来自con-+k−的表示trasive自我监督的预训练可以在某些任务中胜过他们的监督对手[20,10]。对比学习通常被实例化为一些形式的连体网络[3]。最近,一系列作品[18,7,13]保留了连体结构,但消除了负样本的要求。圆满成功之q 集合{k}由fk[2]我们认为,简单地将自我注意力与“回旋”进行比较是不精确的。卷积[27]根据定义有几个属性:重量共享,局部连接,平移等变。自注意块中的所有投影层都具有卷积的所有这些性质,并且等价于1×1卷积。自我注意力的对应物是非退化的(例如3×3)卷积。9642×个R50,800-ep线性加速[12]第十二话MoCo v2+[13]71.172.2MoCo v373.8算法1MoCo v3:类PyTorch伪代码50# f_q:编码器:骨干+ proj mlp + pred mlp # f_k:动量编码器:骨干+项目mlp# m:动量系数# tau:温度forxin loader:#使用N个样本x1,x2 = aug(x),aug(x)#增广0loss.backward()update(f_q)# optimizer update:f_qf_k = m* f_k +(1-m)*f_q#动量更新:f_k#对比损失defctr(q,k):logits = mm(q,k.t())# [N,N]对labels =range(N)#阳性在对角线上损失=CrossEntropyLoss(logits/tau,labels)返回2* tau*loss注:mm为矩阵乘法。k.t()是k预测头从f k中排除(因此动量更新)。从其它图像中提取,称为Qτ是l2归一化的q,k的温度超参数[44]。在[45,22,2,10]之后,在MoCo v3中,我们使用自然共存于同一批中的密钥。我们放弃内存队列[20],我们发现如果批足够大(例如,4096)。 通过这种简化,(1)中的对比损失可以通过几行代码来实现:参见Alg中的ctr(q,k)。1.一、我们采用对称损失[18,7,13]:ctr(q1,k2)+ctr(q2,k1)。我们的编码器fq由主干(例如,ResNet,ViT)、投影头[10]和额外预测头[18];编码器fk具有主干和投影头,但没有预测头。fk由fq[20]的移动平均值更新,不包括预测头。作为参考,我们使用ResNet-50(R50)检查MoCov3准确度(详见附录)。下表比较了ImageNet中的线性探测精度:这 里 的 改 进 主 要 是 由 于 额 外 的 预 测 头 和 大 批 量(4096)训练。4. 自我监督ViT训练的稳定性原则上,在对比/暹罗自监督框架中,用ViT主干替换ResNet主干是很简单的。但在实践中,我们遇到的一个主要挑战是训练的不稳定性我们观察到,不稳定性问题不能简单地反映精度数。事实上,正如我们将要展示的那样,这种训练为了揭示不稳定性,我们监测了kNN曲线[44](见附录)图1. 不同批量大小的训练曲线(MoCo v3,ViT-B/16,100-epoch ImageNet,AdamW,Ir=1. 0e-4 )。训练节中4.1、研究了基本因素对稳定性的影响。曲线表明训练可以是“部分成功的”,或者换句话说,“部分失败的”。节中4.2,我们探索一个简单的技巧,可以提高稳定性。结果,在各种情况下提高了精度4.1. 对基本因素的批量大小。[16]中的ViT模型在设计上计算量很大(见表2和3),大批量训练[17,46,47]是大型ViT模型的理想解决方案。在最近的自监督学习方法中,大批量也有利于准确性[10,18,7]。图1呈现了具有不同批量大小的训练曲线。一批1k和2k产生相当平滑的曲线,线性探测精度分别为71.5%和72.6%。在这种情况下,由于更多的阴性样品,较大的批次提高了准确度[20,10]。4k批次的曲线变得明显不稳定:参见图11中的1.一、它具有72.2%的线性探测精度。虽然这似乎是一个边际下降vs.对于2k批处理,其准确性受到不稳定性的损害,如我们将在下一小节中所示。6k批次的曲线具有更差的失效模式(图中的大凹陷)。①的人。我们假设训练部分重新启动并跳出当前的局部最优值,然后寻找新的轨迹。因此,训练不会发散,但准确性取决于本地重启的良好程度当这种部分失败发生时,它仍然提供了一个明显不错的结果(69.7%)。这种行为对探索性研究是有害的:不像灾难性故障很容易被注意到,小的退化可以被完全隐藏。我们还发现,轻微的不稳定性不会导致一个明显的大的变化。在我们的许多消融术中,在第二次试验中运行相同的配置通常会导致0.1- 0.3%的微小差异。这也使得难以注意到由不稳定性引起的潜在退化学习率。在实践中,当批量大小增加时,学习速率通常被缩放[26,17]。在本文的所有实验中,我们采用线 性 缩 放 规 则 [26 , 17] : 我 们 将 学 习 率 设 置 为lrBatchSize/256,其中lr是“基本”学习率。lr是被设置的超参数[20,10,18]。在图2中,我们研究了lr的影响。批次=1024批次=2048批次=4096批次=6144kNN精度q1,q2 = f_q(x1),f_q(x2)#查询:[N,C] each0历元100k1,k2 = f_k(x1),f_k(x2)# keys:[N,C] each批1024204840966144loss = ctr(q1,k2)+ ctr(q2,k1)线性加速71.572.672.269.796435000个时期1006000#iter。7000图4. 我们监控梯度幅度,显示为层的梯度中的我们观察到尖峰在第一层中较早发生,并且在最后一层中延迟数十次迭代。图2.不同学习率的训练曲线(MoCo v3,ViT-B/16,100-epoch ImageNet,AdamW,批次4096)。505000个时期10000个时期50100线性加速lr,×1e-43.071.65.072.56.070.98.066.5图3. LAMB优化器(MoCo v3,ViT-B/16,100-epochImageNet,wd=1e-3,批次4096)的训练曲线。00当lr较小时,训练更稳定,但容易欠拟合。在图2中,Ir=0。5e-4 差1.8%历元100精度比LR=1。0e-4 (70. 4vs. 72.2)。在这一制度下,精度由拟合vs. 不适合 火车-具有较大LR的ING变得较不稳定。图2示出Ir= l。5e-4用于此设置的曲线中有更多的倾角,其精度较低。在该方案中,准确度由稳定性决定。优化器默认情况下,我们使用AdamW [30]作为优化器,这是训练ViT模型的常见选择[16,41,35]。3另一方面,最近的自监督方法[10,18,7]基于LARS优化器[46]进行大批量训练。在图3中,我们研究了LAMB优化器[47],它是LARS的AdamW对应物。给定适当的学习率(lr=5e-4,图3),LAMB实现比AdamW稍好的准确度(72.5%)。但当lr大于最优值时,精度迅速下降。lr=6e-4 和8e-4的LAMB具有1.6%和6.0%的低准确度。有趣的是,训练曲线仍然很平滑,但在中间逐渐退化。我们假设,尽管LAMB可以避免梯度的突然变化,但不可靠梯度的负面影响会累积。在我们的探索中,我们发现,LAMB可以达到与AdamW相当的精度,如果适当地选择LR 但对lr的敏感性使其很难消融3在JAX的原始ViT [16]中,权重衰减是https://github.com/google/flax/blob/master/flax/optim/adam.py图5. 随机vs.学习的补丁投影(MoCo v3,ViT-B/16,100-epoch ImageNet,AdamW,批次4096)。顶部:Ir=1。0e-4 。底部:Ir=1。5e-4 。不同的架构设计而无需额外的LR搜索。因此,我们选择在本文的其他部分使用AdamW。4.2. 提高稳定性的技巧所有这些实验表明,不稳定性是一个主要问题。接下来,我们将描述一个简单的技巧,可以提高在我们的实验中的各种情况下的稳定性。在训练过程中,我们注意到梯度的突然变化(图1中的4)导致训练曲线出现通过比较所有层4). 基于这一观察,我们假设不稳定性发生在较浅的层。受此启发,我们探索在训练期间冻结补丁投影层。换句话说,我们使用固定的随机补丁投影层来嵌入补丁,这不是学习的。这可以通过在该层之后立即应用停止梯度操作来轻松完成。比较。 图5我们展示了MoCo v3的结果,其中具有可学习的vs.随机面片投影随机补丁投射可稳定训练,使训练更流畅、更出色lr=0。5e-4lr=1。0e-4lr=1。5e-4线性加速lr,×1e-40.570.41.072.21.571.7最后一层lr=3e-4lr=5e-4lr=6e-4lr=8e-4学习,lr=1。0e-4随机,lr=1。0e-4学习,lr=1。5e-4随机,lr=1。5e-4kNN精度学习补丁项目随机修补程序lr,×10−40.570.470.81.072.272.81.571.773.4kNN精度梯度,l∞-范数kNN精度kNN精度9644×个×个×× ×5000个时期500历元100如果lr太大,模型仍然可能不稳定。 第一层不可能是不稳定的根本原因;相反,该问题涉及所有层。第一层仅仅更容易单独处理,它是骨干中唯一的非变压器层。我们希望在今后的工作中看到更根本的解决办法。5. 实现细节本节介绍ViT+MoCo v3的详细信息。附录中描述了更多的微妙之处优化器默认情况下,我们使用AdamW [30]和批处理大小为4096 [10,18,7]。我们搜索lr和weight de-0 100SimCLR BYOL学习补丁项目69.3 69.7随机修补程序70.1 71.0图 6. 随 机 vs. 学 习 的 补 丁 投 影 ( ViT-B/16 , 100- epochImageNet,AdamW,批次4096)。顶部:SimCLR:Ir=2e-4,wd=0。1.一、底部:BYOL:Ir=1e-4,wd=0。03.曲线.这种稳定性有利于最终精度,在lr =1时将精度提高 1.7% 至 73.4% 。 5e-4 。 对 于 较 大 的 lr ( 0.4% 、0.6%、1.7%),改善更大。这种比较证实了训练不稳定性是影响准确性的主要问题。除了MoCo,我们发现其他相关方法[10,18,7]也可能不稳定。图6显示了SimCLR [10]和BYOL [18]中ViT的训练曲线。随机贴片投影提高了SimCLR和BYOL的稳定性,并将准确度提高了0.8%和1.3%。我们还观察到SwAV [7]的不稳定性问题,然而,当其不稳定时,损耗发散(NaN)。随机贴片投影通过在不发散的情况下实现相对较大的lr来帮助SwAV,并且当使用最大稳定lr时,将其准确度从65.8%提高到66.4%。总之,这种技巧在所有这些自我监督框架中都是有效的。我们还尝试了BatchNorm(BN)[24],WeightNorm(WN)[39]或补丁投影上的梯度剪辑我们观察到,可学习补丁投影层上的BN或WN没有改善不稳定性,并且产生类似的结果;如果给定足够小的阈值,则该层上的梯度剪辑是有用的,这在极端情况下变成冻结该层。讨论。有趣的观察是,不需要训练补片投影层。对于标准的维帖大小,补丁投影矩阵是完整的(768-d输出为3通道16 - 16补丁)或过完整。在这种情况下,随机投影应足以保留原始块的信息。我们注意到,冻结第一层不会改变架构,实际上它缩小了解决方案空间。这表明根本问题在于优化。这个技巧缓解了这个问题,但没有解决caywd基于100个epoch的结果,然后将其应用于更长的训练。我们采用40个epoch的学习率预热[17](按照这种长时间的预热有助于减轻不稳定性,尽管所有不稳定的结果已经在这种预热中了.预热后,Ir遵循余弦衰减时间表[29]。MLP头。投影头[10]是3层MLP,遵循[11]。预测头[18]是2层MLP。两个MLP的隐藏层都是4096-d,并且具有ReLU [31];两个MLP的输出层都是256-d,没有ReLU。在MoCo v3中,两个MLP中的所有层都具有BN [23],遵循SimCLR [10]。BY-OL/SwAV的MLP股骨头具有不同的BN设计(见附录)。损失我们通过常数2τ来缩放(1)中的对比度损失(参见Alg.1),在[18]这个比例是多余的,因为它可以通过调整lr和wd来吸收。但当lr和wd固定时,该尺度使其对τ值 我们设置τ =0。2[12]作为默认值。ViT架构。我们在[16]中密切关注设计。输入补丁大小是16 16或14 14('/16'或'/14'),并且在投影之后,对于224 224输入,位置嵌入被添加到序列中,并且我们在二维中使用正弦-余弦变体[42]。这个序列与一个可学习的类标记连接在一起。然后,序列按照[16]中的设计由Transformer块的堆栈[42]编码。在最后一个块之后(以及在最终LayerNorm [1]之后)的类令牌被视为骨干的输出,并且是MLP头的输入线性探测。按照惯例,我们通过线性探测来评估表示质量。在自监督预训练之后,我们移除MLP头部并在冻结特征上训练监督线性分类器。我们使用SGD优化器,批处理大小为4096,wd为0,并为每种情况扫描lr。我们在ImageNet训练集中训练这个监督分类器90个时期,只使用随机调整大小的裁剪和翻转增强。我们在验证集中评估单作物top-1的准确性。SimCLR:学习项目SimCLR:随机投影BYOL:学习项目。BYOL:随机投影kNN精度kNN精度9645×个×个·模型块昏暗头params模型MoCo v3SimCLRBYOLSwAVViT-小号123841222米R-50、800-ep73.870.474.371.8VIT基础[16]127681286米ViT-S,300-ep72.569.071.067.1[16]第十六话24102416304海里ViT-B,300-ep76.573.973.971.6[16]第十六话32 1280 16 632 M表4. ViT-S/16和ViT-B/16在不同的自我监督表2.我们实验中ViT模型的配置这里,“blocks”是Transformer块的数量,“dim”是所有块的输入/输出通道尺寸,并且“heads”是多头注意中的头的数量。MLP隐藏尺寸为4× dim.学习框架(ImageNet,线性探测)。其他框架的R-50结果来自[13]中的改进实施。为了进行公平的比较,所有图像都预先训练了两个224 224作物(多作物训练[7]可以改善结果,这超出了这项工作的重点)。76SimCLR74MoCo v3BYOL图7. 不同的自监督学习框架在R-50 [21] (x 轴 )和 ViT-B [16] (y轴)之间表现不同。的数字表3. ViT + MoCo v3的训练时间,每100个ImageNet-epochs,在我们的TensorFlow实现中。FLOPS数72SwAV70七零七二七四七六ImageNet线性探测精度来自表4。(在乘法-加法中)是每224 224作物,并且R50ResNet-50(4.1G)。6. 实验结果在本节中,我们将对自我监督的ViT进行基准测试和消融。我们在1.28M ImageNet训练集[14]上执行自监督训练,并通过线性探测进行评估。表2总结了我们研究的ViT配置。ViT-B/L/H遵循[16],ViT-S类似于[41]。我们在消融中默认使用ViT-B。训练时间。我们在TPU(v3)中训练我们的模型,这些TPU在Google Cloud Platform(GCP)中公开提供表3总结了训练时间(每100个时期)。100个时期需要2.1小时训练ViT-B,并且我们的消融通常每次需要6.3小时(300个时期)。这是一个有竞争力的性能,因为它使我们能够消除许多设计决策。TPU的实现也使得探索ViT-H模型成为可能,该模型使用512个TPU每100个epoch这是一个巨大的训练规模:对于300 epoch的ViT-H,这相当于625 TPU·天,或1.7 TPU年的训练。我们还使用PyTorch在GPU中验证了我们的模型。在128个 GPU中,ViT-B需要24小时。256个TPU中的2.1小时随着设备数量的增加,我们观察到TPU比GPU更有利地扩展。虽然进一步的工程优化可以加快我们的GPU系统,我们选择使用TPU系统的研究方便。6.1. 自监督学习框架我们在四个框架中对自监督ViT进行了基准测试:MoCo v3,SimCLR [10],BYOL [18]和SwAV [7]。我们在所有情况下使用相同的随机投影技巧。我们扫描lr和wd,以获得公平的比较。表4报告了ViT-S/16和ViT-B/16的结果MoCo v3在ViT上比其他框架具有更好的准确性。 这些方法之间的相对准确度是不同的。ResNet-50ViT-B 和 R50 之 间 的 差 异 : 参 见 图 7 。 MoCo v3 和SimCLR比R50更有利于ViT-B(在对角线上方)。6.2. ViT + MoCo v3接下来,我们消融ViT + MoCo v3系统的设计。我们在所有消融中使用随机贴片投影。位置嵌入。下表比较了位置嵌入的选择(我们的默认值是sin-cos):ViT-B,300-ep线性加速辛科斯76.5了解到76.1没有一74.9学习版工作得很好,但不比sin-cos好令人惊讶的是,即使没有位置嵌入,该模型也能正常工作(74.9%)。编码位置的能力仅贡献1.6%。我们认为,这一数据点揭示了当前模型的优势和局限性。从积极的方面来看,它表明该模型可以学习强表示,只是通过一组补丁,这是完全置换不变的。这类似于词袋模型[40]。该模型没有位置感应偏差。从消极的一面来看,它还表明模型没有很好地利用位置,并且对象的手势对表示的贡献相对较小。我们希望这一数据点将引起对未来研究的关注。类令牌。下表消除了类令牌[CLS]在ViT中的角色:如果未使用[CLS],则在最后一个块之后立即使用全局平 均 池 化 。 ViT 在 最 终 块 [16] 之 后 具 有 额 外 的LayerNorm(LN),并且如果我们保留该LN并移除[CLS],则结果要差得多(69.7%)。但是如果我们去除这个LN和[CLS],结果几乎不变(76.3%)。型号ViT-S/16ViT-B/16ViT-L/16ViT-FLOPs4.6克17.5克61.3 G166.7 Gvs.R501.1×15.0×4.3×40.7×TPUs小时256 1.2256 2.1256 6.1512 9.8ViT-BaseViT-B,300-ep线性加速含[CLS]不含[CLS]; LN+合并液不含[CLS];合并液76.569.776.39646×个这种比较表明,类标记对于系统的工作不是必需的。它还表明,标准化层的选择可以产生差异。MLP头中的BatchNorm。 与标准ResNets8180ViT-BN-B/77978R50-2xR50-2xR152R200-2xR101-2xViT-BN-L/7R152-2xR50-4xViT-LViT-BN-HR152-3xViT-BN-S/7R152-2x[21],默认情况下ViT模型没有BN,因此所有BN层都在MLP磁头中。下表比较关于VS头部不含BN77ViT-BR10176R50-2xR101-2x75R50R5074R152在移除BN时,我们必须将批量大小设置为2048,否则它不会收敛。去除BN使精度降低2.1%。尽管减少,这是一个完全无BN的系统。这个数据点表明,BN不是对比学习工作所必需的,但是BN的适当使用可以提高准确性。预测头。MoCo v3使用预测MLP头作为ViT-SR1017372R5071电话:+86-0512 - 8888888传真:+86-0512 -88888888参数(M)500ResNet,SimCLR v2SK-ResNet、SimCLRv2 ResNet、BYOLViT、MoCo v3ViT-BN、MoCov3六百七百800根据[18]。下表对该设计进行了消融:ViT-B,300-ep w/pred.MLP线性加速76.5无预测值MLP75.5去除预测MLP头部具有75.5%的良好结果。 虽然这种额外的头部提高了准确性,但MoCo作为对比方法不需要预测器MLP工作,与[18,13]中的无负方法不同。动量编码器下表比较了动量编码器中的动量系数(m):ViT-B,300-epm=0线性加速74.3m=0。975.6m =0。99m =0。99976.575.0最佳值为m=0。99(我们的默认值)。m=0的情况类似于SimCLR(加上键上的预测头和停止梯度),并且其74.3%的准确性类似于SimCLR动量编码器的使用导致2.2%的增加。训练长度。在下表中,我们报告了ViT-S/B+ MoCo v3与培训时间:300-ep600-epViT-S/1672.573.4ViT-B/1676.576.7较小的ViT-S享受更长的训练时间,并且在扩展到600个epoch时提高了0.9%。这类似于R50的行为,R50通常被训练了800个epoch [10]。但训练时间越长,ViT-B的增益越小。基于该消融,我们训练较大的ViT-L/H用于接下来呈现的300个时期(表1)。6.3. 与现有技术的自 我 监 督 的 变 形 金 刚 表 11 呈 现 了 不 同 ViT 模 型 的MoCov3结果,并与最先进的自监督变压器进行了比较。 两种iGPT[9]和[16]中的掩蔽块预测可以归类为掩蔽自动编码范例(例如,GPT [36]图8. 与最先进的大ResNets的比较,以参数-vs.-准确性权衡所有条目都用两个224 224作物进行预训练,并通过线性探测进行评估。SimCLR v2结果来自[11]中的表1,BYOL结果来自[18]中的表1。[15]《易经》在相同的线性探测协议和训练数据下,我们基于MoCo的ViT具有比iGPT更高的中的遮罩面片预测[16]在JFT-300 M上进行了预训练,并在ImageNet中进行了端到端的微调,我们将其作为参考。当模型更大时,我们的自监督ViT模型具有更高的准确性。这与[16]中的监督结果形成对比,其中在ImageNet-1 k/21 k中预训练时,ViT-L的准确率低于实际上,对于ViT-L,我们使用线性探测的自监督预训练(77.6%)优于监督对应物。[16](76.53%)在ImageNet-1 k中训练时。4这些比较表明,自监督学习作为通用表示学习的工具不太容易过度拟合。与大型ResNets的比较。5在图8中,我们与SimCLR v2[11]和BYOL [18]报告的最先进的大型ResNet进行了比较。我们注意到SimCLR v2和BYOL都使用动量编码器。我们的基线ViT MoCo(“ViT,MoCo v3”的曲线SimCLR v2与SK-ResNet(选择性内核[28],注意力的一种形式)具有更高的包络。BYOL也具有更高的包络,具有更宽的ResNet(1-4×),并且具有更深的ResNet(R200-2×)。4更强的正则化可以减少监督ViT的过度拟合[41],尽管正则化非常大的ViT-L/H还有待探索。5变压器[42]通过设计由残差块[21]组成,因此是残差网络的一种形式。在“ResNet”,准确地说,术语“ResNet”是指具有非退化(例如,3×3)卷积。ViT-B,300-ep线性加速头部,带BN76.5不带BN的磁头74.4线性探测精度(%)MoCo v3,带ViT-SViT基线73.4ViT-BN 74.1ViT-BN/7 77.0ViT-B76.777.5ViT-L77.678.6ViT-H78.179.1-9647×个×个×个×个预训练CIFAR-10 [25]ViT-B ViT-L ViT-HCIFAR-100 [25]ViT-B ViT-L ViT-H牛津鲜花-102ViT-B ViT-L[32个]ViT-H牛津-IIIT-宠物ViT-B ViT-L[34个]ViT-H随机初始化77.8 77.175.948.5 48.348.054.4 54.352.840.1 42.840.4ImNet监督[16]98.1 97.9n/a87.1 86.4n/a89.5 89.7n/a93.8 93.6n/aImNet自支持,MoCo v398.9↑0.8 99.1↑1.299.190.5↑ 3.4 91.1↑4.791.297.7↑ 8.2 98.6↑8.998.893.2↓ 0.6 93.7↑0.194.2表6. 四个数据集中的迁移学习准确率(%)。 所有条目都是端到端的微调[16]。预培训在ImageNet-1 k训练集。型号为ViT-B/16、ViT-L/16和ViT-H/14。ImageNet监督的预训练结果来自[16]中的表3。箭头指示相对于温度的变化。ImageNet监督的对应物。在300个历元时比DeiT的81.8%要好此外,当仅针对100个时期进行微调时,MoCo v3具有84.1%的ViT-L,其中丢弃路径速率为0.5。这个简短的时间表证明了MoCo预处理的有效性表5.ImageNet-1 k中的端到端微调精度(%)我们注意到,这种比较涉及许多选择的组合。作为一 个 示 例 , [16] 中 的 默 认 ViT 主 干 使 用 LayerNorm(LN),而默认ResNet [21]使用BatchNorm(BN)。这些设计选择可能导致系统性差距。在我们的初步实验中,我们探索在ViT骨架的MLP块中用BN替换LN排除自我注意力块)。6我们简单地将其称为它导致持续改善<1%(八)。在iGPT [9]中,可以通过在像素域中使用更长的序列来提高精度。在这里,我们通过将补丁大小减小到7× 7(图1中的“/7”)来探索更长的序列。(八)。这将保持模型大小不变,但将FLOP增加到 6。它可以提高精度2- 3%。 在[8]中也观察到使用小贴片的增益。MoCo v3利用ViT-BN-L/7实现81.0%。7作为比较,在线性探测协议下,SimCLR v2(SK-ResNet 152 -3)的先前最佳结果为79.8%,BYOL(ResNet 200 -2)为79.6%。讨论虽然更大的自我监督ViT可以实现更好的准确性,但结果是饱和的。这与NLP中的趋势不同,在NLP中,更大的Transformer学习更好的表示(例如[4])。一个潜在的解决方案是使用更多的数据。饱和也可以由现有的基于实例的借口任务的有限功率引起[44]。可能期望设计更困难的借口任务。我们的自监督ViT模型与大型卷积ResNets竞争。这表明ViT可以学习具有“更少归纳偏差”的强表示然而,我们还发现,即使去除唯一的位置感应偏差(位置嵌入),准确度也只降低了一点,这表明在我们的方法中,ViT比卷积网络更少依赖于位置信息端到端微调。表5报告了端到端微调结果。我们使用DeiT代码库[41]及其所有默认设置,除非指定。MoCov3在150次迭代微调下使用ViT-B实现了83.2%,基本上比ViT-B更好。6我们正试图用ViT主干中的BN替换每个LN。在初步实验中,这样做会导致收敛问题。7ViT-BN-H/7在我们未优化的实现中内存不足训练我们还发现DeiT-L在其故障设置下发散,并且可能需要不同的解决方案。6.4. 迁移学习在表6中,我们评估了迁移学习。我们研究了四个下游数据集,如[16]所示我们端到端地微调模型,也遵循[16]。当模型大小从ViT-B增加到ViT-L时,我们的自监督ViT具有更好的迁移学习准确性作为比较,[16]中的ImageNet监督的ViT从ViT-L开始变得饱和或过拟合。我们的自我监督ViT在这四个数据集中的三个数据集中取得了比ImageNet监督的结果更好的在这些小数据集中从头开始训练大ViT模型时,过拟合更加突出:准确度通常随着ViT的增大而降低
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 批量文件重命名神器:HaoZipRename使用技巧
- 简洁注册登录界面设计与代码实现
- 掌握Python字符串处理与正则表达式技巧
- YOLOv5模块改进 - C3与RFAConv融合增强空间特征
- 基于EasyX的C语言打字小游戏开发教程
- 前端项目作业资源包:完整可复现的开发经验分享
- 三菱PLC与组态王实现加热炉温度智能控制
- 使用Go语言通过Consul实现Prometheus监控服务自动注册
- 深入解析Python进程与线程的并发机制
- 小波神经网络均衡算法:MATLAB仿真及信道模型对比
- PHP 8.3 中文版官方手册(CHM格式)
- SSM框架+Layuimini的酒店管理系统开发教程
- 基于SpringBoot和Vue的招聘平台完整设计与实现教程
- 移动商品推荐系统:APP设计与实现
- JAVA代码生成器:一站式后台系统快速搭建解决方案
- JSP驾校预约管理系统设计与SSM框架结合案例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功