
一种使用对比学习和卷积图网络来比较神经网架构的方法。
三个要点
✔️ 比较使用对比学习和卷积图网络的架构性能
✔️ 基于稳定推理的比较,计算强化学习代理的奖励
✔️ 以较低的成本成功探索出比现有方法更准确的架构
Contrastive Neural Architecture Search with Neural Architecture Comparators
written by Yaofo Chen, Yong Guo, Qi Chen, Minli Li, Wei Zeng, Yaowei Wang, Mingkui Tan
(Submitted on 8 Mar 2021 (v1), last revised 6 Apr 2021 (this version, v2))
Comments:Accpeted by CVPR 2021.
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:![]()
![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
介绍
深度神经网络已经在各个领域取得了巨大的成功。然而,设计一个有效的神经网络架构需要大量的努力,并且严重依赖人类的专业知识。
除了设计手工制作的建筑,还有其他方法可以自动设计。该方法被称为NAS(Neural Architecure Search),旨在设计出比手工制作的架构性能更高的架构。现有NAS的一个关键挑战是如何估计所探索的架构的性能。这是因为每次在数据集上训练每个探索的架构都会非常耗时,而且计算成本很高,没有任何巧思。
这方面的一些创新包括通过训练一个超级网(一个大的父网络)并在其中搜索架构来分享权重的方法,或者使用预测器来估计一个架构的性能。然而,用随机种子值学习会导致性能的巨大波动,从而难以准确预测性能。
本文提出了一种对比性神经结构搜索(CTNAS)方法,它通过比较结构来进行搜索。通过以架构比较的形式对探索出的架构进行评估,可以提高评估的准确性,因为它不需要绝对的架构性能评估。通过使用对比学习和卷积图网络,准确性和稳定性也得到了提高。
建议的方法(CTNAS)概述
建议的方法(CTNAS)概述于下图。
控制器探索的架构(采样的架构α)与NAC的基线进行比较,以计算控制器的奖励。
对比性神经结构搜索
建议的方法不使用绝对性能,而是旨在通过比较获得候选架构的排名。用于这一目的的模块被命名为NAC。
NAC是一个模块,它对任意两个架构α、α'进行比较,并输出α优于α'的概率。换句话说,它输出的概率p,使得
控制器学习的是NAC给出的概率p作为奖励。具体来说,它通过解决以下优化问题来学习政策π(α;θ)。
在上述公式中,β代表基线模型的架构。在比较架构中,设定一个基线,并将超过该基线的预期概率设定为奖励。
用于比较的最新基线
由于CTNAS奖励与基线架构的比较结果,搜索性能高度依赖于设置为基线的架构。因此,如果基线架构是固定的,它将只搜索比基线更好的架构,从而难以搜索到性能足够高的架构。因此,有必要在搜索过程中改进基线。本节介绍为此目的的基线更新算法。
为了改进基线架构,我们的目标是从过去探索的架构中设定最佳架构作为基线。具体来说,我们构建一个候选基线集H,并动态地纳入控制器采样的架构。通过将任何架构αi与H中的其他架构进行比较,平均比较概率根据以下公式计算。
以以前最好的架构为基线,目的是通过探索比基线更好的架构,进一步提高搜索性能。
神经结构比较器(NAC)
到目前为止,已经解释了所提方法的基本概念。从现在开始,我们将详细解释作为拟议方法关键模块的NAC。
如上所述,NAC的功能是输入两个架构,并输出探索的架构比基线更好的概率。你说你输入了架构,但你到底是如何输入架构的?
GCN的架构比较
本文使用图卷积网络(GCN)作为向模型输入架构的方法。使用这种方法是因为神经网络的结构可以被看作是一个图,而且它是一种超网驱动的架构搜索方法。
在GCN中,架构的输入方式如下图所示。
它将每个节点表示为一个DAG(有向无环图),相邻矩阵表示每个节点的连接状态。此外,节点属性是为每个节点准备的,以便有自己的特点。
由于本文使用的是两层GCN,所以紧挨着架构α所有耦合层的输入的特征可以按以下方式计算。
以这种方式计算出的特征被输入到全组合层,该层输出探索出的架构的性能优于基线的概率,如下式所示。
为了训练NAC,需要一个由架构组成的数据集,以及它们在一些数据集上的性能评估,如CIFAR-10,。架构及其性能的配对数据可以通过训练超级网或从头训练一组架构来获得。为该数据集中的所有架构的所有模式创建配对,并为每个模式分配一个标签,以确定哪个模式更好。这样一来,NAC训练可以被视为一个二元分类问题。
用于新华社学习的数据探索。
为了学习一个好的NAC,需要尽可能多的关于架构及其估计精度的配对数据。然而,在实践中,由于计算成本的限制,只能准备有限数量的配对数据集。在有限的训练数据集下,NAC模型的性能很可能会下降,使其难以进行架构探索的训练。
为了解决这个问题,本文提出了一种数据探索方法,采用搜索过程中采样的架构作为未标记的数据。该方法采用由NAC预测的最大概率的类别作为未标记数据的标记。换句话说,如果NAC预测,当NAC将探索出的架构A与基线B进行比较时,A更好,它就会给这两对A>B打上标签。具体来说,标签的标示方式如下式。
然而,可以想象的是,预测的标签可能是有噪声的,因为NAC可能做出不正确的预测。因此,我们通过计算架构对的信心分数来评估预测的质量;第k个架构对的信心分数可以计算如下。
选择具有预测标签的、置信度最高的K值的数据,并将其与标记的数据结合起来,训练NAC。为了平衡两类数据,即最初的标签数据和由NAC改造的数据,预测性标签数据的比例被设定为0.5。
这种无标签数据的增加可能会提高NAC对未知架构的蓬勃发展的性能。
这是关于NAC的描述。综上所述,我们列出了NAC相对于现有方法的优势。
- 使用比较而不是估计绝对业绩可以提供更稳定的奖励。
- 它比在验证数据上评估性能要快,因为它通过比较架构图来评估架构。
- 当准备好m个架构及其估计精度对数据时,NAC可以提供m(m-1)/2个训练对,而直接精度估计方法只能提供m个训练数据。因此,NAC减少了所需的训练样本的数量。
实验
本节探讨了所提方法的验证结果。
在NAS-Bench-101上进行的实验
首先,考察了NAC的架构比较的性能。为了比较架构比较的性能,我们考虑等级相关。排名相关是衡量排名之间的相关性,并通过衡量地面真实排名与NAC预测的排名之间的相关性来验证NAC的准确性。
比较的结果如下图所示。
结果显示,建议的方法具有最高的等级相关性(KTau)。这也表明,平均准确率也达到了最高。
图像网的实验
然后将所提出的方法在图像网中的表现与其他NAS方法进行比较。结果显示在下面的表格中。
该表显示,与其他方法相比,所探索的架构的性能处于较高水平,而搜索时间非常短。
每个NAC模块的性能验证。
架构评估的时间成本
其他NAS方法和建筑评估的时间成本之间的比较显示在下面的方程式中。
这表明,所提出的方法(CTNAS)可以在很短的时间内进行架构评估。
基准线更新的效果
为了测试基线更新的效果,我们比较了三种情况:当CTNAS以固定的基线运行时,当CTNAS以随机选择的基线运行时,以及当使用拟议的方法时。结果如下。
这表明,当随机选择基线时,准确性的差异是很大的。将固定的基线与提议的方法相比较,也可以看出性能有一定程度的提高,尽管没有明显的差异。
数据探索方法的有效性。
为了测试数据探索方法的有效性,对有数据探索和无数据探索的案例进行了比较。由于数据探索的比例取为r,通过改变r来检查结果。结果如下。
该表显示,当没有进行数据探索时(r=0),准确率很低,而当过于依赖探索时(r=0.8),差异较大。这一结果表明,r=0.5是一个合适的数据比例。
摘要
在本文中,我们提出了对比性神经结构搜索,它基于采样的结构和基线之间的比较来进行搜索。我们发现基于比较的架构评估和使用图形网络来填充架构非常有趣。
与本文相关的类别