不需要学习就能评估架构! 什么是Zero-Shot NAS [Zen-NAS]?
三个要点
✔️ 提议的Zen-Score,一个用于NAS的Zero-Shot指标,以及使用它的Zen-NAS
✔️ 在0.5个GPU日内实现了ImageNet-top-1的83.6%的准确性。
✔️ 与现有方法相比,实现了非常高的搜索方法水平
Zen-NAS: A Zero-Shot NAS for High-Performance Deep Image Recognition
written by Ming Lin, Pichao Wang, Zhenhong Sun, Hesen Chen, Xiuyu Sun, Qi Qian, Hao Li, Rong Jin
(Submitted on 1 Feb 2021 (v1), last revised 23 Aug 2021 (this version, v4))
Comments: Accepted by ICCV 2021
Subjects: Computer Vision and Pattern Recognition (cs.CV); Machine Learning (cs.LG)
code:![]()
![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的 。
简介
降低神经结构搜索(NAS)的计算成本是一项重大挑战,NAS是一种搜索最佳神经网络结构的方法。例如,AmoebaNet需要大约3150个GPU天来搜索一个架构,这在NAS刚推出时是一个非同寻常的计算成本。
为了应对这一挑战,人们提出了各种方法来降低计算的复杂性,例如One-Shot NAS(例如1,2),它训练一个大型超网,然后评估其内部子网的性能,以及在训练过程中预测模型最终性能的方法。
在这篇文章中,我们提出了Zen-Score,一个用于评估架构性能的零点指标。Zen-NAS使用Zen-Score作为评估架构准确性的代理,成功地探索了架构,比现有的NAS方法更快、更准确。
禅宗分数
Zen-Score是一个用于评估架构性能的Zero-Shot指标,包含两个主要建议。
- 衡量香草卷积神经网络(VCN)的表达能力,$Phi -Score$。
- 用$Zen-Score$和$Phi-Score$进行修改,用于实际的架构准确性评估
香草卷积神经网络(VCN)是一个简单的架构,其中每一层由一个卷积运算和一个RELU激活函数组成。以下各节依次介绍$Phi-Score$和$Zen-Score$。
About $/Phi -Score$
原文中提出的$Phi-Score$是衡量香草卷积神经网络(VCN)的表达能力的一个标准。
关于神经网络的力量论神经网络的表达能力
$Phi-Score$是基于现有的关于神经网络表现力的理论工作。
一个特别重要的发现是,一个香草网络(其激活函数是一个片状线性函数,如RELU)可以被分解成以激活模式为条件的线性函数。让$A_t(x)$为第t层的激活模式,那么任何香草网络$f(\cdot)$可以表示为
$f(x|\theta)=\sum_{S_i \in S}I_x(S_i) W_{S_i}x$
在这种情况下,$S_i$是对应于激活模式${A_1(x),A_2(x),A_L(x)}$的线性区域(凸多边形),$I_x(S_i)$是当$x/in S_i$时为1,否则为0的函数,而$W_{S_i}$是系数矩阵。(另外,不谈细节,现代网络中使用的辅助结构,如剩余连接、批量规范化、自我关注块等,对网络的表现力没有重大影响。因此,在测量表达能力时,这些辅助结构被暂时删除,然后在训练和测试阶段重新添加)。)
对于线性域中的一个数字$|S|$来说
在现有的理论工作中,香草网络中的线性区域的数量,$|S|$,被用作衡量网络的表达能力。
例如,Montúfar等人表明,深层NN比浅层NN有更多的线性区域,证明了深层神经网络在理论上的优越性。例如,从同一论文中的下图可以看出,大量的线性区域可以作为衡量网络表现力的标准
该图显示了总单元数相同的1层(实线)/2层(虚线)训练模型的决策界限。在图中的情况下,我们可以看到,两层模型(虚线)有更多的线性部分,更准确地接近了适当的边界。
关于系数矩阵$W_{S_i}$和相关的高斯复杂性
如上式所示,香草网络被分解为线性函数$f(X)=W_{S_i}X$,对应于一个线性域$S_i$。
在这种情况下,高斯复杂度($G(F)=E[sup_{f\in F}\frac{1}{n}\sum^n_{i=1}f(x_i)\epsilon_i]$,$epsilon_i~N(0,1)$),被认为是衡量一组实值函数$F$的复杂性。以下是关于以下的关系对于一个线性函数类$f:f(X)=WX s.t. ||W||_F\leq G$,$O(G)$是高斯复杂性的上限。因此,不仅线性域$|S||$的数量,而且与系数矩阵$W$相关的高斯复杂性($|W||$的Frobenius规范)都可以作为衡量香草网络的表达能力的标准。
$\Phi -Score$
如上所述,与线性域$|S|$的数量或系数矩阵$W_{S_i}$相关的高斯复杂度可作为表达能力的衡量标准。
然而,在实践中,在一个大的网络上测量线性区域$|S|$的数量在计算上是不可行的,因此很难将其作为一个衡量标准。基于这些发现,$Phi -Score$被定义为香草网络$f(\cdot)$的高斯复杂性的预期值。
$\Phi(f)log E_{x,\theta} \{\sum_{S_i \in S}I_x(S_i)||W_{S_i}||_F\}$
$=log E_{x,\theta} ||\nabla_x f(x|\theta)||_F$
因此,$Phi-Score$等同于计算输入$x$的$f$梯度规范的期望值。
关于Zen-Score
对$Phi-Score$的计算挑战。
如上所述,$Phi -Score$被定义为香草网络表现力的标准,但在实际应用于NAS时存在挑战。
具体来说,计算一个非常深的网络的$Phi-Score$,如果没有BatchNormalization层,会因为梯度爆炸而导致溢出。
如图(a)所示,当层数达到30时,就会出现溢出。另一方面,当用BatchNormalization层计算$Phi-Score$时,$Phi-Score$非常小,如图(b)所示(注意纵轴的数值)。
Zen-Score是对$Phi-Score$的修改,以解决这一现象(BN-rescaling)。
禅宗分数
Zen-Score的计算方法和管道如下
关于Zen-NAS
Zen-NAS,即原论文中最终推导出的Zero-Shot NAS算法,是一种寻找使Zen-Score最大化的架构的方法。Zen-NAS使用进化算法,它看起来像这样
MUTATE表示进化算法中的突变,具体来说就是
突变中层的宽度和深度在[0.5, 2.0]范围内突变。
经过$T乘以$的迭代,具有最大Zen-Score的架构被命名为ZenNets,是Zen-NAS的输出。
实验结果
实验设置
实验是在CIFAR-10/CIFAR-100和ImageNet-1k上进行的。
与现有的Zero-Shot代理的比较
首先,使用相同的搜索空间、搜索策略和学习设置,与现有的Zero-Shot代理进行对比实验,结果如下所示。
可以看出,其结果优于现有方法。在分辨率为224x224的情况下,ResNet的计算时间如下所示
表中的$N$和$time$表示处理$N$图像需要$time$秒。与现有的Zero-Shot代理相比,我们的结果表明,它在计算上也是高效的。
ZenNets和现有模型的性能比较
下面是ZenNets和现有模型在ImageNet数据集上的性能比较,Zen-Nas在NVIDIA V100 GPU上使用FP16,批处理量为64,GPU天数为0.5。
如图所示,ZenNets在top-1准确率和推理时间方面明显优于现有方法。
对计算复杂度限制在400/600/900M FLOPS的轻量级网络的搜索结果如下所示。
在这种情况下,ZenNets也显示了出色的效果。
Zen-NAS与现有NAS方法的比较
Zen-NAS与现有NAS方法的比较结果如下
然而,由于很难在相同的条件下进行比较,因此提供了每种方法的最佳模型和计算成本。
对于表中的方法,EA代表进化算法,GD代表梯度下降,RL代表强化学习,ZS代表零点射击,其他代表特定的特殊搜索方法。总的来说,Zen-NAS在Top-1精度和搜索时间方面都显示出很高的水准。
摘要
在这篇文章中,我们提出了Zen-Score作为网络表现力的标准和Zen-NAS来最大化它。
与现有的NAS方法相比,Zen-NAS成功地探索了架构,速度更快,精度更高。正如文章中提到的,Zen-NAS中使用的Zen-Score指标是基于神经网络的理论研究而提出的(如Montufar等人,Xiong等人)。其他细节见原始论文)。)
这也是一个关于神经网络的理论研究如何帮助我们理解高效网络设计的例子,它是一项非常有趣的研究,有望在未来刺激进一步的理论研究。
与本文相关的类别