跨任务神经网络架构搜索
跨任务神经网络架构搜索
华为杯企业赛题:
神经网络架构搜索对提高模型精度,减少模型计算量,提高推理速度起着很大的作用。然而神经网络架构搜索需要消耗大量计算资源,尤其是在大型数据集(如ImageNet)和复杂任务(如物体检测、语义分割)上。这对算法的高效性有很大的要求。同时,不同任务存在差异, 把在一个任务上搜索得到的架构直接用到另一个任务上可能不是最优的,这对算法的通用性也有一定的要求。请设计一个算法,能适用于多个任务的网络架构搜索,如(不限于,也不需包括)图片分类,物体检测等,并且能高效地返回最优的网络架构。
具体要求:
1.给定若干个不同任务(或数据集),输出各自最优网络架构,(训练后)达到高准确率。
2.算法能够从搜索过的任务学习到经验,并用到新任务中来提高搜索效率。
参考数据集:
图片分类:MNIST,CIFAR10,CIFAR100,ImageNet;物体检测、语义分割:PASCAL、VOC
最新文献总结
优化传统NAS的方法:
1.搜索空间的特殊结构
2.单个结构的权重或者性能的预测
3.多个结构之间的权值共享
一、DARTS
目前主流方法效率低下的内在原因在于把结构搜索视为一个在离散域的黑箱优化问题,这导致需要大量的架构评估。
本文主要提出了一种通过可微的方式进行结构搜索的方法(DARTS)。不同于传统的在离散的和不可微的搜索空间上采用进化或强化学习搜索结构的方法,本文提出的方法主要是基于将结构表示的松弛(relaxation),允许使用梯度下降进行高效的架构搜索。本文已经在CIFAR-10,ImageNet,Penn Treebank和WikiText-2等数据集上进行了大量实验,结果表明本文提出的算法对于常用于图像分类的卷积神经网络和用于语言建模的循环神经网络都有很好的表现,并且比目前采用非微分的方法速度快几个数量级。
本文的主要贡献可以归纳为如下几点:
1、本文引入了一种适用于卷积和循环结构的可微分网络体系结构搜索的新算法。
2、大量实验表明本文提出的算法在图片分类和语言建模任务上有很有竞争力的表现。
3、本文实现了极高的结构搜索效率,这归功于使用了基于梯度的优化而不是非微分搜索技术。
4、本文证明了DARTS学习的架构具备可迁移性。
二、PC-DARTS
PC-DARTS是一种基于DARTS的内存高效可微体系结构方法。它主要侧重于通过单次NAS方法降低超级网络的大内存成本,这意味着它还可以与其他单次NAS方法(例如ENAS)结合使用。与以前的采样操作方法不同,PC-DARTS对构建的超级网络的通道进行采样。有趣的是,尽管我们在搜索过程中引入了随机性,但搜索架构的性能比DARTS更好,更稳定!
贡献点
1、设计了基于channel的sampling机制,故每次只有小部分1/K channel的node来进行operation search,减少了(K-1)/K 的memory,故batchsize可增大为K倍。
2、为了解决上述channel采样导致的不稳定性,提出了边缘正规化(edge normalization),在搜索时通过学习edge-level超参来减少不确定性。
三、深度神经网络架构优化与设计
DenseNet是最近提出的神经网络架构,在许多视觉任务中达到了业界最先进的水平。然而由于层与层之间测稠密链接,具有很大的冗余度,导致这种密集网络在实际部署推断过程中具有很高的计算成本。
基于此,作者使用NAS来自动化学习和设计计算资源受限下的最优子网络架构。具体地,将DenseNet拓扑结构定义为搜索空间,基于预训练DenseNet模型,设计了一个A2C强化学习框架作为搜索策略,使用长短期记忆网络LSTM表示策略网络,多层感知机MLP表示价值网络。策略网络的输出作为高维伯努利分布,基于策略分布采样可以制定原始DenseNet结构中内部的新的连接方式,从而得到新的子网络拓扑结构。对于学习到的子网络,还制定了神经网络架构性能评估策略,该策略考虑了模型浮点运算量和在分类任务中的预测准确度作为强化学习只能提的奖赏反馈。使用策略梯度更新策略网络参数过程,相当于是智能体评估任何两个块层之间每个连接的重要性,根据重要性不同,最终做出裁剪或保留连接的决策。针对不同任务使用分层裁剪(LWP)方法来搜索高效DenseNet架构,同时保留原始DenseNet的优势,如特征重用、短路径等。此外,引入了一种新颖的奖励塑形技巧,使裁剪后的DenseNet在准确度和浮点运算(FLOPs)之间达成更好的平衡,同时加快了策略搜索过程。
四、Meta Architecture Search
由于设计空间的组合性,手工设计的网络架构既耗时又不可避免地达到次优。自动神经体系结构搜索(NAS)在寻找高性能体系结构方面取得了巨大成功。然而,人们可能需要同时为多个相似的任务优化体系结构,例如解决不同的分类任务,甚至优化任务网络,以便在多个硬件平台上实现高精度和高效的推理。尽管跨任务迁移架构已经取得成功,但最近的工作越来越显示出最优架构可能会在相似的任务中有所不同。为了获得最好的结果,NAS需要为每一个任务重复运行,成本非常高。
本文首次尝试研究元架构搜索,其目的是学习一种任务无关的表示,可以用来加速对大量任务的架构搜索过程。我们提出了贝叶斯元架构搜索(BASE)框架,它利用架构搜索问题的贝叶斯公式,同时学习整个任务集。结果表明,在Imagenet分类中,通过在一个8gpu天的预训练元网络中采用这种结构,我们可以在不到一个小时的时间内找到一个达到25.7%的top-1错误和8.1%的top-5错误的模型。通过学习NAS的良好先验知识,我们的方法显著降低了所需的计算成本,同时获得了与当前最先进方法相当的性能,甚至可以很快地为未知数据集找到竞争模型。BASE框架将为跨多个任务的高效和大规模可伸缩架构搜索研究开辟新的可能性。
元架构搜索(Meta Architecture Search)见下图,目的是学习一种可用于高效搜索多任务的任务无关表示。
Meta-Network表示跨任务架构搜索的collective knowledge.
元架构搜索利用了任务间的相似性及其最优网络中相应的相似性,大大缩短了训练时间,并能快速适应新的任务。我们从贝叶斯的角度来描述元结构搜索问题,并提出贝叶斯元结构搜索(BASE),这是一个新的框架,用于推导一种用于学习任务分配的最优权重和结构的变分推理方法。为了参数化架构搜索空间,我们使用一个随机神经网络,它包含了我们架构空间中所有可能的架构。通过在路径分布参数化中使用Gumbel softmax分布,可以对包含整个体系结构空间的网络进行差异优化。为了解释神经网络结构和权值后验分布中的任务分布,我们利用优化嵌入技术来设计后验函数的参数化。这使得我们可以把它训练成一个在任务分配上优化的元网络。
五、Efficient Architecture Search by Network Transformation
新框架EAS:基于当前网络探索网络结构空间,再利用它的权重。采用强化学习代理作为元控制器,其作用是通过保持功能的转换来增加网络深度或层宽度。
六、TOWARDS FAST ADAPTATION OF NEURAL ARCHITECTURES WITH META LEARNING
NAS与手工设计的网络相比具有更好的性能,并已经广泛应用于多个人工智能领域。但是现有的NAS方法仅针对特定任务,大多数只在单任务中表现良好,但对于多个数据集或多个任务却会遇到麻烦。通常,针对新任务的体系结构要么是从头开始搜索的(对于实际应用场景而言,效率或灵活性不足),要么是从其他任务上搜索的结构中借用的,这可能不是最佳选择。为了解决NAS的可移植性并快速适应神经体系结构,本文提出了一种基于元学习的可转移神经体系结构搜索方法,即T-NAS。 T-NAS学习了一种元体系结构,该体系结构可以通过几个渐变步骤快速适应新任务,这使转移的体系结构适合于特定任务。大量的实验表明,T-NAS在few-shot learning中达到了最先进的性能,在监督学习中达到了可比的性能,但搜索成本却降低了50倍,这证明了我们方法的有效性。
本文仅用于个人学习,如有侵权,请谅解(狗头保命)