专栏名称: 小白学视觉
本公众号主要介绍机器视觉基础知识和新闻,以及在学习机器视觉时遇到的各种纠结和坑的心路历程。
目录
相关文章推荐
企业专利观察  ·  说明书修改超范围,专利局认定专利继续维持有效 ·  16 小时前  
企业专利观察  ·  说明书修改超范围,专利局认定专利继续维持有效 ·  16 小时前  
51好读  ›  专栏  ›  小白学视觉

【荐读IEEE TPAMI】DNA家族:利用块级监督策略增强权重共享的神经网络架构搜索

小白学视觉  · 公众号  ·  · 2024-05-15 10:05

正文

点击上方 小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

DNA Family: Boosting Weight-Sharing NAS With Block-Wise Supervisions

题目:DNA家族:利用块级监督策略增强权重共享的神经网络架构搜索

作者:Guangrun Wang , Member, IEEE, Changlin Li , Liuchun Yuan, Jiefeng Peng, Xiaoyu Xian , Xiaodan Liang , Xiaojun Chang , Senior Member, IEEE, and Liang Lin , Senior Member, IEEE


摘要

神经架构搜索(NAS)旨在通过机器自动设计神经架构,被认为是自动机器学习的关键步骤。其中一类值得注意的NAS方法是权重共享NAS,它显著提高了搜索效率,并允许NAS算法在普通计算机上运行。尽管备受期待,但这类方法在搜索有效性上存在不足。通过使用泛化界限工具,我们展示了导致这一缺点的原因是潜在的不可靠架构评分,这是由于可能架构的搜索空间过大造成的。为了解决这个问题,我们将一个大型搜索空间模块化为具有较小搜索空间的块,并开发了一组使用蒸馏神经架构(DNA)技术的模型。这些提出的模型,即DNA家族,能够解决权重共享NAS的多个困境,如可扩展性、效率和多模态兼容性。我们提出的DNA模型能够评估所有架构候选项,与以往工作不同,后者只能使用启发式算法访问子搜索空间。此外,在一定的计算复杂性约束下,我们的方法可以寻找具有不同深度和宽度的架构。广泛的实验评估表明,我们的模型在ImageNet上分别为移动卷积网络和小型视觉变换器实现了78.9%和83.6%的最新顶级1准确率。此外,我们还提供了深入的实证分析和对神经架构评分的洞察。

关键词

  • 块级学习
  • 泛化界限
  • 神经架构搜索
  • 视觉变换器

I. 引言

神经架构搜索(NAS)[1],旨在用机器取代人类专家设计神经架构,被广泛期待。典型的工作包括强化学习方法[2]、[3],进化算法[4]、[5]和贝叶斯方法[6]、[7]。这些方法需要多次尝试(即单独训练许多架构以评估其质量),这对许多研究人员来说是计算上不可行的。最近的权重共享NAS解决方案将搜索空间编码为权重共享的超网络,并在超网络中同时训练所有架构,显著提高了搜索效率。

尽管效率很高,但权重共享NAS的有效性令人担忧[8]、[9]、[10]。罪魁祸首可能是由于搜索空间过大导致的不可靠的架构评分。具体来说,权重共享NAS方法共同训练超网络权重以评估架构候选项。随着搜索空间的增加,泛化界限工具表明超网络权重的泛化能力降低,导致不可靠的架构评分。这种预测和真实架构排名之间的不相关性使权重共享NAS变得无效。

为了提升权重共享NAS,减小搜索空间是有帮助的。因此,我们将大型搜索空间分解为具有较小搜索空间的块。具体来说,我们将神经架构分成块(见图1(a))并分别训练每个块。这样,与整个搜索空间中的架构候选项相比,块中的架构候选项数量呈指数级减少,从而允许更可靠的架构评分。有了这些块级表示,我们使用蒸馏神经架构(DNA)技术开发了三种新型NAS模型。我们将这些模型归纳为一个称为“DNA家族”的家族,因为它们在构建模型的机制上具有相似性,即通过从教师网络中提取知识来训练学生超网络[11]。以下,我们将总结三个DNA模型的特点,并讨论它们如何解决权重共享NAS的多重困境。

  • DNA:基本模型(见图1(b))采用传统的监督学习,即把固定教师网络的潜在代码作为监督。由于可以同时训练几个学生超网络,因此非常高效。
  • DNA+:这个模型(见图1(c))允许在架构搜索过程中逐步更新教师网络。因此,DNA+的性能对教师网络的初始容量的依赖性较小,从而实现了更好的可扩展性。
  • DNA++:这个模型(见图1(d))使得教师网络和学生超网络以自监督学习的方式共同优化,即在架构搜索期间不需要标记数据。DNA++的一个优势是能够容忍教师网络和学生超网络的不同基本架构(例如,教师使用CNN,学生超网络使用视觉变换器(ViT))。

有了块级表示,我们可以评估所有候选架构,与以往只能使用启发式算法访问子搜索空间的方法不同。因此,我们的方法在与其他权重共享NAS方法相比时显示出有希望的有效性水平。总体而言,我们的贡献是五方面的:

  • 我们展示了过度的搜索空间显著阻碍了大多数权重共享NAS方法的有效性。随着搜索空间的扩展,超网络权重表现出降低的泛化能力,导致不精确的架构排名和无效的搜索。为了解决这个问题,我们通过使用块级表示对广泛的搜索空间进行模块化,系统地减少了搜索范围。
  • 我们在通用知识蒸馏框架下探索了三种实现,以平衡可扩展性、学习效率和与各种神经网络结构的兼容性。所提出的DNA家族可以灵活地采用,以解决NAS应用的不同困境。
  • 块级监督使我们的模型能够评估所有候选人,这与以前的方法不同,后者只能探索搜索空间的一个子集。此外,这种方法还允许我们在计算资源的约束下搜索具有不同深度和宽度的架构。
  • 我们通过全面的实证研究突出了架构评分的重要性,包括模型排名、使用Kendall Tau度量的评估以及对训练稳定性的评估。这些研究为传统的权重共享NAS方法的(无效)有效性提供了见解。
  • 在ImageNet、CIFAR10和PASCAL VOC分割上提供了有希望的高效实验结果。通常,我们的DNA家族在移动设置中获得了78.9%的顶级1准确率,在ImageNet上的ViT上获得了83.6%的顶级1准确率。

III. 方法论

我们首先分析了权重共享神经架构搜索(NAS)的困境(第三节 A)。为了解决这个问题,我们将搜索空间划分为区块(第三节 B)。利用这些区块化的表示,我们开发了三种利用神经架构蒸馏技术的 NAS 模型,以应对各种权重共享 NAS 面临的挑战。第三节 C 介绍了使用监督学习的 DNA,提供了可搜索的宽度/深度和资源适应性。第三节 D 概述了使用渐进学习的 DNA+。第三节 E 提出了使用自监督学习的 DNA++。

A. 权重共享 NAS 困境的基本分析

寻找最优架构需要多次/贪婪的试验,即分别训练许多/所有架构以评估它们的质量,这在计算上对许多研究人员来说是不可承受的。最近的工作放弃了单独训练每个候选架构的做法;相反,它们将搜索空间 A 编码成一个权重共享的超网络,并同时在超网络中训练所有架构。这些方法被称为权重共享 NAS,显著提高了搜索效率。尽管效率很高,但权重共享 NAS 的有效性并不令人满意。我们在这里分析了造成这一问题的原因。

正式来说,让 分别表示一个架构及其网络权重。NAS 是一个问题,需要找到最优的一对 ,使得模型性能最大化。为了执行搜索,人们需要评估许多架构的质量作为调整搜索策略的奖励,即他们需要单独训练每个架构以获得 ,并使用 来评价架构。然而,训练每个架构是非常低效的。权重共享 NAS 方法将搜索空间 A 制定成一个过度参数化的超网络,使得每个候选架构 是超网络的一个子网络。它们在超网络中同时训练所有架构以获得最优的超网络权重 。然后,它们从超网络中提取每个子网络的权重进行验证,并使用这个验证准确率来评价子网络。权重共享 NAS 的困境在于预测的和实际的架构质量之间的相关性很低。为了分析这个猜想,我们首先有一个关于泛化有界的定理。

定理 1.(泛化有界):对于任何子网络 ,我们使用 表示从训练好的超网络中提取的次优权重,并使用 表示其单独训练时的理想权重。那么, 的 Frobenius 范数上界为:

其中 ,和 是常数。

备注:定理 1 的证明在附录中,可在线获取。定理 1 表明,使用训练好的超网络权重,一个子网络的模型复杂度(通常衡量泛化能力)与 T 有关,有一个上界。增加搜索空间会导致泛化能力变差,进一步意味着超网络权重估计的架构质量不能预测实际质量。假设一个架构具有很好的质量,但基于超网络权重的泛化能力很差。那么,它的验证准确率可能很低,其质量将被低估。总之,过大的搜索空间是罪魁祸首,因为大搜索空间会导致泛化能力差,进一步导致架构评级不准确,最终导致搜索无效。相反,减少搜索空间可以提高权重共享 NAS 的有效性。

定理 1 强调了区块化监督提高架构排名的潜力,这与“模块化学习”的概念相呼应。模块化学习有效地证明了将神经网络训练分解为模块化组件并独立训练每个模型的优势,展示了多种好处。在我们的情况下,定理 1 支持这样的观点:模块化学习确保了每个子网络的公平和全面训练,这是提高排名的关键因素。

B. 将搜索空间模块化为区块

如上所述,为了提高权重共享 NAS 的有效性,应该减少搜索空间。不幸的是,直接用一个小空间替换一个大空间是不可取的,因为这会导致准确性范围变小,使搜索失去意义。保持整个搜索空间不变,我们将大空间模块化为区块。每个区块中的候选数量因此显著小于整个搜索空间中的候选数量。也就是说,我们将超网络 U 划分为 N 个区块,关于超网络的深度:

其中 表示在超网络中第 (k+1) 个区块连接到第 k 个区块。 是第 k 个区块的网络权重。 是第 k 个区块的输入数据和监督。我们分别优化超网络的每个区块:

其中 表示第 k 个区块的搜索空间。

区块与整个搜索空间的比较:设 分别表示第 k 个区块的深度和每层的候选操作数量。那么,第 k 个区块的搜索空间大小为 ;整个搜索空间的大小为 。这表明搜索空间的指数级减少,即 。在我们的实验中,区块化搜索空间显著小于整个搜索空间(例如,减小比率约为 ),确保了有效的权重共享 NAS。最后,架构在整个搜索空间 A 中的不同区块中进行搜索:

其中 表示损失平衡。

备注:重要的是要强调,尽管我们使用区块化监督来帮助训练超网络以提供区块化的局部评分,但我们的架构搜索仍然是在整体架构中执行的,通过考虑所有局部评分。以前的工作 [23] 假设深度网络中每一层的权重是独立的。相反,我们认为深度网络中不同层的权重高度依赖于彼此。我们在第三节 C 中的算法允许我们在 10^17 个架构的完整搜索空间中精确地识别出最高奖励的架构。此外,我们的方法还可以在特定的计算约束下搜索具有不同深度和宽度的架构。

C. DNA: 通过监督学习进行蒸馏

尽管我们在第III-B节中有很好的动机,但技术障碍在于缺乏内部真实标注的(3)。受知识蒸馏(KD)[11]的启发,我们使用教师的隐藏特征作为监督信号。设 为第k块教师的输出张量, 为超网络第k块的输出张量。我们采用L2范数作为代价函数。(3)中的损失函数可以写成:

其中K表示 中神经元的数量。此外,受到在变换器[46]、[47]、[48]中丢弃RNN的低效顺序训练的显著成功的启发,我们类比地并行化了我们的超网络训练。具体来说,我们使用教师的第(k-1)块的输出作为超网络第(k-1)块的输入,即我们用 替换(5)中的 。因此,搜索可以加速并行化。(5)可以写成:

图2展示了DNA的流程。

可搜索的深度和宽度 :在NAS中,自动分配每个块的模型复杂度在特定约束下是至关重要的。为了更好地模仿教师,每个块的模型复杂度应根据相应教师块的学习难度自适应地分配。输入图像大小和每个块的步长固定,通常,计算分配只与每个块的宽度和深度有关,这在权重共享NAS中搜索是繁琐的,因为宽度和深度在设计超网络时通常是预定义的。大多数以前的工作包括将恒等操作作为深度搜索的候选操作([15], [16], [19], [22], [23])。然而,正如[49]所指出的,将恒等操作作为候选操作可能会导致超网络收敛困难和子模型之间的不公平比较。此外,将恒等操作作为候选操作可能会导致冗余搜索空间。例如,序列{conv, identity, conv}等价于{conv, conv, identity}。根据定理1,这种冗余搜索空间可能导致搜索无效。此外,[50]首先搜索具有固定操作的层数,然后在固定层数下搜索三种操作。然而,操作选择取决于每个块的深度,导致累积搜索偏差,尤其是当搜索空间增加时。由于块级监督,我们可以并行地在每个块中训练具有不同通道数/层数的几个单元,以确保深度/宽度的可变性。具体来说,在每个训练步骤中,教师的前一个特征图被馈送到并行的三个具有不同深度/宽度的单元中(例如,图2中数据流的实线)。对于每个单元的每一层,从候选操作中随机采样一个操作(例如,图2中数据流的虚线)。

约束搜索算法 :我们的典型超网络包含大约 个子模型,阻止我们对所有子模型进行评分。以前的权重共享NAS使用随机采样、进化算法和强化学习从训练好的超网络中对子模型进行采样以进行进一步评分。在最新的工作中([23], [50]),使用贪婪搜索算法通过逐层选择性能最好的部分模型逐步缩小搜索空间。相反,尽管使用块级监督计算块级局部得分,我们的架构搜索仍然在全局搜索空间中执行,通过考虑所有局部得分进行。我们可以巧妙地遍历所有子网,以在某些约束下选择性能最好的模型。

  • 评分步骤:块级监督使我们能够在搜索空间中对所有候选者进行评分。我们首先使用块级监督计算局部得分,这是可承受的,因为每个单元中只有 个子模型。为了进一步加速,我们以类似于深度优先算法的方式逐个节点处理批处理数据,通过保存每个节点的中间输出并由后续节点重用来避免从头节点重新计算它。特征共享评估算法在附录中的算法1中概述,可在线获取。通过评估超网络中的所有单元,我们可以得到一个块中所有可能路径的评估损失。我们可以在几秒钟内使用单个CPU快速对这个列表进行排序,该列表大约有 个元素。每个块都有这样一个局部得分列表。

  • 搜索步骤:给定一个计算成本约束,我们应该使用一个公平的评分指标自动为不同块分配成本。由于MSE损失受到教师特征图的方差影响,我们使用一个更公平的指标,即相对L1损失:

其中D(·)测量方差。块级局部得分Lval(Ψk|Ak, Yk−1, Yk)被求和以进行全局搜索。高效地,我们不需要为所有 个候选项计算成本(例如,FLOPs)和损失。随着局部得分列表中的分数排名,我们提出了一个高效的搜索算法,用于访问所有可能的模型(附录中在线提供的算法2)。首先,在搜索循环中,如果成本已经超过约束,我们使用语句“continue”跳到下一个循环迭代。其次,当找到满足约束的模型时,我们返回到前一个块,因为当前块中的这个模型是最优的。第三,我们通过预先计算的查找表获得每个候选操作的成本,以节省时间。该方法可以类比为从起点A到目的地B的徒步旅行,有许多可能的路线可以探索。每条路径产生不同的奖励。如果我们确定从A到B通过C的关键里程碑C点,并且进一步发现从A到B通过C的最佳路径,记为AC,那么很明显,从A到B通过C的最佳路径必须包括AC。任何不包含AC的路径都不是最优的。利用这个概念,我们能够高效准确地从大量的 个样本中确定最高奖励的架构。

D. DNA+: 通过渐进学习进行蒸馏

在搜索之后,我们搜索到的架构表现出色。如果我们将搜索到的架构扩展到与教师相同的大小,我们的扩展架构可以显著优于原始教师。这一令人印象深刻的结果鼓励我们进行级联NAS。我们迭代地将搜索到的架构扩展为新的教师,并一代又一代地在新教师的指导下搜索新架构,模仿了具有多代知识传递的重生神经网络[30]的优点。这形成了另一个DNA版本,即DNA+。

在第一代中,我们使用一个现有的模型(例如EfficientNet-B1)作为教师模型,即:

其中 是第一代教师的架构和网络权重。 是输入和输出。这里,我们用k表示第k个块。将 代入(4)中,我们可以训练第一代超网络并搜索第一代的最优架构

在连续的一代中,通过使用[3]中的扩展策略(在(9)中表示为Scaling)获得新的教师,然后从头开始重新训练新的教师模型,该模型用作这一代的块级监督:

每一代的搜索过程与第一代相似。我们对几代进行迭代搜索以进行饱和。在过程结束时,最后搜索到的架构是最后一代的最优学生 ,它将在没有扩展的情况下重新训练。图3展示了DNA+的流程。

友情提醒 :我们想强调的是,架构排名的改进主要归功于块级监督学习。知识蒸馏只是实现这种块级监督学习的手段。

E. DNA++: 通过自监督学习进行蒸馏

尽管DNA和DNA+的搜索性能很高,但他们的搜索结果可能会受到教师架构的影响。具体来说,根据(7),与教师操作更相似的候选者在每个块中往往会有更好的局部得分,导致架构排名偏差。当搜索空间接近教师网络时,这种偏差不明显。但正如[37]所建议的,如果搜索空间更加多样化,这种偏差将会被放大。幸运的是,没有访问现有教师,自监督NAS方法已被证明能够实现与监督NAS方法相当的性能。因此,我们使用自监督作为现有教师监督的替代品,以减少使用现有教师模型引起的排名偏差。

在计算机视觉中使用自监督的最有效策略包括对比学习[48]、[51]、[52]、度量学习[53]和生成[54]。在这些策略中,人们为每个图像进行两次独立的数据增强,并将它们输入到可学习的和不可学习的网络中。通过充分利用两个输出的相似性来学习表示。注意,不可学习网络通常是可学习网络的移动平均值(即,均值教师)[48]、[51]、[52]、[53],或者是其梯度被停止的可学习网络的副本[55]。换句话说,可学习网络和不可学习网络需要是相同的;否则,学习将会崩溃。这使得将对比学习和度量学习引入NAS非常困难。为了解决这个问题,[37]和[10]将教师和学习网络都设置为超网络,这使得它们非常庞大且不优雅。幸运的是,受到[56]的启发,我们能够通过引入DNA++来优雅地解决这个问题。

概述和符号 :DNA++的概述如图2所示。对于每个块,我们首先使用两个MLP来提取其特征。这些特征表示为 ,其中j表示一批中的第j个样本,k表示第k个块。然后我们对特征施加两种损失,即自监督损失和特定的损失以去除冗余的不可学习超网络。

自监督损失 :自监督学习中的基本损失是距离度量损失[51]、[52]、[53],其目的是学习特征之间的相似性和不相似性。为了稳定优化并简化自监督学习,通常还需要进行规范。因此,我们的自监督损失定义为:

其中第一项是距离度量损失,第二项是正则化损失。正则化项的作用可以在[57]中看到。这里K是块的数量,M是批量大小,C是通道数。 用于损失平衡。Off-diag表示取矩阵的非对角元素。Cov表示计算向量集的协方差矩阵,即 ,其中

方程(10)是标准的自监督损失,并且继承了它的一个不便之处,即它需要一个冗余的不可学习网络进行优化。在权重共享NAS的背景下,如果只使用(10),不可避免地需要一个冗余的不可学习超网络,这使得优化变得困难和不优雅。接下来,我们的目标是去除这个冗余的不可学习超网络。

避免冗余超网络 :现有的自监督算法依赖于冗余的不可学习网络的原因是,如果只有可学习网络,优化将会崩溃成一条捷径,例如不同样本的输出都是相同的常数向量。因此,避免冗余不可学习超网络的一种可能方法是鼓励不同样本的输出发散。受[56]的启发,我们对不同样本的输出施加损失函数,最大化它们的方差,即:

其中max(0, )是一个类似铰链的损失,广泛应用于SVMs。 是一个阈值。std表示计算标准差,即std 是一个小常数, 表示第k个块的第c个通道神经元。添加了上述超网络去冗余损失LSDR后,我们不再需要额外的不可学习超网络来训练我们的超网络。我们的最终损失是LSSL + LSDR。通过这种方式,自监督巧妙地与权重共享NAS结合,形成了我们的DNA++。

在DNA++中,我们的自监督可以是CNN,学生超网络是ViT。因此,我们可以搜索ViT。图4展示了DNA++的流程。

IV. 实验







请到「今天看啥」查看全文