BossNAS: Exploring Hybrid CNN-transformers with Block-wiselySelf-supervised Neural Architecture Sea
This repository contains PyTorch code and pretrained models of our paper: BossNAS: Exploring Hybrid CNN-transformers with Block-wisely Self-supervised Neural Architecture Search (ICCV 2021).
code:changlin31/BossNAS: (ICCV 2021) BossNAS: Exploring Hybrid CNN-transformers with Block-wisely Self-supervised Neural Architecture Search
近期在视觉识别领域手工设计的神经网络架构取得的一系列突破,凸显了探索由多样化构建块[diversified building blocks]组成的混合架构的迫切需求。与此同时,旨在减少人工投入的神经架构搜索方法正在蓬勃发展。然而,NAS方法能否高效处理包含差异候选架构(如CNN和Transformer)的多样化搜索空间,仍是一个开放性问题。本工作中,我们提出了分块自监督神经架构搜索(BossNAS)[Block-wisely Self-supervised Neural Architecture Search (BossNAS)],这是一种无监督NAS方法,解决了先前方法中因权重共享空间过大和监督偏差导致的架构评分不准确问题。具体而言,我们将搜索空间分解为多个块,并采用名为\"集成自举\"[ensemble bootstrapping]的新型自监督训练方案,先分别训练每个块,再整体搜索朝向群体中心。此外,我们提出了HyTra搜索空间,这是一个类似织物的混合CNN-Transformer搜索空间,具有可搜索的下采样[searchable down-sampling]位置。在这个具有挑战性的搜索空间中,我们搜索得到的BossNet-T模型在ImageNet上达到82.5%的准确率,在计算时间相当的情况下超越EfficientNet达2.4%。此外,我们的方法在标准MBConv搜索空间(ImageNet)和NATS-Bench大小搜索空间(CIFAR-100)上分别获得0.78和0.76的Spearman相关性,展现出卓越的架构评分准确性,超越了最先进的NAS方法。
1. Introduction
过去几年中,神经网络架构的发展为广泛的视觉识别任务带来了显著进步。这类模型的代表性例子包括ResNet[25]、SENet[31]、MobileNet[30]和EfficientNet[64]。最近,新兴的基于注意力的架构在视觉领域崭露头角,挑战了卷积神经网络(CNNs)的主导地位。由ViT[20]和DETR[8]引领的这一视觉Transformer突破性进展,在图像分类[20,66,79,14,9]、目标检测[8,90,62]、语义分割[88]等各类视觉任务中都取得了具有竞争力的性能。
如先前工作[20,62,3]所示,CNN和Transformer的混合架构可以超越纯Transformer和纯CNN。尽管网络设计带来了巨大进步,但手动寻找优化良好的混合架构仍然具有挑战性,特别是随着设计选择数量的增加。神经架构搜索(NAS)是一种流行的方法,通过在预定义的搜索空间中自动搜索最优架构,来减少网络架构设计中的人力投入。
在人工设计的构建块上执行NAS的代表性成功案例包括MobileNetV3[29]、EfficientNet[64]等。这些工作是通过多试验NAS方法[63,92,2,89,12,47]搜索得到的,这些方法计算成本极高(需要数千GPU天)。最近的权重共享NAS方法[weight-sharing NAS methods][6,53,4,43]将整个搜索空间编码为权重共享的超网,以避免候选网络的重复训练,从而大幅降低搜索成本。
然而,如图1a所示,具有层级粒度的架构搜索空间随着网络深度增加呈指数级增长,这已被[37,39]确认为权重共享NAS方法中架构评分不准确的主要原因。
图1:三种NAS方案的对比,红色箭头表示训练和搜索过程中的监督。
为减小大型权重共享空间的规模,先前工作[37,46]将搜索空间分解为块,并使用预训练教师模型[pretrained teacher model]提供块级监督(图1b)。尽管具有高排名相关性和高效率,但我们发现(第5节)其结果与教师架构高度相关。如图1b所示,当使用具有蓝色节点的教师模型训练时,含有更多蓝色节点的候选架构在这些方法中往往获得更高排名。这限制了其在包含差异候选架构(如CNN和Transformer)的多样化搜索空间中的应用。
另一方面,无监督NAS[unsupervised NAS][41]最近已成为一个有趣的研究课题。在没有人工标注标签的情况下,无监督NAS方法(通过前置任务[41]或随机标签[87]优化)已被证明能够达到与有监督NAS方法相当的性能。因此,我们提出在上述分块NAS方案(图1c)中使用无监督学习方法替代有监督蒸馏,旨在解决由教师模型使用引起的架构偏差问题。
本工作中,我们提出了一种新型无监督NAS方法——分块自监督神经架构搜索(BossNAS),旨在解决权重共享空间过大导致的预测性架构排序不准确问题,同时避免教师模型使用可能引发的架构偏差。不同于前述采用蒸馏作为中间监督的分块解决方案,我们提出了一种名为\"集成自举\"[ensemble bootstrapping]的自监督表征学习方案来优化超网的每个区块。
具体而言,每个采样子网络[sampled sub-network]被训练用于预测目标网络中所有采样子网络在不同图像增强视图间的概率集成[probability ensemble]。在搜索阶段,我们提出无监督评估指标,通过向架构群体中心[the architecture population center]搜索来确保公平性。更准确地说,群体中所有架构的概率集成[the probability ensemble]被用作评估目标,以衡量采样模型的性能。
此外,我们设计了具有可搜索下采样位置的织物状混合CNN-Transformer搜索空间(HyTra)[a fabric-like hybrid CNN-transformer search space (HyTra)],并将其作为评估方法的混合架构案例研究。在HyTra搜索空间的每一层中,不同分辨率的CNN构建块和Transformer构建块并行排列并可灵活选择。这个多样化搜索空间既包含固定内容长度的纯Transformer,也包含空间尺度逐步缩减的标准CNN。
我们证明所提出的NAS方法能够在三个不同搜索空间和三个数据集上表现出良好的泛化能力。在HyTra搜索空间上,我们搜索得到的模型性能超越了监督式NAS方法[37]的结果,证明该方法成功避免了监督蒸馏可能带来的架构偏差。我们的方法在标准MBConv搜索空间(ImageNet)和NATS-Bench大小搜索空间SS17上分别获得0.78和0.76的Spearman相关性,展现出卓越的架构评分准确性,超越了最先进的NAS方法。
这证明我们的方法成功抑制了由权重共享空间过大导致的架构评分不准确问题。在HyTra搜索空间上搜索得到的模型在ImageNet上达到82.5%准确率,在计算时间相当的情况下超越EfficientNet[64]达2.4%。通过BossNet-T提供的优异结果,我们希望这个包含差异候选架构和高性能架构的多样化HyTra搜索空间能够成为未来NAS研究的新平台。我们也希望BossNAS能够成为混合架构设计领域广泛使用的工具。
2. Related Works
分块权重共享NAS方法[Block-wise weight-sharing NAS][37,46,84,85]将超网分解为独立优化的模块,从而减少权重共享空间,解决了权重共享导致的架构评分不准确问题。DNA[37]首次提出了基于知识蒸馏的分块监督架构评分方案。基于此方案,DONNA[46]进一步提出使用分块评分的线性组合而非简单求和来预测架构评分。SP[84]首次将该方案应用于网络剪枝。然而,上述方法都依赖于监督蒸馏方案,这不可避免地引入了来自教师模型的架构偏差。因此,我们提出了一种分块自监督方案,完全摆脱了教师架构的束缚。 无监督NAS方法[Unsupervised NAS][41,87]无需人工标注标签即可执行架构搜索。UnNAS[41]将 无监督前置任务[unsupervised pretext tasks][35,48,86]引入权重共享NAS,用于超网训练和架构评分。RLNAS[87]使用随机标签[81,45]优化超网,并通过基于收敛的角度度量[32]进一步评估架构。另一类属于监督NAS的方法[72,69,27,51]在监督微调或评估前,对网络精度预测器或超网进行无监督预训练。与前述工作在动机和方法论上不同,我们在无监督NAS方案中探索 自监督对比学习方法[self-supervised contrastive learning],以避免分块NAS中的监督偏差。 自监督对比学习[Self-supervised contrastive learning]方法[49,71,28,65,91,24,10]显著推进了视觉表征的无监督学习。这些方法通过聚合同一图像不同视角的表征[gathering the representations of different views],并区分不同图像的表征,以判别式方式学习视觉表征[representations of different views]。近期,创新的BYOL[21]和SimSiam[11]实现了无需负样本的视觉表征学习。这些工作使用结构相同且权重共享的孪生网络[11],或将其中一个分支作为动量编码器,直接预测不同视角间的表征,从而形成自举[bootstrapping]方案[21]。我们的工作将带有概率集成的新型自举方案引入孪生超网。 架构搜索空间。[Architecture Search Spaces.]基于单元的搜索空间最早由[93]提出,常见于早期NAS方法[42,54,43,52]和基准测试[74,19,17]。这类空间搜索可重复的 单元级架构[cell-level architecture],同时保持人工设计的网络级架构。相比之下,具有层级粒度[7,70,15,37,46,87]和块级粒度[63,29,64]的网络级搜索空间,使用人工设计的构建块(如MBConv[56])搜索宏观网络结构。Auto-DeepLab[40]提出了面向语义分割的分层搜索空间,兼具可重复单元和织物状[57]网络结构。我们的HyTra搜索空间同样具有织物状网络级结构,但采用层级粒度而非重复单元。
3. Block-wisely Self-supervised NAS
在本节中,我们首先简要介绍NAS面临的困境及其分块式解决方案[37,46,84,85],随后详细阐述我们提出的BossNAS架构,并重点说明其两大核心要素:i)采用集成引导的无监督超网络训练阶段;ii)通过无监督架构评分与搜索阶段实现架构种群中心化。符号说明:标量、张量及张量集合[scalars, tensors and sets of tensors]分别用小写字母、加粗小写字母和大写字母(如 )表示。为简化表述,我们使用
表示集合
,其基数[cardinality]为
。
3.1.NAS算法的困境与分块式解决方案 NAS算法的困境:效率与精度之争。
3.1. Dilemma of NAS and the Block-wise Solutions Dilemma of NAS: efficiency or accuracy. 虽然基于经典样本的NAS方法能生成精准的架构评分,但其计算成本过高难以承受。一次性NAS方法中的权重共享评分方案通过将整个搜索空间 编码为权重共享超网络,实现了搜索成本的大幅降低——所有候选架构共享权重
,并通过以下公式进行同步优化:
。其中,
表示训练损失函数,
和
分别代表输入数据和标签。随后,基于共享网络权重的评分排名来搜索架构
。为简化表述,我们选择评估损失函数
作为评分指标;搜索过程可表述为:
。 然而,基于共享权重
的架构排名未必能准确反映真实排序,因为从超网络继承的权重高度纠缠,未能实现完全且公平的优化。正如文献[58,73,80]所指出的,权重共享方法存在架构评分精度较低的问题。 块级监督神经架构搜索(Block-wisely supervised NAS)。正如[39,37,46]通过理论与实验验证的那样,减少权重共享空间(即总权重共享架构数量)能有效提升架构评分的准确性。在实践中,块级解决方案[37,46,84,85]通过深度维度[depth dimension]上的块级分解搜索空间,找到了突破NAS困境的途径——在保持原始搜索空间规模不变的前提下,有效缩减了权重共享空间。给定一个由
个块
组成的超网络[supernet],其中
和
分别表示其权重和架构参数,这些参数在深度维度上可被块级分离。该超网络的每个块都会先单独训练,随后通过将各块评估损失
按系数
进行加权求和([37])或线性组合([46]),再对所有块进行联合搜索:
为分离每个子网络模块的训练过程,给定输入x时,第k个模块的中间输入和目标
由固定教师网络
(具有架构
和真实权重
)生成:
,以及
,其中k > 1,
表示第k个模块之后截断的教师网络[the teacher network truncated after the k-th block]。由于训练和搜索阶段使用的数据均由教师模型
生成,因此架构评分很可能与教师架构高度相关。例如,卷积教师模型具有有限的感受野和独特的结构归纳偏置(如平移等变性)。在这种带有偏置的监督机制下,候选架构很可能被不公平地训练和评分。我们观察到两个现象,可以归因于有偏监督,即候选性能,教师性能。第5节对这两个现象进行了详细的实验分析。为了突破当前分块式NAS解决方案的限制,我们探索了一种不使用教师模型的方案。
3.2. Training with Ensemble Bootstrapping
基于师生配对网络架构 ,要摆脱传统教师架构的束缚,第一步是将
设为A,从而形成孪生超网络[Siamese supernets]。 通过孪生超网络进行引导优化[Bootstrapping with Siamese Supernets.]。为了实现这种分块优化的孪生网络,我们采用自监督对比学习方案。具体来说,这两个超网络会接收同一训练样本x的增强视图
,分别生成输出结果
。与之前的师生配置类似,通过最小化输出差异来优化孪生超网络。在以往的孪生网络和自监督对比学习方法中,两个网络要么共享权重矩阵[10,11](即
),要么采用指数移动平均(EMA)的均值教师方案(即
,其中
表示
的时序平均值,
为训练时间戳,
是控制
更新速度的动量因子)。通过从均值教师学习表征,类似于简单而强大的BYOL [21]方法,我们的超网络无需依赖完全监督的教师网络即可实现无监督优化:
(对公式2的理解是,训练两个对比学习的教师模型的训练损失最低) 为消除增强操作(如随机裁剪)导致的两个中间表征之间像素级差异的影响,并确保在具有不同接收域甚至不同分辨率的候选架构上获得更好的泛化能力,我们在计算元素间距离[element-wise distance]前将 表征[representations]投影到 潜在空间[the latent space]。 集成引导法[Ensemble Bootstrapping.]。然而,与单一网络不同,超网络通常采用 路径采样[path sampling]策略进行优化,例如单路径[22]或公平路径[15]。当简单采用引导法时,每个子网络仅从自身移动平均值中学习。由于缺乏共同目标函数[ a common objective],不同子网络共享的权重会遭遇收敛困难,导致训练不稳定且架构评分不准确。为解决这一问题,我们提出了一种名为集成引导法的无监督超网络训练方案。 在第t次训练迭代中,从搜索空间A的第k个区块中采样得到
个子网络
,并给定训练样本x后,针对 每个采样的孪生超网络子网络,生成增强视图对
和
。为统一所有路径的目标函数,我们可采用类似于监督学习中集成蒸馏方法([59,60])的方案。如图2所示,EMA超网络中的每个在线孪生超网络子网络都会学习 预测所有采样子网络的概率集合:
图2:通过集成引导法训练连体超网络的示意图。 综上所述,孪生超网络的区块级自监督训练过程可表述为:
(我对这个公式4的理解,孪生超网对,相当于师生模型,他们有着不同的权重获得方法,然后训练目标是使得这个孪生超网对的预测结果越接近,训练误差就认为越小。使得所有的子网络的孪生对预测结果差距之后最小的W就是最终的W。)
3.3. Searching Towards the Population Center
在完成孪生超网络的收敛后,可根据式1中基于超网络权重确定的评分对架构进行排序和搜索。本节设计了一种公平有效的无监督评分指标 用于搜索阶段。为评估对比自监督训练网络的性能,先前研究[24,10,21,11]采用了监督指标,如线性评估准确率或少样本分类。为开发无监督NAS方法,我们旨在避免依赖人工标注标签的方案,转而采用完全无监督的评估指标。以往无监督NAS方法[41,87]通过预设任务的准确率或基于角度的收敛度量来评估候选架构。遗憾的是,自监督对比学习的损失并不一定代表架构性能或架构收敛,由于输入视图和目标网络都是随机采样的,且目标网络存在一定程度的偏差,无法作为真实目标。为解决这些问题,我们提出了一种公平有效的无监督评估指标,用于架构搜索。 为避免泛化问题,我们采用 进化算法[evolutionary algorithm][12,54]进行架构搜索,通过演化架构种群
实现优化。与权重优化类似,我们建议以种群
的概率集合作为共同目标,为每个架构
提供公平的评分。此外,针对每个验证样本x,我们生成并固定一对视图
以消除变量增强带来的偏差。与公式3并行,我们得到架构种群的概率集合:
在实际操作中,通过将超网络划分为中等规模的区块(例如4层各包含4个候选结构,即4×4 = 256种架构),可以高效完成所有候选架构的遍历评估。此时,架构集合
扩展至整个区块级搜索空间
,整个搜索过程只需一步即可完成:
4. Hybrid CNN-transformer Search Space
在本节中,我们提出了一种织物状的混合CNN-transformer搜索空间[a fabric-like hybrid CNN-transformer search space],命名为HyTra,具有不同的候选构建块和灵活的下采样位置。
4.1. CNN and Transformer Candidate Blocks
图3:具有灵活下采样位置的类织物混合CNN-transformer搜索空间示意图。 CNN-transformer搜索空间设计的第一步是确定合适的CNN和Transformer基础模块。这两种模块应能同时满足顺序聚合和自由组合的双重需求。我们选择ResNet [25]中的经典且稳健的残差瓶颈(ResConv)作为CNN候选模块,同时基于可插拔BoTBlock [62]和NLBlock [68]设计了轻量级且稳健的Transformer模块ResAtt。计算平衡与隐式位置编码的结合。为确保公平且有意义的竞争,候选模块应具有相近的计算复杂度。 原始BoTBlock因需通过与查询[query]向量相乘单独计算相对位置编码,其运算速度较ResConv更慢。若像NLBlocks那样移除BoTBlock的内容-位置分支,可降低其计算时间使其与ResConv相当。然而,位置编码对视觉Transformer的性能至关重要。CPVT [14]的作者在Transformer编码块之间使用单层卷积作为位置编码生成器[position encoding generator]。类似地,我们将BoTBlock中的相对位置编码分支替换为浅层深度可分离卷积作为隐式位置编码模块,从而构建出我们的ResAtt。通过这一简单改进,我们将位置编码模块的计算复杂度从原始的
降低到
,其中C表示通道数,W表示宽度或高度。与CPVT和BoT(图4)不同,我们的位置编码模块(图3右侧)被置于输入投影层与自注意力模块之间。此外,我们的隐式位置编码模块还承担着下采样功能。该改进同样应用于ResConv网络,使得不同下采样率(如1或2)的候选块之间能够实现权重共享。
图4:CPVT [14]和BoT [62]中的transformer模块。
4.2. Fabric of Hybrid CNN-transformers
除了基础架构模块外,卷积神经网络(CNN)与transformers 在宏观架构上存在显著差异。与采用不同空间尺寸分阶段处理图像的CNN不同,transformers 通常不会改变序列长度(即图像块),并在各层保持相同尺度。如图3左所示,为兼顾CNN和变换器特性,我们的搜索空间设计采用了灵活的下采样位置,构建出混合CNN-transformers结构[57]。在该结构的每个选择块层中,空间分辨率可保持不变或缩减至原有尺度的一半,直至达到最小尺度。这种类似织物的搜索空间包含不同尺度下的典型架构:既有流行的视觉transformers [20,66,14],也有CNN架构[25,31]和混合CNN-transformers 架构[62]。