点击下方卡片,关注「集智书童」公众号
现代计算机视觉 Backbone 网络(例如,在ImageNet-1K/22K上学习的视觉Transformer)的卓越性能通常伴随着昂贵的训练过程。本研究通过将课程学习的理念推广到其原始公式之外,即使用由易到难的数据训练模型,来对此问题做出贡献。具体来说,作者将训练课程重新定义为一种软选择函数,它可以在训练过程中逐步揭示每个示例中越来越难的模式,而不是进行由易到难的样本选择。
作者的工作受到视觉 Backbone 网络学习动态的一个有趣观察的启发:在训练的早期阶段,模型主要学会识别数据中一些“容易学习”的判别模式。当通过频率和空间域观察这些模式时,它们包含了低频成分,以及没有失真或数据增强的自然图像内容。
基于这些发现,作者提出了一个课程,让模型在每一个学习阶段都利用所有训练数据,但首先引入每个示例中“容易学习”的模式,随着训练的进行,逐渐引入更难的模式。为了以计算效率高的方式实现这个想法,作者在输入的傅里叶频谱中引入了裁剪操作,使模型能够仅从低频成分学习。然后作者展示了通过调节数据增强的强度,可以容易地暴露自然图像的内容。
最后,作者将这两个方面整合在一起,并通过提出定制搜索算法来设计课程学习计划。此外,作者还提出了在具有挑战性的实际场景中(如大规模并行训练、有限的输入/输出或数据处理速度)高效部署作者方法的有用技术。作者提出的方法EfficientTrain++简单、通用,但出奇地有效。
作为一种现成的方案,它在不牺牲准确性的情况下,将各种流行模型(例如,ResNet、ConvNext、DeiT、PVT、Swin、CSWi和CAFormer)在ImageNet-1K/22K上的训练时间减少了。
它还在自监督学习(例如,MAE)中显示出有效性。代码可在以下网址获取:https://github.com/LeapLabTHU/EfficientTrain。
1 Introduction
现代视觉 Backbone 网络的显著成功在很大程度上是由探索大型模型在全面、大规模基准数据集上的兴趣所推动的。特别是,最近引入的视觉Transformer(ViTs)将模型参数的数量增加到超过18亿,同时将训练数据扩展到30亿样本[3, 5]。虽然这促进了最先进准确度的获得,但这种大型模型和高数据量的训练过程既耗时又昂贵。例如,在JFT-300M上训练ViT-H/14需要2,500个TPUv3核心日[3],这对于学术界和工业界的实践者来说可能负担不起。此外,训练深度学习模型所消耗的巨大电力将导致显著的碳排放[6, 7]。
由于经济和环境问题的考虑,对于降低现代深度网络训练成本的需求日益增长。
在本文中,作者通过重新审视课程学习[8]的概念,为这一问题做出了贡献,该概念揭示了可以通过从给定任务或某些较简单的子任务开始,逐步提高难度 Level 来高效地训练模型。大多数现有研究工作通过在训练过程中逐步引入从简单到困难示例来实现这一点。然而,获得轻量级且可泛化的难度度量通常是困难的。
总的来说,这些方法没有表现出成为现代视觉 Backbone 网络普遍高效训练技术的潜力。
与之前的工作相比,本文寻求一种简单但广泛适用的有效学习方法,具有广泛实施的可能。为了实现这一目标,作者的研究深入到课程学习的泛化中。具体来说,作者将训练课程的概念从仅区分“简单”和“困难”示例扩展,并采用更灵活的假设,即每个训练样本的判别特征既包括“容易学习”的模式也包括“难以学习”的模式。作者不是对每个示例是否应出现在训练集中做出“离散”决策,而是认为建立一个“连续”函数,该函数能够自适应地从每个示例中提取更简单、更易于学习的判别模式更为合适。换句话说,课程可以在学习的任何阶段利用所有示例,但在学习初期应该消除输入中相对更困难或更复杂的模式。作者的想法在图1中进行了说明。
基于作者的假设,作者推导出一个简单却出奇有效的算法。作者首先证明,“更容易学习”的模式包含了图像的低频成分。作者进一步展示,通过在频域中引入裁剪操作,可以实现这些成分的无损提取。这个操作不仅保留了所有低频信息,还为模型训练生成了较小的输入尺寸。如果在训练的早期阶段触发此操作,可以显著降低训练的整体计算/时间成本,而模型的最终性能不会受到影响。此外,作者还表明,经过大量数据增强之前的信息更容易学习,因此,从较弱的数据增强技术开始训练是有益的。最后,这些理论和实验洞见通过利用贪心搜索算法被整合到一个统一的“_EfficientTrain_”学习课程中。
在作者之前的探索基础上,作者进一步引入了增强版的EfficientTrain++方法,该方法从两个方面改进了EfficientTrain。首先,作者提出了一种先进的搜索算法,它不仅大大降低了求解课程学习计划所需的成本,而且有助于生成一个泛化能力强且更有效的最终课程。其次,作者提出了一种高效的低频下采样操作,旨在减轻由EfficientTrain引起的高CPU-GPU输入/输出(I/O)成本问题。除了这些方法论上的进步,作者还为EfficientTrain++开发了两种实现技术,它们对于实现更显著的实践训练加速非常有用,例如,通过1) 促进使用越来越多GPU(例如32或64个GPU)的高效大规模并行训练,以及2) 减轻CPU/内存的数据预处理负担。
作者方法最吸引人的优点之一可能是其简单性和通用性。作者的方法可以方便地应用于大多数深度网络,_无需调整额外的超参数_,却能显著提高它们的训练效率。实证研究表明,在ImageNet-1K/22K [17]上的有监督学习中,EfficientTrain++将各种视觉 Backbone 网(例如ResNet [1],ConvNeXt [18],DeiT [19],PVT [20],Swin [4],CSWi [21],和CAFormer [22])的训练成本降低了,同时与 Baseline 相比实现了具有竞争力的或更好的性能。重要的是,作者的方法对于自监督学习(例如MAE [23])也同样有效。
本文的部分成果最初在会议版本 [24] 中发表。然而,本文在作者早期工作的基础上在几个重要方面进行了扩展:
提出了一种改进的EfficientTrain++方法。作者引入了一种计算约束的顺序搜索算法来解决训练课程问题(第5.1节),该算法不仅效率显著提高,而且在课程结果方面也优于EfficientTrain中的贪心搜索算法。此外,作者提出了一种高效的低频下采样操作(第5.2节),有效地解决了由EfficientTrain引起的高CPU-GPU I/O成本问题。作者进行了新的实验来研究这两个组件的有效性(表8、IX、XIV、XIV、XIV)。
- 作者为EfficientTrain++开发了两种实现技术(第5.3节)。第一种技术提高了EfficientTrain++在实际训练效率方面随用于训练的GPU数量增加的可扩展性。第二种技术可以显著降低CPU/内存的数据预处理负载,同时保持竞争性能。已经提供了广泛的实验证据来证明它们的实用性(表14、XIV)。
- 作者通过大量评估EfficientTrain++改进了实验,例如,在ImageNet-1K上进行有监督学习(表7、IX和图7)、ImageNet-22K预训练(表12)、自监督学习(表14)、迁移学习(表14、XIV、XIV)以及与现有方法的比较(表12)。此外,还增加了新的分析调查(表12、XII)。这些综合结果表明,EfficientTrain++超越了普通的EfficientTrain和其他竞争 Baseline ,达到了最先进的训练效率。
2 Related Work
课程学习 是一种受人类课程中示例有序学习启发而来的训练范式。这个想法在从简单数据到复杂数据训练深度网络的背景下被广泛探索。通常,会部署一个预定义的或自动学习的难度度量来区分简单样本和复杂样本,同时定义一个调度器来确定何时以及如何引入更复杂的训练数据。
例如,DIHCL [38]和InfoBatch [39]通过利用每个样本的在线训练损失或模型输出的变化来确定其难度。MCL [40]通过重复解决联合连续-离散极大极小优化问题,自适应地选择一系列训练子集,其目标结合了反映训练集硬度的连续训练损失和促进选定子集多样性的离散子模促进者。CurriculumNet [41]设计了一个课程,通过训练一个初始模型获取特征空间中的分布密度来衡量不同数据的难度。
作者的工作基于与这些方法相似的“从小开始”的精神,但作者重新定义了训练课程为一个软选择函数,该函数逐渐揭示每个示例中越来越复杂的模式,而不是进行简单到复杂的 数据选择。
作者的工作还与平滑课程、课程丢弃和标签相似性课程[44]相关,这些方法并没有执行示例选择。然而,作者的方法与它们正交,因为作者建议通过修改模型输入来降低训练成本。
相比之下,它们专注于在训练期间正则化深度特征(例如,通过抗锯齿平滑[42]和特征丢弃[43]),或者逐步配置学习目标(例如,通过计算标签词嵌入的相似性[44])。
高效的渐进学习算法。 人们观察到,在早期的学习阶段,较小规模的网络通常训练起来更高效。更具体地说,以前的研究揭示了深度网络可以通过在训练过程中逐渐增加模型大小来高效训练,例如,逐渐增加的层数,网络宽度的增长[52],或者网络连接拓扑的动态变化。
例如,AutoProg [7]和预算型ViT [55]证明了通过在训练过程中逐步增加网络深度或宽度可以有效提高视觉Transformer的训练效率。LipGrow [56]从常微分方程的角度对网络增长进行了理论分析,并提出了一种新的性能度量,为残差网络提供了一个自适应训练算法,该算法自动增加深度并加速训练。此外,预算训练算法[57]显示,适当配置学习率计划对高效训练是有益的。总的来说,作者的工作与这些努力是正交的,因为作者不修改网络架构或学习率。
此外,一些研究[58, 59, 7]提出降低早期训练输入的采样率以节省训练成本。作者的工作与它们在几个重要方面有所不同:1) EfficientTrain++源于广义课程学习的不同动机,基于此作者提出了一个受频率域启发的全新分析;2)作者在频率域中引入了裁剪操作,这不仅在理论上与图像下采样不同(见:命题1),而且在实证上也优于它(见:表19(b));3)作者提出了一种新颖的高效搜索算法(见:算法2)并设计了EfficientTrain++课程,在各种最先进的模型上实现了比现有工作显著更高的训练效率(见:表11)。另外,FixRes [60]显示,通过固定训练与测试输入规模之间的不一致,较小的训练分辨率可以提高准确性。然而,作者在最终学习阶段采用标准分辨率,因此并未借鉴FixRes的提高。作者的方法实际上与FixRes(见:表11)是正交的。
AutoProg [7]提出了一种新颖有效的算法,在每次训练阶段微调模型以搜索适当的渐进学习策略。作者的工作与AutoProg [7]在这一范式上是相关的。然而,作者引入了一种计算约束搜索的新公式(即,在固定比例的训练成本节约下最大化验证准确性;见:5.1节),导致了一个简单的搜索目标以及一个显著更好的训练课程。关于这一问题的分析在表21中给出。
基于频率的深度网络分析。 作者发现深度网络倾向于首先捕捉低频成分,这与[61]的观点一致,但[61]中的讨论主要关注ConvNets的鲁棒性,并且主要基于一些小型模型和小型数据集。在这方面,一些现有工作也在探索在频率域分解模型的输入[62, 63, 64],以理解或提高网络的鲁棒性。相比之下,作者的目标是提高现代深度视觉 Backbone 网络的训练效率。
3 Generalized Curriculum Learning
如前人研究所示,机器学习算法通常从“从小开始”的策略中受益,即首先学习任务中某些较简单的内容,然后逐步提高难度[25, 26, 8]。这种思想的主体实现是课程学习,建议在训练过程中逐渐引入更难的例子[9, 10, 12]。具体来说,在训练过程之上定义了一个课程,以确定在给定时期是否应该利用每个样本(图1(a))。
关于样本级课程学习的局限性。 尽管从样本级制度的角度对课程学习进行了广泛探索,但其广泛应用通常受到两个主要问题的限制。首先,区分“较易”和“较难”训练数据并非易事。这通常需要部署额外的深度网络作为“教师”或利用专门的自动学习方法[11, 12, 14, 16, 27]。由此产生的实现复杂性和总体计算成本增加是关于提高训练效率的值得注意的弱点。第二,难以获得一个原则性方法,该方法指定在学习的早期阶段应该关注哪些例子。实际上,“从易到难”的策略并不总是有帮助[9]。难以学习的样本可能包含更多信息,在许多情况下强调它们可能是有益的,有时甚至导致“从难到易”的反课程。
作者的工作受到以上两个问题的启发。以下,作者首先提出了一个关于课程学习的泛化假设,旨在解决第二个问题。然后作者证明,作者想法的一个实现自然解决了第一个问题。
泛化的课程学习。 作者认为,简单地衡量训练样本的容易程度往往是模糊的,可能不足以反映样本对学习过程的影响。如前所述,即使是困难的例子也可能提供有益的信息来指导训练,而且它们不一定需要在容易的例子之后引入。为此,作者假设每个训练样本(无论是“较易”还是“较难”)都包含了易于学习或更易获取的模式,以及某些深度网络可能难以捕捉的困难判别信息。理想情况下,课程应该是训练过程之上的连续函数,它从关注输入的“最易”模式开始,而随着学习的进展逐渐引入“较难学习”的模式。
图1(b)给出了一个正式的说明。任何输入数据将在训练时期()的条件变换函数处理后被送入模型,其中被设计用来动态地过滤掉训练数据中过于困难和难以学习的内容。作者总是让。值得注意的是,作者的方法可以看作是样本级课程学习的一种泛化形式。通过设置,它简化为样本选择。
概览。 在本文的其余部分,作者将展示,根据作者的假设得出的算法显著提高了课程学习的实现效率和泛化能力。作者将证明,一个由人类预定义的零成本标准能够有效地衡量图像中不同模式的难度水平。基于这样的简单标准,即使是引入“从易到难”模式的惊人直接实现,也能在现代视觉 Backbone 网络的训练效率上带来显著和一致的改进。
4 The EfficientTrain Approach
为了根据作者之前提出的假设获得训练课程,作者需要解决两个挑战:
- 识别“容易学习”的模式并设计转换函数来提取它们;
- 建立一个课程学习计划,以在训练过程中动态执行这些转换。
本节将展示在频率域和空间域中可以很容易地为1) 找到一个合适的转换,而2) 可以通过贪心搜索算法来解决。
基于图像的数据自然可以在频域中进行分解[75, 76, 77, 78]。在本小节中,作者揭示图像中较低频率组件的图案,描述平滑变化的内容,相对容易被网络学习识别。
对低通滤波输入数据的消融研究。 作者首先考虑对所使用数据进行低通滤波的消融研究。
如图2(a)所示,作者将图像映射到最低频率在中心的傅里叶频谱,将中心圆圈(半径:)外的所有组件设为零,并将频谱映射回像素空间。图2(b)说明了的效果。
图3展示了在低通滤波数据上准确度与训练周期的曲线。这里训练和验证数据都通过滤波器处理,以确保与独立同分布假设的兼容性。
首先捕捉到较低频率的组件。 图3中的模型被要求仅利用输入的较低频率组件。然而,出现了一个吸引人的现象:在训练开始时,它们的训练过程与原始 Baseline 几乎相同。尽管 Baseline 最终表现更佳,但这种趋势是从训练过程的中途开始的,而不是一开始。换句话说,即使消除了图像的较高频率组件,早期周期的学习行为仍然不变。此外,考虑增加滤波器带宽,它从最低频率开始保留越来越多的图像信息。在 Baseline 与低通滤波数据上训练过程的分离点逐渐向训练末期移动。为了解释这些观察结果,作者假设,在自然学习过程中,输入图像同时包含较低和较高频率信息时,模型倾向于首先学习捕捉较低频率组件,而较高频率信息在此基础上逐渐被利用。
更多证据。 作者的假设可以通过一个良好控制的实验进一步证实。考虑使用原始图像训练一个模型,其中较低/较高频率组件同时提供。在图4中,作者评估了所有中间预训练权重在不同带宽的低通滤波验证集上的表现。显然,在早期周期,仅利用低通滤波的验证数据并不会降低准确度。这一现象表明,即使在训练过程中模型始终可以访问较高频率组件,学习过程还是从关注较低频率信息开始的。此外,在表1中,作者比较了中间预训练权重在低/高通滤波验证集上的准确度。在早期训练阶段,低通滤波验证集上的准确度增长得更快,尽管两个最终的准确度相同。
基于频率的课程设计。 回到第3节的假设,作者已经展示较低频率组件自然会被更早地捕捉到。因此,作者可以直接考虑它们作为一种“更容易学习”的模式。这就引出一个问题:作者能否设计一个训练课程,该课程从仅向模型提供较低频率信息开始,然后逐渐引入较高频率组件?作者在表2中调查了这个想法,其中在开始的几个训练周期内仅在训练数据上执行低通滤波。剩余的训练过程保持不变。
高效地从低频信息中学习。 乍一看,表2的结果可能不那么引人注目,即通过在早期阶段用适当配置的低通滤波器处理图像,准确度只是适度提高。然而,一个重要的观察值得注意:即使在整个训练过程的50-75%中使用激进滤波(例如,_),模型的最终准确度仍可以得到很大保留。这种现象将作者的注意力转向了训练效率。在早期的学习阶段,仅用低频组件来训练模型是无害的。这些组件只包含了原始输入图像中所有信息的一个选定子集。那么,作者能否以比处理原始输入更低的计算成本使模型高效地从它们中学习呢?事实上,这个想法是可行的,作者至少有两种方法。
-
下采样 。用图像下采样近似表2中的低通滤波可能是一个直接的解决方案。下采样保留了大部分低频信息,同时使模型处理输入的计算成本成二次方地节省[79, 80, 81]。然而,这并不是一个专门用于提取低频组件的操作。从理论上讲,它也保留了一些高频组件(参见:命题1)。从经验上,作者观察到这个问题会降低性能(参见:表2 (b))。
-
低频裁剪 (见图5)。作者提出了一个更精确的方法,即提取所有的低频信息。考虑将一个图像通过2D离散傅里叶变换(DFT)映射到频域,得到一个的傅里叶频谱,其中中心位置的值表示最低频率组件的强度。远离中心的位置对应于更高频率。作者从频谱中心裁剪出一个的 Patch ,其中是窗口大小()。由于 patch="" 仍然是中心对称的,作者可以用逆2d="" dft将其映射回像素空间,得到一个的新图像,即:<="" p="">
其中、和分别表示2D DFT、逆2D DFT和中心裁剪。在GPU上完成等式(1)的计算或时间成本是可以忽略不计的。
值得注意的是,实现了对低频组件的无损提取,同时严格消除了高频部分。因此,在早期的训练阶段将输入模型可以提供绝大多数有用的信息,以至于最终准确度将受到最小影响甚至不受影响。相比之下,重要的是,由于的输入尺寸减小,模型处理的计算成本可以大幅节省,从而产生了一个更加高效的训练过程。
A Unified Training Curriculum
作者最终将第4.1节和第4.2节中提出的技术进行整合,并设计了一个统一的高效训练课程。具体来说,作者首先将RandAug的幅度设置为训练周期的线性函数:,其他数据增强技术保持不变。尽管这个设置很简单,但它带来了稳定且显著的实证改进。注意,作者采用,这是常见的做法。
然后,作者利用贪心搜索算法确定训练期间的时间表(即低频裁剪的带宽)。如算法1所示,作者将训练过程划分为几个阶段,并为每个阶段求解的值。该算法从最后一个阶段开始,在不超过 Baseline (使用固定训练)性能的约束下最小化。在作者的实现中,作者只执行一次算法1。作者在标准300周期训练设置[4]下的ImageNet-1K上针对Swin-Tiny[4]获得了一个时间表,并直接将此时间表用于其他模型或其他训练设置。
根据上述流程,作者在表5中提出了最终的学习课程。作者将其称为_EfficientTrain_。值得注意的是,尽管EfficientTrain很简单,但它具有很好的泛化性,效果惊人。在针对大型自然图像数据库(例如,ImageNet-1K/22K[17])训练或预训练视觉 Backbone 网络的情况下,EfficientTrain可以直接应用于最先进的深度网络_无需额外的超参数调整_,显著提高它们的训练效率。这些收益在各种网络架构、不同的训练计算预算、监督/自监督学习算法以及不同数量的训练数据中都是一致的。
5 EfficientTrain++
在本节中,作者提出了一个增强的_EfficientTrain++_方法。EfficientTrain++从两个方面改进了原始的EfficientTrain,即:1)节省执行算法1的非平凡计算成本,以及2)减少由低频裁剪操作引起的CPU-GPU输入/输出(I/O)成本增加。
作者通过引入一个低成本算法来确定B的调度(第5.1节),以及一个高效低频下采样操作(第5.2节)来解决这些问题。
除了这些方法上的创新,作者进一步为EfficientTrain++提出了两种简单但有效的实现技术(第5.3节)。这些技术都不是作者方法的必备组成部分,但采用它们可以使EfficientTrain++实现更显著的实践训练加速,例如,通过1)充分利用更多GPU进行大规模并行训练,以及2)减少CPU/内存的数据预处理负载。
Computational-constrained Sequential Searching
算法1背后的基本逻辑是简单的。考虑了一个受约束的优化问题。约束是不降低模型的最终准确性,而优化目标是尽量减少训练成本。作者分多个步骤解决这个问题(算法1,第5-7行),在每一步尽量减少尽可能多的训练成本。
算法1的效率问题。 然而,算法1存在计算成本高的问题。首先,将最终准确性视为约束条件。因此,对于任何可能的组合,作者需要将模型训练到收敛,获得最终的验证准确性,并验证是否满足约束。其次,这种验证总是需要从零开始训练模型, _即_,由于作者从最后一个训练阶段解决到第一个阶段的值,作者需要在执行算法1的第6行时更改某些训练初期的(_即_,改变)。通常,假设作者有个训练阶段和个的候选值。执行算法1将从头开始训练模型到收敛大约次,这可能会带来不小的计算和时间成本。尽管这个缺点并不妨碍直接利用算法1产生的课程作为一个现成的广泛适用的有效训练技术,但算法1的效率低下可能会阻碍未来的工作,例如,设计新的广义课程学习方法的定制课程或其他相关方法。
一种更高效的算法来解决课程问题。 鉴于上述分析,作者提出了一种新的算法来确定课程中的时间表,如算法2所示。这个新方法不仅比算法1更高效,而且在课程结果方面也优于算法1。具体来说,算法2引入了两项主要创新:
- 新的公式:计算约束搜索。 作者考虑了一个与算法1不同的受约束优化问题。约束是与 Baseline 相比节省预定义比例的训练成本(在算法2中由指定),而优化目标是最大化最终准确性。与算法1类似,作者将训练过程划分为个阶段,并为每个阶段求解一个值。然而,这里作者将总训练成本的分配给每个阶段,然后在此固定训练预算下同时改变每个阶段的值和训练步数。也就是说,给定一个预定义的批量大小,当相对较小时,模型处理一个训练数据小批量的成本是小的,作者使用更多数据小批量更新模型更多次,但总计算量保持不变。相比之下,当训练阶段的较大时,由于训练预算是固定的,需要相对减少模型更新次数。注意,每个训练阶段的学习率时间表始终保持不变。
- 执行顺序搜索。 作者从第一个训练阶段解决到最后一个阶段,其中任何阶段的解决都是基于前一个阶段的预训练权重。具体来说,给定一个训练阶段,作者从上一个预训练权重开始,分别使用几个候选值执行它,并用原始图像()对这些获得的模型进行小数量轮次的微调(算法2中的)。作者通过比较这些微调模型的验证准确性来选择最佳的,作者发现这是反映不同对最终准确性影响的有效代理。
在作者的实现中,算法2在ImageNet-1K上的Swin-Tiny[4]模型上执行,作者设置,和。所得到的课程表见表6,命名为_EfficientTrain++_。作者直接为其他模型和其他训练设置采用表6中的课程,无需再次执行算法2。
算法2 计算约束的顺序搜索算法。
一种更有效的算法来解决课程问题。 鉴于上述分析,作者提出了一种新的算法来确定课程中的时间表,如算法2所示。这种方法不仅比算法1更高效,而且在课程的结果上也优于算法1。具体来说,算法2引入了两项主要创新:
- 新的公式:计算约束搜索。 作者考虑了一个与算法1不同的约束优化问题。约束是相对于 Baseline (算法2中的指定)节省预定义比例的训练成本,而优化目标是最大化最终准确率。与算法1类似,作者将训练过程划分为个阶段,并为每个阶段求解一个值。然而,这里作者将总训练成本的分配给每个阶段,然后在此固定训练预算下同时变化每个阶段的值和训练步数。也就是说,给定一个预定义的批量大小,当相对较小时,模型处理一个训练数据小批量的成本较小,作者使用更多数据小批量更新模型更多次,但总的计算量保持不变。相比之下,当在训练阶段的较大时,由于训练预算固定,模型更新次数需要相对较少。注意,每个训练阶段的学习率计划始终保持不变。
- 执行顺序搜索。 作者从第一个训练阶段求解到最后一个阶段的值,其中任何阶段的求解都基于前一个阶段的预训练权重。具体来说,对于给定训练阶段,作者从上一个预训练权重开始,分别执行几个候选值,然后用原始图像()对这些获得的模型进行少量轮次(算法2中的)的微调。作者通过比较这些微调模型的验证准确率来选择最佳的,作者发现这是反映不同对最终准确率影响的有效代理。
在作者的实现中,算法2在ImageNet-1K上的Swin-Tiny[4]模型上执行,作者设置,和。所得到的课程表见表6,命名为_EfficientTrain++_。作者直接为其他模型和其他训练设置采用表6中的课程,无需再次执行算法2。
重要的是,与表5不同,_EfficientTrain++_ 是基于算法2引入的计算约束公式。换句话说,、 和学习率的值是根据训练过程中消耗的总计算预算来确定的,即它们的调度是基于计算成本定义的。基于这一特性,作者的EfficientTrain++课程可以灵活地适应不同总数训练预算的变化。值得注意的是,为了衡量作者方法的总训练成本,作者将训练所需的计算转换成 Baseline 中的标准训练周期数(例如,使用原始的输入),并直接报告等效的周期数。这种设置是为了便于理解。
Efficient Low-frequency Down-sampling
正如前述,图5中的低频裁剪操作能够提取所有低频成分同时消除其余高频信息。然而,它遭受着高CPU-GPU输入/输出(I/O)成本的困扰。这个问题是由图5中的2D DFT和逆2D DFT引起的,这对于CPU来说是无法承受的,必须在GPU上执行。因此,作者需要将原始图像(例如,)从CPU传输到GPU。因此,CPU到GPU的I/O吞吐量的需求将按照训练加速的比例增加,例如,在时,增加。作者从经验上发现,这种高I/O成本是一个重要的瓶颈,阻碍了作者的方法的有效实施。
低通滤波+图像下采样。 受此问题的启发,作者提出了一种低频裁剪的有效近似方法。作者的方法是通过改进图像下采样操作得到的。正如命题1所示,下采样的缺点是它不能严格过滤掉所有的高频信息。为了解决这个问题,作者提出了一个两步过程。首先,作者使用一个的方形滤波器在原始图像上执行低通滤波(不改变图像大小)。其次,作者执行下采样。由于低通滤波提取的信息与低频裁剪完全相同,下采样将不再引入不希望的高频成分,从而模型的最终准确性不会受到影响。此外,低通滤波在数学上等同于2D sinc卷积(见:附录D),这可以通过Lanczos算法[89, 90]在CPU上高效实现。因此,作者的两步过程可以使用CPU完成,而只需要将产生的模型输入传输到GPU。因此,有效地降低了CPU-GPU的I/O成本。
Implementation Techniques for EfficientTrain++
促进大规模并行训练:早期大批次。 在表6中,整个训练过程中批大小是固定的。然而,作者的方法总是以较小的(例如,)开始训练,与较大的(例如,)相比,每个小批次的计算成本大大降低。在典型的训练硬件设置上,这一特性是无害的(例如,在个GPU上训练模型)。然而,如果作者考虑GPU数量的增加(例如,个GPU或更多),在早期训练阶段较小的通常会导致瓶颈,阻碍EfficientTrain++的高效实现。
通过在较小时同时增加批大小和学习率,可以解决此问题。一方面,这种修改已被证明是对原始较小批量大小的学习过程的的有效近似[91, 92],因此模型的最终性能不会下降(见表10)。另一方面,小的每批次训练成本增加,使得EfficientTrain++相对于GPU数量的扩展效率显著提高。在作者的实现中,作者使用了一个有上限的平方根学习率缩放规则:
其中,表示与相对应的学习率时间表的最大值(在本文中,作者采用余弦退火时间表与线性预热[18, 4]),表示与相对应的批大小。作者设置作为的上限,因为过大的学习率通常会导致训练过程不稳定。
减少数据预处理负担:重放缓冲区。 在作者的方法中,当较小时,从每个训练样本学习的计算成本是二次方节省的。实际上,这种学习成本的减少伴随着对更高的数据预处理吞吐量的需求,即准备训练输入的速度需要跟上GPU上的模型训练速度。因此,与 Baseline 相比,EfficientTrain++可能会增加内存或CPU等硬件的负担,这可能会影响作者方法的实际训练效率。为了减轻这个问题,作者建议使用重放缓冲区。一旦生成了一个新的预处理小批量数据,作者将其放入缓冲区,而如果达到预设的最大容量,作者移除最早的数据。作者观察到,在常见硬件上,这个最大容量可以设置为相当大的值。在训练过程中,为了获取模型输入,作者交替执行以下两个步骤:1)从重放缓冲区中采样小批量次;2)生成一个新的训练数据小批量,将其输入模型进行训练,并更新重放缓冲区。使用这项技术,数据预处理负担减少了倍,而模型泛化性能可以得到有效保持(见表14)。值得注意的是,只有预处理小批量的数量减少了。训练模型的训练迭代总数和计算成本保持不变。
TABLE VI: EfficientTrain++课程表。值得注意的是,这里采用了算法2的计算受限公式,即、和学习率的配置取决于已消耗的总训练成本的多少。此外,为了衡量训练过程的总长度,作者将训练所需的计算转换为 Baseline 中的标准训练周期数(例如,采用原始的输入),并报告这个等效的周期数以便理解。
6 Experiments
概述。 第6.1节在标准的监督学习场景中评估了作者提出的方法。作者的实验包括在多种训练设置下训练各种视觉 Backbone 网络(例如,卷积网络、各向同性/多阶段视觉 Transformer (ViTs)和卷积网络-ViT混合模型),例如,不同的训练预算、不同的测试输入尺寸和各种训练数据量。作者还全面比较了作者的方法和最先进的效率训练方法。在第6.2节中,作者展示了作者的方法可以方便地应用于自监督学习(例如,MAE),并且在训练效率上取得了显著的提升。在第6.3节中,作者研究了作者方法预训练的模型在下游任务中的可迁移性,例如,图像分类、目标检测和密集预测。在第6.4节中,作者提供了彻底的消融研究和分析结果,以便更好地理解。
数据集。 作者的主要实验基于大规模的ImageNet-1K/22K [17]数据集,这些数据集包含约1.28M/约14.2M张图像,分为1K/约22K个类别。作者还验证了作者的方法在ADE20K [93],MS COCO [94],CIFAR [95],Flowers-102 [96],Stanford Dogs [97],NABirds [98]和Food-101 [99]上的可迁移性。
模型与设置。 作者的实验考虑了各种视觉 Backbone 模型,包括ResNet [1],ConvNeXt [18],DeiT [19],PVT [20],Swin [4] Transformer ,CSWi [21] Transformer 和CAFormer [22]。作者采用[4, 18]中的300轮训练 Pipeline 作为作者的 Baseline ,在此基础上,EfficientTrain和EfficientTrain++仅分别修改表5和VI中提到的项。特别是,EfficientTrain++的默认版本通过利用第5.1节和第5.2节提出的技术改进了EfficientTrain。第5.3节提出的两种实现技术被视为可选组件,它们的有效性在6.14节中单独研究。此外,为了衡量训练过程的总长度,对于 Baseline 和原始EfficientTrain,作者直接报告实际训练轮次。对于EfficientTrain++,由于作者采用了新的计算限制公式,作者将训练模型所消耗的总计算量转换为 Baseline 中的标准训练轮次数,并报告等价的轮次数以便理解(见:第5.1节)。例如,EfficientTrain++的M轮训练的计算成本等于M轮训练的 Baseline 。另外,除非特别说明,作者报告了作者的方法以及 Baseline 的实现结果。更多实现细节可以在附录A中找到。
6.1.1 Main Results on ImageNet-1K
在ImageNet-1K上训练各种视觉基础模型。 表7展示了将EfficientTrain++应用于在ImageNet-1K上训练代表性深度网络的结果,ImageNet-1K是评估深度学习算法最广泛使用的设置之一。很明显,与 Baseline 相比,作者的方法在验证准确度上具有竞争力或更优(例如,CAFormer-M36上的85.0%对84.9%),同时将训练的计算成本节省了。此外,一个重要的观察是,EfficientTrain++的增益在不同类型的深度网络中是一致的,这证明了作者方法的强大泛化能力。此外,表7还报告了在GPU设备上的墙钟训练加速。可以观察到,EfficientTrain++的实际效率与理论结果一致。关于训练过程中准确度与时间的曲线可视化可以在附录B中找到。
EfficientTrain与EfficientTrain++的比较。 在表8中,作者全面比较了EfficientTrain、EfficientTrain++和 Baseline 。从结果中可以得到几个观察。首先,作者这两种方法都有效地提高了训练效率。普通的EfficientTrain能够将各种深度网络的训练成本比 Baseline 减少,同时有效地提高准确度。其次,EfficientTrain++的教学计划一致地优于EfficientTrain。例如,在ImageNet-1K上,EfficientTrain++将DeiT-small的准确度提高了0.6%(81.0%对80.4%)。在预训练更大模型如CSWin-Base/Large的背景下,EfficientTrain++的训练速度比EfficientTrain有显著提高(对),并产生了更好的泛化性能。第三,可以观察到,EfficientTrain++中使用的算法2与用于获取EfficientTrain的算法1相比,将获得教学计划的解决成本减少了。总的来说,这些观察表明EfficientTrain++全面改进了EfficientTrain,正如作者所预期的。**
适应不同的训练预算。 作者的方法可以方便地适应不同的训练计算预算,即通过简单调整表5和VI上总的训练轮次(epoch)来实现。作为代表性的例子,作者在图7中报告了验证准确度与计算训练成本之间的关系,比较了EfficientTrain++和基准方法。在相对较小的训练成本约束下,作者方法的优点更为显著,例如,在仅100轮训练的DeiT-Small上,作者的方法比基准方法高出3.1%(79.8%对76.7%)。作者将其归因于在有限训练资源的场景中,高效训练算法的重要性更大。此外,作者观察到,如果作者主要希望达到与基准方法相同的性能,EfficientTrain++最多可以减少2-3倍的训练成本,这比表7中的结果更为显著。这些上述观察也可以很容易地在EfficientTrain上得到(见:附录B)。此外,在表9中,作者通过允许作者的训练课程利用与标准300轮训练 Pipeline [4, 18]相同的训练成本来部署作者提出的方法。结果显示,作者的方法显著提高了准确度(例如,对于DeiT-Tiny提高了1.9%)。有趣的是,当使用EfficientTrain++适当训练时,普通的DeiT-Small网络性能与基准Swin-Tiny模型(81.3%)相当,而不会增加训练的墙上时间。
**适应任意最终输入尺寸 **。作者的方法可以灵活地适应任意的最终输入尺寸 。为了达到这个目标,EfficientTrain或EfficientTrain++三个阶段的值可以简单地调整为或。如表10所示,在的情况下,作者的方法在训练效率上大大超过了基准方法。
正交于预训练 + 微调。 特别是,在某些情况下,现有研究发现,将预训练模型微调到目标测试输入大小[4, 18, 21]是有效的。在这里,作者的方法可以直接用于更有效的预训练(例如,表12中的)。
6.1.2 Comparisons with Existing Efficient Training Methods
与最先进的效率训练算法的比较 在表11中进行了总结。作者的方法与以下方法进行了全面比较:1)最近提出的样本级[27, 39, 40, 41, 38]或正则化级[42, 44]的课程学习方法;2)逐步学习算法[7, 58];3)针对视觉Transformer的效率训练方法[55, 57, 59]。值得注意的是,其中一些方法并不是在作者考虑的最先进训练 Pipeline (即表11中的'AugReps',具体细节见附录A)之上开发的。当将作者的方法与它们进行比较时,作者也实现了不使用AugReps的方法(在这种情境下移除了'RandAug'),并采用了与它们相同的训练设置(例如,训练ResNet-18/50分别为90/200个周期)。表11的结果表明,EfficientTrain/EfficientTrain++在准确性和训练效率方面均优于所有竞争 Baseline 。此外,作者方法的简便性使得它可以通过仅修改几行代码方便地应用于不同的模型和训练设置,这是与 Baseline 相比的一个重要优势。
与FixRes正交。 FixRes [60]揭示了训练输入和测试输入之间图像尺度存在差异,因此使用更大分辨率的推理将产生更好的测试准确度。然而,作者的方法并没有利用FixRes的增益。作者在最后的训练阶段采用原始输入(例如_),因此最终训练的模型类似于训练的网络,而FixRes与作者的方法是正交的。这一事实可以通过表11中的直接实证证据(见:在先进的CSWin Transformer [21]上,FixRes 与 EfficientTrain/EfficientTrain++ + FixRes的比较)和表12中的结果(见:输入尺寸=)得到证实。
6.1.3 Main Results on ImageNet-22K
ImageNet-22K预训练。 现代视觉基础网络的一个重要优势是它们能够随着训练数据的增加而表现出优异的可扩展性[18, 21]。为此,作者进一步验证了作者的方法在更大的ImageNet-22K基准数据集上的有效性。结果总结在表12中,其中模型在ImageNet-22K上进行预训练,并通过在ImageNet-1K上进行微调来进行评估。作者在预训练阶段实施了EfficientTrain/EfficientTrain++,这占据了总计算/时间成本的大部分。可以观察到,与ImageNet-1K类似,在基于卷积网络和视觉Transformer的 Baseline 上,作者的方法至少与 Baseline 表现相当,同时实现了高达的训练速度提升。结果中的一个亮点是,EfficientTrain++节省了大量的实际训练时间,例如,对于CSWin-Large,节省了158.5个GPU日(237.8 v.s. 79.3),这相当于具有8个GPU的标准计算节点大约20天的时间。
6.1.4 Implementation Techniques for EfficientTrain++
在以下内容中,作者研究了第5.3节提出的两种实现技术对于EfficientTrain++有效性的影响。作者证明了这些技术有效地降低了实施EfficientTrain++的门槛,并使作者的方法在更广泛场景中获得显著的实践训练加速。
大规模并行训练:早期大批量。 由于此机制旨在使EfficientTrain++能够充分利用更多的GPU,作者在以下场景中评估它:
在ImageNet-22K上对CSWin-Base/Large进行预训练。CSWin Transformer是现有最先进深度网络的典型代表。由于其庞大的模型尺寸和相当数量的ImageNet-2K训练数据,实际上需要使用多个GPU(例如,64个)并行预训练模型。在表13中,作者研究了在早期学习阶段引入更大批量(命名为“早期大批发”)的影响,其中作者的实现遵循第5.3节中的描述。总的来说,当利用16个GPU时,普通的EfficientTrain++能够实现显著的训练加速。然而,当GPU数量增加到64时,其实际效率显著下降。相比之下,配备早期大批发机制的EfficientTrain++在64个GPU上的墙钟预训练加速与使用16个GPU大致相同。这个观察结果表明,扩大小的批量大小有效地增强了随着GPU数量增加EfficientTrain++的可扩展性。此外,值得注意的是,这种机制不会影响模型的性能。
减少数据预处理负担:重放缓冲区。 为了研究这一机制,作者以训练相对轻量级的模型(例如DeiT-T/S和CSWin-T/S)作为代表性的例子。由于这些网络的规模较小,它们在GPU上的训练速度通常很快,这就对CPU和内存准备训练输入的吞吐量提出了更高的要求。因此,数据预处理负担是训练它们效率的潜在瓶颈。作者通过引入第5.3节所述的重放缓冲区来训练这些模型,并在表14中将结果与原始的EfficientTrain++进行了比较。可以观察到,重放缓冲区显著降低了数据预处理的峰值负担,并且与 Baseline 保持了竞争力。
Self-supervised Learning
在 Mask 自编码器(MAE)上的结果。 除了有监督学习之外,由于作者的方法仅修改训练输入,因此也可方便地应用于自监督学习算法。表10展示了一个具有代表性的例子,其中作者在配备了HOG重建目标[103]的MAE [23] 上部署了EfficientTrain++。作者还展示了几个最近提出的自监督学习方法的成果,这些方法使用与作者相同的主干网络,并且具有与作者相当的前训练成本。可以观察到,作者的方法显著降低了MAE的前训练成本,同时保持了准确度,超越了所有竞争性 Baseline 。
Transfer Learning
下游图像识别任务。 作者首先通过在下游分类数据集上微调训练出的 EfficientTrain/EfficientTrain++ 模型来评估它们的迁移能力。结果在表10中报告。值得注意的是,与[19]一样,CIFAR-10/100 [95]中的32×32图像被调整为224×224进行预处理,因此判别模式主要分布在低频组件中。相反,Flowers-102 [96] 和 Stanford Dogs [97] 是细粒度视觉识别数据集,其中高频线索包含重要的判别信息(例如,区分狗的种类所需的详细面部/皮肤特征)。可以观察到,与 Baseline 相比,作者的方法在两种类型的数据集上均提供了具有竞争力的或更好的迁移学习性能。换句话说,尽管作者的方法通过有序的课程学习来利用低频/高频信息,但最终获得的模型可以有效利用这两种类型的信息。
目标检测与实例分割。 为了研究将作者的预训练模型迁移到更复杂的计算机视觉任务,作者使用 EfficientTrain/EfficientTrain++ 预训练的模型初始化了代表性检测和实例分割框架的主干网络。在MS COCO上的结果在表10中报告。当将预训练成本降低约1.5倍时,作者的方法在所有场景中的检测/分割性能显著优于 Baseline 。作者的实现遵循 MMDetection [108]。
语义分割。 表10进一步评估了作者的方法在下游语义分割任务上的性能。作者实现了几个使用 EfficientTrain++ 预训练的代表性主干网络,作为在UperNet [109]中编码器的初始化,并使用 MMSegmentation [110]在 ADE20K 上微调 UperNet。从表10的观察与表10和X相似。作者的方法可以至少将预训练成本降低1.5倍,同时有效提高下游性能。例如,在 DeiT-Small 之上,EfficientTrain++ 在160k步训练设置下将 mIoU/mIoUMS*Flip 提高了1.1/1.2。
6.4.1 Ablation Study
为了更好地理解作者提出的方法,作者进行了一系列的消融研究。具体来说,按照本文的组织结构,作者首先研究EfficientTrain各组成部分的有效性,然后研究EfficientTrain++中提出的新技术是否如作者所预期的那样改善了EfficientTrain。
使用EfficientTrain的消融研究结果 在表14中总结。在表14(a)中,作者展示了训练效率的主要提升来自于低频裁剪,它有效地降低了训练成本,代价是准确度略有下降。在此基础上,线性RandAug进一步提高了准确度。此外,将低频裁剪替换为图像下采样一致地降低了准确度(见表14(b)),因为下采样不能严格过滤掉所有的高频信息(见命题1),导致作者想法的实施次优。另外,如表14(c)所示,通过算法1找到的调度优于启发式设计选择(例如,[58]中的线性调度)。
EfficientTrain++相较于EfficientTrain的改进。 在表14中,作者研究了EfficientTrain++提出的改进技术的有效性(即,第5.1和5.2节引入的组件)。可以观察到,算法2极大地降低了获取训练课程的成本。此外,使用算法2找到的课程训练的模型能够在相同的训练成本下获得更强的泛化性能。在此基础上,进一步引入高效的低频下采样操作减轻了高CPU-GPU I/O成本的问题,从而有效地提高了作者方法的实际训练效率。
算法2的设计。 作者进一步研究算法2的设计是否合理。具体来说,作者选择AutoProg [7]的搜索配置作为竞争 Baseline 。AutoProg是一种最近提出的针对ViTs的有效训练方法。它与算法2在范式上相似,即在每个训练阶段微调模型以搜索适当的渐进学习策略。然而,它的优化目标和变量配置与作者的方法不同。在作者的实验中,作者首先在作者的问题中实现AutoProg的搜索配置。然后,作者逐步在AutoProg上引入修改,最终得到算法2,旨在证明作者相对于当前最先进设计的优势。结果总结在表14中,作者可以得到两个观察结果:1)验证准确度在作者的问题中是一个比训练损失更好的搜索目标;2)作者提出的计算受限搜索公式(即,在固定训练成本节省比例下最大化验证准确度;详见第5.1节)导致了显著更好的训练课程,同时它可以通过消除平衡有效性-效率交易的超参数来简化搜索目标。
6.4.2 Transferability of EfficientTrain++
表十二系统地讨论了作者的EfficientTrain++课程(即表六,在Swin-Tiny和ImageNet-1K上获得)的泛化能力。作者在不同的视觉基础架构和多样化的数据集上执行算法2。然后,在每种相应的场景中,作者将生成的专门课程与EfficientTrain++进行比较。
不同的网络。 与许多其他有用的训练技术(例如,余弦学习率计划,AdamW优化器,随机擦除)一样,EfficientTrain++的有效性通常并不局限于特定的网络架构。例如,表十二(b)和(c)显示,如果在多阶段ViTs家族内采用更先进的架构或增大模型大小,针对Swin/CSWin-Tiny优化的课程仍然接近最优设计(由算法2找到)。此外,如表十二(a)所示,当将标准EfficientTrain++应用于另一个网络家族(例如,各向同性ViTs)时,模型特定的课程搜索可以在训练效率上带来小幅提升(例如,DeiT-Small的81.0%→81.2%),但这需要再次执行算法2,并付出显著的代价。相比之下,直接使用标准EfficientTrain++不会引入额外成本,并且可以已经获得高效训练的大部分收益。
不同的数据集。 当将作者的方法应用于新数据集时,有两个值得注意的事实。首先,基于前述在不同网络上的鲁棒性,人们可以在常见的、小型模型(例如,Swin-Tiny)上求解出一个可泛化的课程。根据表八,搜索成本大约等于训练这个小模型的2~3倍。其次,在许多情况下,可能并不需要在新的数据集(或完整的新数据集)上进行搜索。例如,表十二(d)显示,当训练数据规模从ImageNet-1K增加到ImageNet-22K(约10倍),EfficientTrain++可以已经获得了高效训练的大部分收益(无损训练速度提升: 对 )。因此,在完整大型数据集的一个较小的子集(例如,约1/10数据)上求解课程是合理的,除非有人希望无论成本如何都要最大化训练效果。此外,如表十二(e)所示,在四个广泛使用的数据集(即Food-101 [99],NABirds [98],CIFAR [95],Stanford Dogs [97])上,基于ImageNet-1K的课程与数据集特定课程优化表现相当。这可能是由于在像ImageNet这样具有挑战性的大规模自然图像数据库上完成学习表示的任务,已经涵盖了许多专门视觉场景的需求。因此,在许多常见数据集上,人们可以简单地采用在像ImageNet-1K这样的综合自然图像数据集上获得的现成课程(例如,EfficientTrain++)。
6.4.3 Incorporating Sample-selection-based Methods
作者提出的广义课程学习作为一种灵活的框架,可以轻松地融入先前的样本选择课程学习方法。在本文中,这些方法主要被视为与作者方法比较的 Baseline ,旨在阐述作者的新贡献。然而,数据选择的思想实际上是与作者兼容的。考虑一个同时揭示每个示例中逐渐更复杂的模式并确定每个示例是否应用于训练的课程学习函数是很直观的。为了明确这一点,作者在表12中提供了一个代表性的例子,其中通过最近提出的InfoBatch算法[39]实现了样本选择。可以观察到,将EfficientTrain++与InfoBatch结合使用,相比于单独的每种方法,进一步提高了训练效率,而EfficientTrain++的效果更为显著,这与作者论文中的发现一致。
7 Conclusion
本文旨在为现代深度网络开发一种简单且广泛应用的高效学习算法,具有广泛实施的可能性。在此目标下,作者提出了_EfficientTrain++_,一种新颖的广义课程学习方法,它在每个学习阶段都利用所有数据,但在训练开始时只暴露每个示例中“更容易学习”的模式(例如,图像的低频成分和数据增强前的原始信息),并随着学习的进展逐渐引入更复杂的模式。为了设计适当的课程学习计划,作者提出了一种量身定制的计算约束顺序搜索算法,产生了一个简单、泛化能力强且出奇有效训练课程。_EfficientTrain++_的有效性在大规模ImageNet-1K/22K数据集上得到了广泛验证,覆盖了各种最先进的深度网络(例如,ConvNets、ViTs和ConvNet-ViT混合模型),在不同的训练设置下(例如,不同的训练预算、变化的测试输入尺寸以及监督/自监督学习场景)。在不牺牲模型性能或引入新的可调整超参数的情况下,_EfficientTrain++_将视觉 Backbone 网络的墙钟训练成本降低了。
潜在地,作者的工作可能为开发视觉模型的效率课程学习方法开辟新的途径。例如,未来的工作可能会探索提取“更容易学习”模式的更通用变换函数形式,例如,在元学习原则下制定可学习的神经网络,或考虑在视觉数据的“容易学习”与“难以学习”的空间-时间区域中模式的不同。此外,研究在训练过程中如何逐步揭示更复杂的模式以适应更一般的数据类别将非常有趣,例如,对于表格数据,作者可能考虑在早期训练阶段掩盖某些特征(列),只暴露不同特征之间某些“容易学习”的关系。
Training Models on ImageNet-1K
数据集。 作者使用了ILSVRC2012[17]提供的数据。该数据集包括120万张用于训练的图片和5万张用于验证的图片,它们都被分为1000个类别。
训练。 作者的方法是在深度网络最先进的训练流程之上开发的,它结合了各种模型正则化&数据增强技术的整体组合,并被广泛应用于训练最近提出的模型[4, 18, 19, 20, 21, 22]。作者针对标准情况(对 Baseline 和EfficientTrain进行300轮训练;对EfficientTrain++进行200轮训练)的训练设置总结在表24中,这些设置大体上遵循[18],除了以下差异。作者根据不同模型原始论文中的建议修改了权重衰减、随机深度和指数移动平均(EMA)的配置(_即._ ConvNeXt [18],DeiT [19],PVT [20],Swin Transformer [4],CSWin Transformer [21],和CAFormer [22])。此外,遵循[22],CSWin-Base [21]和CAFormer [22]的训练采用了LAMB优化器[113],初始学习率为8e-3,这对于这些模型在大批量大小4096的情况下,有助于稳定学习过程。
这个限制函数被称为2D辛克函数。它是信号处理中的一个经典函数,因为它是2D方波函数的傅里叶变换和逆傅里叶变换。在这里,控制着核的宽度。越大,越大,2D辛克函数在点处变得越像脉冲状,这意味着每个像素只取自身的值。
参考
[1].EfficientTrain++: Generalized Curriculum Learning for Efficient Visual Backbone Training.
扫码加入👉「集智书童」交流群
(备注: 方向+学校/公司+昵称 )
想要了解更多:
前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」
行业技术方案 👉「AI安防、AI医疗、AI自动驾驶」
AI模型部署落地实战 👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」
欢迎扫描上方二维码,加入「 集智书童-知识星球 」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!
免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“ 阅读原文 ”,
了解更多AI学习路上的 「武功秘籍」
