神经架构搜索(NAS)2020最新综述:挑战与解决方案

终于把这篇NAS最新的综述整理的survey放了上来,文件比较大,内容比较多。这个NAS的survey是A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions的写作过程中的整理的原材料,文章目前孩还在审稿阶段可以预览。
相关报道:
西北大学最新《神经架构搜索NAS》2020综述综述论文,30页pdf152篇文献阐述进展、挑战与解决方案
别外,由于知乎的.md文件表格上传格式过于难调,也推荐大家阅读github上关于近年NAS的idea整理。
pzhren/Awesome-NAS

CSDN对.md表格支持的相当不错,只是不能导入.word导致本地的大量图片无法显示。本文总结了近年来NAS最新的发展,并给出了对应paper的大致思路。最后给出了部分文章的阅读笔记,可在知乎链接神经架构搜索(NAS)2020最新综述:挑战与解决方案或者github-pzhren/Awesome-NAS进行完整查看。

思路

初代网络

特征与评价

特征
  • 全局搜索(global-based)
  • 从头搜索, 模型从零开始构建
  • 从零训练, 对候选模型进行完整的训练, 评估其性能
  • 使用RL和EA算法, 离散的搜索空间
对EA和RL的评价:
  • EA: When using evolutionary algorithms (EA), each neural network structure is encoded as a string, and random mutations and recombinations of the strings are performed during the search process; each string (model) is then trained and evaluated on a validation set, and the top performing models generate “children”.

  • RL: When using reinforcement learning (RL), the agent performs a sequence of actions, which specifies the structure of the model; this model is then trained and its validation performance is returned as the reward, which is used to update the RNN controller.

  • Although both EA and RL methods have been able to learn network structures that outperform manually designed architectures, they require significant computational resources. For example, the RL method in [41] trains and evaluates 20,000 neural networks across 500 P100 GPUs over 4 days.

Progressive Neural Architecture Search (ECCV’18)

TitleVenueTypeIdea
[Neural Architecture Search with Reinforcement Learning](./17-iclr-Neural Architecture Search with Reinforcement Learning.pdf) [笔记](#NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING (ICLR’17))ICLR’17RL将模型的框架视为一系列变长的string,使用RNN作为控制器来生成string作为对应的architecture,把acc作为奖励,通过更新RNN的参数θ来调整最优模型的选择。对整个architecture进行搜索,**24000 GPU days
DESIGNING NEURAL NETWORK ARCHITECTURES USING REINFORCEMENT LEARNING [笔记](#DESIGNING NEURAL NETWORK ARCHITECTURES USING REINFORCEMENT LEARNING (ICLR’17))ICLR’17RL将框架的选择视为一个马尔卡弗决策过程,通过使用Q-learning来选择框架,100 GPU days
[Large-Scale Evolution of Image Classifiers](./17-icml-Large-Scale Evolution of Image Classifiers.pdf) [笔记](#Large-Scale Evolution of Image Classifiers (ICML’17))ICML’17EA需要注意的是该算法对于变异后的子代weight形状没有改变的框架可以继承父代框架的权重
[Genetic CNN](./17-ICCV-Genetic CNN.pdf) [笔记](#Genetic CNN(ICCV’17))ICCV’17EA对网络的结构进行编码,将编码作为网络的DNA,之后对该段编码进行变异(修改其中某位编码)或交叉得到新的网络结构
- 从头搜索: 随机初始化一批定长的二进制编码
Global
TitleVenueIdeaType
1Fast and Practical Neural Architecture SearchICCV我们的方法是搜索整个网络架构,以保证块的多样性,而不是重复堆积一组相似的块。我们将搜索过程建模为一个双层优化问题,并提出一个近似解。global,RL
2

优化策略

重构搜索空间

(针对搜索空间)

基于cell

减小搜索空间,降低搜索的复杂度,通过将搜索的cell进行拼接得到最终的网络

TitleVenueTypeIdea
1NASNet: [Learning Transferable Architectures for Scalable Image Recognition](./18-CVPR-Learning Transferable Architectures for Scalable Image Recognition.pdf)CVPR’18RL提出标准的normal cell 和 reduction cell,NASNet使用了48000 GPU-hours
2Block-QNN:Practical Block-wise Neural Network Architecture GenerationCVPR’18RL使用Q-learning搜索block,通过拼接得到最佳的网络结构,大大降低了搜索空间
3Progressive Neural Architecture Search [笔记](#Progressive Neural Architecture Search (ECCV’18))ECCV’18PD基于cell, 使用步长为2的可分离操作代替reductioncell,提出渐进式的搜索,从更简单的结构逐渐增加block增加cell的复杂度,最后拼接cell
4DPP-Net: Device-aware Progressive Search for areto-optimal Neural ArchitecturesECCV‘18使用avg pooling代替 reduction cell,并使用了包括cell在内的密集连接构建网络架构,提出针对设备的多目标优化
5[DARTS: Differentiable Architecture Search](./19-iclr-DARTS DIFFERENTIABLE ARCHITECTURE SEARCH.pdf)ICLR’19G基于cell
7Hierarchical Representations for Efficient Architecture SearchICLR18提出网络结构的层级表示,使用进化算法学习cell,堆叠
6[Evolving Space-Time Neural Architectures for Videos](./19-iccv-Evolving Space-Time Neural Architectures for Videos.pdf)ICCV19EA为视频任务设计搜索空间
8AutoDispNet: Improving Disparity Estimation With AutoMLICCV19G我们展示了如何使用和扩展现有的自动化技术,以有效地优化大规模的类似于u - net的编解码器架构。特别地,我们利用基于梯度的神经结构搜索和贝叶斯优化来进行超参数搜索。
9AmoebaNet: Regularized Evolution for Image Classifier Architecture Search
10[Understanding Architectures Learnt by Cell-based Neural Architecture Search](./Understanding Architectures Learnt by Cell-based Neural Architecture Search.pdf)ICLR’20G基于cell
Searching for Efficient Multi-Scale Architectures for Dense Image Prediction 可参考NeurIPS’18-为密集图像预测任务(图像的语义分割)有针对性的精心设计搜索空间 dense prediction cell
11AutoGAN: Neural Architecture Search for Generative Adversarial NetworksICCV19RLcell,针对GAN任务使用不同的RNN控制器生成每个cell(即),引入参数共享动态重置策略来加速训练
[Deep learning architecture search by neuro-cell-based evolution with function-preserving mutations](Deep learning architecture search by neuro-cell-based evolution with function-preserving mutations.pdf)
其他设计
TitleVenueTypeIdea
[Discovering Neural Wirings](./19-NeurIPS-Discovering Neural Wirings.pdf)NeurIPS19G提出了一种发现神经线路的方法。我们放松了层的典型概念,使通道能够形成相互独立的连接。
[Towards modular and programmable architecture search](./19-NeurIPS-Towards modular and programmable architecture.pdf)NeurIPS19-提出了一种形式化的语言来编码一般计算图形上的搜索空间
[Densely Connected Search Space for More Flexible Neural Architecture Search](Densely Connected Search Space for More Flexible Neural Architecture Search.pdf) 可参考CVPR’20G重构搜索空间。构建密集连接的搜索空间,能够自动搜索网络的宽度
AtomNAS: Fine-Grained End-to-End Neural Architecture SearchICLR’20-提出由原子组成的细粒度搜索空间
FasterSeg: Searching for Faster Real-time Semantic Segmentation 可参考ICLR20G为实时的语义分割任务设计搜索空间

加速搜索阶段训练过程

(针对对候选模型进行完整的训练, 对候选模型进行性能排序)

参数共享(weight sharing)

不再对每个候选网络都从零开始训练, 以one-shot为代表的一类网络框架,不同的框架之间共享同一个超级网络的权重,以此来加速网络模型的训练

TitleVenueTypeIdea
1HYPERNETWORKS17
2[SMASH: One-Shot Model Architecture Search through HyperNetworks](./18-iclr-SMASH One-Shot Model Architecture Searchthrough HyperNetworks.pdf)ICLR18G,one-shot将节点之间的操作视为一种内存读取机制,将编码向框架结构之间建立映射(没看懂),为上面一篇论文的one-shot模型做铺垫
1[ENAS: Efficient Neural Architecture Search via Parameter Sharing](./18-icml-Efficient Neural Architecture Search via Parameter Sharing.pdf)ICML’18-提出通过权重共享提升搜索效率
3[Understanding and Simplifying One-Shot Architecture Search](./18-icml-Understanding and Simplifying One-Shot Architecture Search.pdf)ICML’18G理解weight sharing的机制和原理
4[Graph hypernetworks for neural architecture rsearch](./GRAPH HYPERNETWORKS FOR.pdf)ICLR19G
5CAS: [Continual and Multi-Task Architecture Search](./19-acl-Continual and Multi-Task Architecture Search.pdf)ACL19RL基于ENAS的多任务框架搜索
6One-Shot Neural Architecture Search via Self-Evaluated Template NetworkICCV19G权重共享G
2,7AutoGAN: Neural Architecture Search for Generative Adversarial NetworksICCV19RLglobal,针对GAN任务使用不同的RNN控制器生成每个cell(即),引入参数共享动态重置策略来加速训练
2,DetNAS: Backbone Search for Object DetectionNeurIPS19采用one-shot架构,为目标检测搜索骨干网络
8Evaluating The Search Phase of Neural Architecture SearchICLR’20-提出权重共享策略降低候选NAS框架的排名,导致不能反映它们真实的性能,降低了搜索过程的效率
还提出当前的NAS搜索的框架平均性能与随机的搜索性能近似
9[Once for All: Train One Network and Specialize it for Efficient Deployment](./20-iclr-Once for All Train One Network and Specialize it for Efficient Deployment.pdf) [笔记](#ONCE-FOR-ALL: TRAIN ONE NETWORK AND SPECIALIZE IT FOR EFFICIENT DEPLOYMENT ON DIVERSE HARDWARE PLATFORMS (ICLR20))ICLR’20G子网络之间相互共享权重,为了避免子网络之间相互影响,提出渐进收缩算法。
10[Block-wisely Supervised Neural Architecture Search with Knowledge Distillation](./20-cvpr-Block-wisely Supervised Neural Architecture Search with Knowledge Distillation.pdf) 可参考CVPR’20G通过分块来改进权重共享机制。利用来自教师模型不同深度的监督信息,将原本端到端的网络搜索空间在深度上分块,实现对网络搜索空间独立分块权重共享训练,大大降低了权重共享带来的干扰。在不牺牲权重共享的高效率的同时,也保证了对候选子模型的评估准确性,同时通过算法实现对搜索空间中所有候选结构的遍历
11[Overcoming Multi-Model Forgetting in One-Shot NAS with Diversity Maximization](./20-cvpr-Overcoming Multi-Model Forgetting in One-Shot NAS with Diversity Maximization.pdf)CVPR’20G对权重共享机制进行改进。解决超网络训练过程中训练新网络导致旧网络性能下降的问题(即多模型遗忘问题),将one-shot NAS中的超网训练描述为一个持续学习的约束优化问题,即当前体系结构的学习不应该降低以前体系结构的性能。
性能预测

不再对每个候选模型都从零开始训练, 使用预测函数, 得到候选模型的相对性能排序

TitleVenueTypeIdea
9Peephole: Predicting network performance before
training
17
4[Learning Curve Prediction with Bayesian Neural Networks](17-ICLR-LEARNING CURVE PREDICTION WITH BAYESIAN NEURAL NETWORKS.pdf)ICLR’17PD使用Bayesian neural network对学习曲线进行建模与预测
5[Accelerating Neural Architecture Search using Performance Prediction](ACCELERATING NEURAL ARCHITECTURE SEARCH USING PERFORMANCE PREDICTION.pdf)ICLR-W’18PD
6PNAS: Progressive Neural Architecture Search [笔记](#Progressive Neural Architecture Search (ECCV’18))ECCV’18PD训练一个预测模型预测候选框架的性能
7Neural Architecture OptimizationNeurIPS’18PD,G
8Multinomial Distribution Learning for Effective Neural Architecture Search19
早期停止
TitleVenueTypeIdea
2Hyperband: Bandit-based configuration evaluation for hyperparameter optimization.ICLR17通过采用自适应的早期停止策略,有效地探索超参数空间
1[Speeding up automatic hyperparameter optimization of deep neural networks by extrapolation of learning curves](peeding Up Automatic Hyperparameter Optimization of.pdf)AAAI15
3Speeding up hyper-parameter optimization by extrapolation of learning curves using previous builds
other
TitleVenueTypeIdea
1AtomNAS: Fine-Grained End-to-End Neural Architecture SearchICLR‘20-不再是搜索再训练,而是同时搜索训练

模型重用

(针对从零开始搜索框架)不再从零开始搜索, 基于已有的网络,在已有的网络上进行模型的修改

一种新的高效神经架构搜索方法,解决了当前网络变换方法的局限性

TitleVenueTypeIdea
1EAS: [Efficient Architecture Search by Network Transformation](./18-aaai-Efficient Architecture Search by Network Transformation.pdf) [笔记](#Efficient Architecture Search by Network Transformation (AAAI’18))AAAI’18RL包括扩展层和加深层两个操作
2N2N learning: Network to Network Compression via Policy Gradient Reinforcement Learning [笔记](#N2N learning: Network to Network Compression via Policy Gradient Reinforcement Learning (ICLR’18))ICLR’18RL网络模型的压缩,主要包括层的移除与层的压缩两个操作
3[Path-Level Network Transformation for Efficient Architecture Search](18-icml-Path-Level Network Transformation for Efficient Architecture Search.pdf) [笔记](#Path-Level Network Transformation for Efficient Architecture Search(ICML’18))ICML’18对连接的路径级别的网络进行修改,而不仅仅是层级别的
introduction[Network Pruning via Transformable Architecture Search](./19-NeurIPS-Network Pruning viaTransformable Architecture Search.pdf)NeurIPS19G通过可转移的架构搜索进行网络剪枝,使用梯度进行优化
[Simple and efficient architecture search for convolutional neural networks](Simple and efficient architecture search for convolutional neural networks.pdf)ICLR18EA
4FNA: [Fast Neural Network Adaptation via Parameter Remapping and Architecture Search](20-iclr-FASTNEURALNETWORKADAPTATION VIAPARAME-TERREMAPPING ANDARCHITECTURESEARCH.pdf) [笔记](#FAST NEURAL NETWORK ADAPTATION VIA PARAMETER REMAPPING AND ARCHITECTURE SEARCH(ICLR20))ICLR20从一个设计好的人工网络开始,对其进行拓展得到super network,然后做架构自适应得到目标架构,然后做参数自适应得到目标网络。使用了参数重映射。

梯度优化

(针对RL与EA的离散搜索空间, 效率低下)变离散的搜索空间为连续的搜索空间,使用梯度的方法进行优化

TitleVenueTypeIdea亮点描述
2Differentiable Neural Network Architecture SearchICLR-W’18G
3MaskConnectECCV-18G
1[DARTS: Differentiable Architecture Search](./19-iclr-DARTS DIFFERENTIABLE ARCHITECTURE SEARCH.pdf)ICLR’18G提出连续化搜索空间,将离散的搜索空间进行连续化,使用梯度的方法进行优化
4NAO Neural Architecture Optimization [笔记](#Neural Architecture Optimization (18’NeurIPS))NeurIPS’18G提出: 编码器-预测方程-解码器的框架,将离散化的网络结构进行连续化,通过梯度的方法进行优化, 之后再经过解码器进行离散化对RL和EA算法进行概述
5[SNAS: stochastic neural architecture search](./stochastic neural architecture search.pdf)ICLR19可参考1
可参考2
6DATA: Differentiable ArchiTecture ApproximationNeurIPS’19G
7I-DARTS: [Improved Differentiable Architecture Search for Language Modeling and Named Entity Recognition](./Improved Differentiable Architecture Search for Language Modeling and Named Entity Recognition.pdf)EMNLP’19G
8[Progressive Differentiable Architecture Search: Bridging the Depth Gap Between Search and Evaluation](./19-iccv-Progressive Differentiable Architecture Search.pdf)ICCV19G梯度优化-
基于cell进行了引用AutoDispNet: Improving Disparity Estimation With AutoMLICCV19G我们展示了如何使用和扩展现有的自动化技术,以有效地优化大规模的类似于u - net的编解码器架构。特别地,我们利用基于梯度的神经结构搜索和贝叶斯优化来进行超参数搜索。
9[Searching for a robust neural architecture in four gpu hours](./Searching for a robust neural architecture in four gpu hours.pdf)CVPR19
11Wenet: Weighted networks for recurrent network architecture search.2019
10PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search [笔记](#PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search(ICLR20))ICLR20G为了减少内存的消耗,对通道进行采样(1/k),只对部分通道进行卷积.边正则化:缓解上述的“部分通道连接”操作会带来一些训练不稳定的问题
understanding_and_robustifying_differentiable_architecture_searchICLR20G
Other
TitleVenueTypeIdea
1Multinomial Distribution Learning for Effective Neural Architecture SearchICCV19多项式分布优化方法提出一种学习多项式分布的优化方法

评估策略

未来方向

Other

TitleVenueTypeIdea
1[Simple and efficient architecture search for convolutional neural networks](./Simple and efficient architecture search for convolutional neural networks.pdf)ICLR18可参考
1NAS-BENCH-201: Extending the Scope of Reproducible Neural Architecture SearchICLR20一个总结性的工作,统一的测试平台提出NAS-BENCH-201,作为NAS的基准算法的评价平台
1Adversarial AutoAugment 可参考ICLR20做数据增强使用NAS做数据增强
1NAS evaluation is frustratingly hard 可参考ICLR20对NAS工作进行评价对8种NAS方法在5个数据集上分别与随机搜索架构的实验结果进行对比,实验表明各种搜索策略效果较小,而搜索空间和各种trick与初始参数对模型的性能影响较大。
2AssembleNet: Searching for Multi-Stream Neural Connectivity in Video ArchitecturesICLR20使用NAS做视频理解的。视频CNN解释为一个相互连接的多流卷积块的集合,自动寻找具有更好的连通性和时空交互的神经结构来进行视频理解的方法。
6Computation Reallocation for Object Detection 可参考ICLR20目标检测在目标检测任务中使用NAS的方法对计算资源进行再分配,它可以在目标检测数据集上直接学习跨不同特征分辨率和空间位置的计算重新分配策略。提出了用于阶段和空间重新分配的两级重新分配空间。采用一种新颖的分层搜索程序来应对复杂的搜索空间。
1Random Search and Reproducibility for Neural Architecture [Search](19-UAI-Random Search and Reproducibility for Neural Architecture Search.pdf)UAI19提出评估基线提出可以将随机搜索得到的框架作为NAS对比的基线。并且指出有权值共享的随机搜索架构优于早期停止的随即搜索架构
[Searching for MobileNetV3](./19-iccv-Searching for MobileNetV3.pdf)ICCV19EA本文开始探讨自动搜索算法和网络设计如何协同工作,利用互补的方法来提高整体水平。
[Deep Active Learning with a NeuralArchitecture Search](./19-NeurIPS-Deep Active Learning with a Neural ArchitectureSearch.pdf)NeurIPS19-提出了一种新的主动学习策略,即学习算法在主动学习的同时动态搜索有效的架构
1[Network Pruning via Transformable Architecture Search](./19-NeurIPS-Network Pruning viaTransformable Architecture Search.pdf)NeurIPS19G通过可转移的架构搜索进行网络剪枝,使用梯度进行优化
1Teacher Guided Architecture SearchICCV19使用教师网络指导搜索的过程,搜索速度提升,与Progressive Neural Architecture Search相关
[Efficient Forward Architecture Search ](./19-NeurIPS-Efficient Forward Architecture Search.pdf)NeurIPS19G允许模型在训练和从现有架构和权重开始的热身过程中增加复杂性,使用了权重共享、梯度策略等
3Neural Architecture Search with Bayesian Optimisation and Optimal TransportNeurIPS18贝叶斯优化
4[Learnable Embedding Space for Efficient Neural Architecture Compression](LEARNABLE EMBEDDING SPACE FOR.pdf)ICLR19Other网络架构压缩
5ChamNet: Towards Efficient Network Design through Platform-Aware Model AdaptationCVPR19基于平台
MFAS: Multimodal Fusion Architecture SearchCVPR19EA多model融合
A Neurobiological Evaluation Metric for Neural Network Model SearchCVPR19Other提出一个NAS的指标
RENAS: Reinforced Evolutionary Neural Architecture Search CVPR19G
1NAS-Bench-101: Towards Reproducible Neural Architecture SearchICML19Other
The Evolved TransformerICML19EA
[Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules](Population Based Augmentation Efficient Learning of Augmentation Policy Schedules.pdf)ICMLEA

一眼看不懂的文章

TitleVenueTypeIdea
[How to Own the NAS in Your Spare Time](./20-ICLR-HOW TO 0WN NAS IN YOUR SPARE TIME.pdf)ICLR20
1Resource Constrained Neural Network Architecture Search: Will a Submodularity Assumption Help?ICCV19将计算资源限制考虑到优化目标中EA

顶会顺序

开会月份
AAAI2
ICLR4
CVPR6
ACL7
ICML7
IJCAI7
ECCV8
ICCV10
NeurIPS12

重要提醒:

CSDN对.md表格支持的相当不错,只是不能导入.word导致本地的大量图片无法显示。本文总结了近年来NAS最新的发展,并给出了对应paper的大致思路。最后给出了部分文章的阅读笔记,可在知乎链接神经架构搜索(NAS)2020最新综述:挑战与解决方案或者github-pzhren/Awesome-NAS进行完整查看。

Reference Frame

A Survey on Neural Architecture Search

Neural Architecture Search: A Survey

Graph neural networks: A review of methods and applications

A comprehensive survey of graph embedding: Problems, techniques, and applications

[A Survey on Neural Architecture Search](./19-survey-A Survey on Neural Architecture Search.pdf)[Neural Architecture Search: A Survey](./19-ml-survey-Neural Architecture Search A Survey.pdf)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6IFZhxng-1591517994697)(.\README.assets/image-20200416175701.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmDWMMus-1591517994700)(.\README.assets/image-20200416175735.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dhLUnrvI-1591517994703)(.\README.assets/1587109660344.png)]

Neural Architecture Search (NAS)

TypeGRLEAPDOther
Explanationgradient-basedreinforcement learningevaluationary algorithmperformance predictionother types

2020

TitleVenueChallengeSearch SpaceTypeDatasetsOther SkillsCode
[When NAS Meets Robustness: In Search of Robust Architectures against Adversarial Attacks](When NAS Meets Robustness.pdf)CVPR使用NAS来研究如何提高深度学习网络模型的鲁棒性Cell-BasedGCIFAR, SVHN,
Tiny-ImageNet, ImageNet
Github
Block-wisely Supervised Neural Architecture Search with Knowledge DistillationCVPR区别于现有(RL,Darts,One-shot)的神经网络搜索算法,作者基于知识蒸馏的思想,引入教师模型来引导网络结构搜索的方向。利用来自教师模型不同深度的监督信息,将原本端到端的网络搜索空间在深度上分块,实现对网络搜索空间独立分块权重共享训练,大大降低了权重共享带来的干扰。在不牺牲权重共享的高效率的同时,也保证了对候选子模型的评估准确性,同时通过算法实现对搜索空间中所有候选结构的遍历权重共享GGithub
Overcoming Multi-Model Forgetting in One-Shot NAS with Diversity MaximizationCVPR对权重共享机制进行改进。解决超网络训练过程中训练新网络导致旧网络性能下降的问题(即多模型遗忘问题),将one-shot NAS中的超网训练描述为一个持续学习的约束优化问题,即当前体系结构的学习不应该降低以前体系结构的性能。权重共享GGithub
Densely Connected Search Space for More Flexible Neural Architecture SearchCVPR重构搜索空间。构建密集连接的搜索空间,能够自动搜索网络的宽度重构搜索空间GGithub
EfficientDet: Scalable and Efficient Object DetectionCVPR做目标检测的,不觉得是NASRL-
NAS-BENCH-102: Extending the Scope of Reproducible Neural Architecture SearchICLR提出NAS-BENCH-201,作为NAS的基准算法的评价平台一个总结性的工作-Github
Understanding Architectures Learnt by Cell-based Neural Architecture SearchICLR基于cellGGitHub
Evaluating The Search Phase of Neural Architecture SearchICLR提出权重共享策略降低候选NAS框架的排名,导致不能反映它们真实的性能,降低了搜索过程的效率权重共享-
AtomNAS: Fine-Grained End-to-End Neural Architecture SearchICLR提出一个由原子组成的细粒度搜索空间
不再是搜索再训练而是同时搜索训练
重构搜索空间,加速训练过程GitHub
Fast Neural Network Adaptation via Parameter Remapping and Architecture Search [笔记](#FAST NEURAL NETWORK ADAPTATION VIA PARAMETER REMAPPING AND ARCHITECTURE SEARCH(ICLR20))ICLR从一个设计好的人工网络开始,对其进行拓展得到super network,然后做架构自适应得到目标架构,然后做参数自适应得到目标网络。使用了参数重映射。模型重用-GitHub
Once for All: Train One Network and Specialize it for Efficient Deployment [笔记](#ONCE-FOR-ALL: TRAIN ONE NETWORK AND SPECIALIZE IT FOR EFFICIENT DEPLOYMENT ON DIVERSE HARDWARE PLATFORMS (ICLR20))ICLR子网络之间相互共享权重,为了避免子网络之间相互影响,提出渐进收缩算法。权重共享GGitHub
Efficient Transformer for Mobile ApplicationsICLR看不到相应的论文--
PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search [笔记](#PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search(ICLR20))ICLR为了减少内存的消耗,对通道进行采样(1/k),只对部分通道进行卷积.边正则化:缓解上述的“部分通道连接”操作会带来一些训练不稳定的问题梯度策略GGitHub
Adversarial AutoAugment 可参考ICLR使用NAS做数据增强--
[NAS evaluation is frustratingly hard](NAS EVALUATION IS FRUSTRATINGLY HARD.pdf) 可参考ICLR对8种NAS方法在5个数据集上分别与随机搜索架构的实验结果进行对比,实验表明各种搜索策略效果较小,而搜索空间和各种trick与初始参数对模型的性能影响较大。-GitHub
FasterSeg: Searching for Faster Real-time Semantic Segmentation 可参考ICLR为实时的语义分割任务设计搜索空间GGitHub
Computation Reallocation for Object Detection 可参考ICLR在目标检测任务中使用NAS的方法对计算资源进行再分配,它可以在目标检测数据集上直接学习跨不同特征分辨率和空间位置的计算重新分配策略。提出了用于阶段和空间重新分配的两级重新分配空间。采用一种新颖的分层搜索程序来应对复杂的搜索空间。--
Towards Fast Adaptation of Neural Architectures with Meta LearningICLR看不到论文--
AssembleNet: Searching for Multi-Stream Neural Connectivity in Video ArchitecturesICLR使用NAS做视频理解的。视频CNN解释为一个相互连接的多流卷积块的集合,自动寻找具有更好的连通性和时空交互的神经结构来进行视频理解的方法。其他EA-
How to Own the NAS in Your Spare TimeICLR一眼看不懂--

2019

TitleVenueTypeChallengeCode
1DATA: Differentiable ArchiTecture ApproximationNeurIPS梯度优化--
[Random Search and Reproducibility for Neural Architecture Search](./19-UAI-Random Search and Reproducibility for Neural Architecture Search.pdf)UAIG提出可以将随机搜索得到的框架作为NAS对比的基线。并且指出有权值共享的随机搜索架构优于早期停止的随即搜索架构GitHub
Improved Differentiable Architecture Search for Language Modeling and Named Entity RecognitionEMNLP梯度优化G-
[Continual and Multi-Task Architecture Search](./19-acl-Continual and Multi-Task Architecture Search.pdf)ACLcell、RL-
Progressive Differentiable Architecture Search: Bridging the Depth Gap Between Search and EvaluationICCV梯度优化--
[Searching for MobileNetV3](./19-iccv-Searching for MobileNetV3.pdf)ICCVEA本文开始探讨自动搜索算法和网络设计如何协同工作,利用互补的方法来提高整体水平。-
Multinomial Distribution Learning for Effective Neural Architecture SearchICCV-提出一种学习多项式分布的优化方法GitHub
FPNASNet:Fast and Practical Neural Architecture SearchICCVglobal我们的方法是搜索整个网络架构,以保证块的多样性,而不是重复堆积一组相似的块。我们将搜索过程建模为一个双层优化问题,并提出一个近似解。
Teacher Guided Architecture SearchICCVcell使用教师网络指导搜索的过程,搜索速度提升,与Progressive Neural Architecture Search相关-
10AutoDispNet: Improving Disparity Estimation With AutoMLICCVcell,G我们展示了如何使用和扩展现有的自动化技术,以有效地优化大规模的类似于u - net的编解码器架构。特别地,我们利用基于梯度的神经结构搜索和贝叶斯优化来进行超参数搜索。-
Resource Constrained Neural Network Architecture Search: Will a Submodularity Assumption Help?ICCVEA将计算资源限制考虑到优化目标中-
One-Shot Neural Architecture Search via Self-Evaluated Template NetworkICCV权重共享GGithub
[Evolving Space-Time Neural Architectures for Videos](./19-iccv-Evolving Space-Time Neural Architectures for Videos.pdf)ICCVcell,EA为视频任务设计搜索空间GitHub
AutoGAN: Neural Architecture Search for Generative Adversarial NetworksICCVRLglobal,针对GAN任务使用不同的RNN控制器生成每个cell(即),引入参数共享动态重置策略来加速训练github
[Discovering Neural Wirings](./19-NeurIPS-Discovering Neural Wirings.pdf)NeurIPSG提出了一种发现神经线路的方法。我们放松了层的典型概念,使通道能够形成相互独立的连接。Github
[Towards modular and programmable architecture search](./19-NeurIPS-Towards modular and programmable architecture.pdf)NeurIPSOther提出了一种形式化的语言来编码一般计算图形上的搜索空间Github
17[Network Pruning via Transformable Architecture Search](./19-NeurIPS-Network Pruning viaTransformable Architecture Search.pdf)NeurIPSG通过可转移的架构搜索进行网络剪枝,参数共享Github
[Deep Active Learning with a NeuralArchitecture Search](./19-NeurIPS-Deep Active Learning with a Neural ArchitectureSearch.pdf)NeurIPS-提出了一种新的主动学习策略,即学习算法在主动学习的同时动态搜索有效的架构-
DetNAS: Backbone Search for Object DetectionNeurIPS-采用one-shot架构,为目标检测搜索骨干网络-
20SpArSe: Sparse Architecture Search for CNNs on Resource-Constrained MicrocontrollersNeurIPS-性能与效率平衡-
[Efficient Forward Architecture Search ](./19-NeurIPS-Efficient Forward Architecture Search.pdf)NeurIPSG,不确定允许模型在训练和从现有架构和权重开始的热身过程中增加复杂性Github
Efficient Neural Architecture Transformation Search in Channel-Level for Object DetectionNeurIPSG,目标检测-
XNAS: Neural Architecture Search with Expert AdviceNeurIPS梯度优化,G-
Neural architecture search: A surveyJMLRSurvey-
[DARTS: Differentiable Architecture Search](./19-iclr-DARTS DIFFERENTIABLE ARCHITECTURE SEARCH.pdf)ICLRG将离散的搜索空间进行连续化,使用梯度的方法进行优化github
ProxylessNAS: Direct Neural Architecture Search on Target Task and HardwareICLRRL/G没有代理任务,直接在目标任务上进行搜索训练。基于平台github
Graph HyperNetworks for Neural Architecture SearchICLRG,参数共享-
[Learnable Embedding Space for Efficient Neural Architecture Compression](LEARNABLE EMBEDDING SPACE FOR.pdf)ICLROther网络架构压缩github
[Efficient Multi-Objective Neural Architecture Search via Lamarckian Evolution](EFFICIENT MULTI-OBJECTIVE NEURAL ARCHITEC.pdf)ICLREA多目标优化-
30SNAS: stochastic neural architecture searchICLR过,G引用过-
Searching for A Robust Neural Architecture in Four GPU HoursCVPR过,G引用过Github
ChamNet: Towards Efficient Network Design through Platform-Aware Model AdaptationCVPR-基于平台的-
Partial Order Pruning: for Best Speed/Accuracy Trade-off in Neural Architecture SearchCVPREA平衡速度和精度github
FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture SearchCVPRG基于DARTS的改进-
RENAS: Reinforced Evolutionary Neural Architecture Search CVPRG-
Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image SegmentationCVPRGGitHub
MnasNet: Platform-Aware Neural Architecture Search for MobileCVPRRL与平台相关的Github
MFAS: Multimodal Fusion Architecture SearchCVPREA多model融合-
A Neurobiological Evaluation Metric for Neural Network Model SearchCVPROther提出一个NAS的指标-
40Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary CellsCVPRRL语义分割-
Customizable Architecture Search for Semantic SegmentationCVPR-语义分割-
Regularized Evolution for Image Classifier Architecture SearchAAAIEA-
AutoAugment: Learning Augmentation Policies from DataCVPRRL数据增强-
[Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules](Population Based Augmentation Efficient Learning of Augmentation Policy Schedules.pdf)ICMLEA-
The Evolved TransformerICMLEAGithub
EfficientNet: Rethinking Model Scaling for Convolutional Neural NetworksICMLRL模型的放缩-
NAS-Bench-101: Towards Reproducible Neural Architecture SearchICMLOtherGithub

2018

TitleVenueChallenge时间Search SpaceTypeDatasetOther SkillsCode
Towards Automatically-Tuned Deep Neural NetworksBOOK-GitHub
Efficient Architecture Search by Network TransformationAAAI不再从头开始搜索并训练网络,而是基于已有的网络进行net transformation,重用权重来实现高效网络的发掘,主要包括扩展层和加深层两个操作10 gpu days模型重用,重用权重RLgithub
Learning Transferable Architectures for Scalable Image RecognitionCVPR由之前的直接搜索整个框架转而搜索两个cell(nermal,reduction cell),来降低计算量。使用500GPU跑了4天2000 GPU dayscell,cell由此提出RL,cellgithub
N2N learning: Network to Network Compression via Policy Gradient Reinforcement LearningICLR使用RL在现有的网络上进行网络模型的压缩,主要包括层的移除与层的压缩两个操作模型重用RL-
A Flexible Approach to Automated RNN Architecture GenerationICLR使用RL来更加灵活的自动化生成RNNglobalRL/PD-
Practical Block-wise Neural Network Architecture GenerationCVPR使用Q-learning搜索block,通过拼接得到最佳的网络结构,大大降低了搜索空间96 GPU dayscellRL-
Path-Level Network Transformation for Efficient Architecture SearchICML对连接的路径级别的网络进行修改,而不仅仅是层级别的10 GPU days模型重用(reused trained networks),权重重用RLgithub
Hierarchical Representations for Efficient Architecture SearchICLR提出网络结构的层级表示,使用进化算法学习cell,堆叠基于cellEA-
Understanding and Simplifying One-Shot Architecture SearchICML理解weight sharing的机制和原理我更偏向于认为它是Global,权重共享G,one-shotCIFAR-10,ImageNetOne-Shot,筛选候选架构,然后从头开始训练-
SMASH: One-Shot Model Architecture Search through HyperNetworksICLR将节点之间的操作视为一种内存读取机制,将编码向框架结构之间建立映射(没看懂),为上面一篇论文的one-shot模型做铺垫参数共享G,one-shotgithub
Neural Architecture OptimizationNeurIPS提出将离散的模型框架通过编码器映射到网络的连续表示上,通过梯度的方法进行优化,最后再通过解码器将连续的表示进行离散化G,基于梯度github
Searching for efficient multi-scale architectures for dense image predictionNeurIPS将之前的NAS从图像分类任务转移到密集图像预测任务上(图像的语义分割,具有高分辨率的图像上), 为该任务设计了特定的搜索空间, 使用随机算法进行搜索,并重新设计代理任务Other-
Progressive Neural Architecture Search [笔记](#Progressive Neural Architecture Search (ECCV’18))ECCV学习cell结构, 从简单到复杂的方式渐进地学习一个cell结构, 通过拼接得到最终的模型, 对于候选模型的评估采用学习的预测函数进行预测, 得到候选模型的排序cellPDgithub
[Neural Architecture Search with Bayesian Optimisation and Optimal Transport](Neural architecture search with bayesian optimisation and optimal transport.pdf)NeurIPS贝叶斯优化Othergithub
Differentiable Neural Network Architecture SearchICLR-W基于梯度G-
Accelerating Neural Architecture Search using Performance PredictionICLR-W性能预测PD-
Efficient Neural Architecture Search via Parameter SharingICML提出通过权重共享提升搜索效率参数共享
DPP-Net: Device-aware Progressive Search for
Pareto-optimal Neural Architectures
平台感知

2017

TitleVenuechallenge时间亮点TypeCode
[Neural Architecture Search with Reinforcement Learning](./17-iclr-Neural Architecture Search with Reinforcement Learning.pdf)ICLR将模型的框架视为一系列变长的string,使用RNN作为控制器来生成string作为对应的architecture,把acc作为奖励,通过更新RNN的参数θ来调整最优模型的选择。对整个architecture进行搜索,24000 GPU days800个gpu一个月将RNN作为控制器生成网络框架 的描述stringRL,global-
Designing Neural Network Architectures using Reinforcement LearningICLR将框架的选择视为一个马尔卡弗决策过程,通过使用Q-learning来选择框架,100 GPU days10个GPU运行8-10dayes提出的预定义的行为分布极为接近目前常用的超级网络结构图RL,global-
Large-scale evolution of image classifiers [笔记](#Large-Scale Evolution of Image Classifiers (ICML’17))ICML提出一个大规模进化算法,从向一个最简单的DAG中逐步添加操作来变异得到新的网络,尽量减少人为干预。从一个非常简单的结构出发进行进化搜索,但需要消耗大量的计算量EA
Neural Optimizer Search with Reinforcement LearningICML这个是与Neural Architecture Search with Reinforcement Learning采用类似的RNN控制器来搜索一个新的权重更新数学方程,可参考https://blog.csdn.net/qq_32256033/article/details/88605861将NAS 的方法应用在优化算法上RL-
Learning Curve Prediction with Bayesian Neural NetworksICLR使用Bayesian neural network对学习曲线进行建模与预测PD-
Hyperband: A Novel Bandit-Based Approach to Hyperparameter OptimizationICLR提出Hyperband算法,这是一个超参数优化问题,可参考PD-
Hyperparameter Optimization: A Spectral ApproachNeurIPS-W是一个超参数优化问题,可参考Othergithub
Learning to Compose Domain-Specific Transformations for Data AugmentationNeurIPS--
Evolving deep neural networksCoRREA
Genetic CNN[笔记](#Genetic CNN(ICCV’17))ICCV对网络的结构进行编码,将编码作为网络的DNA,之后对该段编码进行变异(修改其中某位编码)或交叉得到新的网络结构EA

2012-2016

TitleVenueTypeCode
Speeding up Automatic Hyperparameter Optimization of Deep Neural Networksby Extrapolation of Learning CurvesIJCAI’18PDgithub

arXiv

TitleDatechallengeTypeCode
Population Based Training of Neural Networks2017.11结合并行搜索和序列优化的优点形成PBT算法对网络的超参数进行调优EA-
NSGA-NET: A Multi-Objective Genetic Algorithm for Neural Architecture Search2018.10EA-
Training Frankenstein’s Creature to Stack: HyperTree Architecture Search2018.10G-
Fast, Accurate and Lightweight Super-Resolution with Neural Architecture Search2019.01Ggithub

Paper Details

RL在NAS上开创性的两篇工作

NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING (ICLR’17)

使用强化学习的一个NAS的开创性工作

将NN网络模型的描述表述为一系列变长的string,使用RNN作为控制器来生成这种string

RL与NAS 的结合

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i1fPQKC0-1591517994709)(.\README.assets\1587375725644.png)]

  • controller(RNN):相当于agent,生成框架A(相当于做出一个动作)
  • 蓝色框:相当于是一个环境E,对动作做出反馈,即当前框架A的acc作为reward
  • 调整controller:将acc作为反馈信号,调整controller,做出新的动作
使用RNN控制器生成模型框架的参数:
  • 包括kernal size, step, channel
  • 上一个RNN生成的参数作为下一个RNN的输入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dpaLxTpa-1591517994711)(.\README.assets\1587376155478.png)]

RNN控制器参数的更新

通过更新控制器RNN的参数θ来调整生成的模型框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q9yhtVt0-1591517994714)(.\README.assets\1587458105639.png)]

DESIGNING NEURAL NETWORK ARCHITECTURES USING REINFORCEMENT LEARNING (ICLR’17)

将框架的选择视为一个马尔卡弗决策的过程,使用Q-learning来记录奖励,获得最优的网络框架

Designing CNN Architectures with Q-learning
使用RL进行NAS的整体的流程:
  • 预定一个整体的网络框架
  • 从中采样一个网络的拓扑结构
  • 将拓扑的信息和性能表现进行存储
  • angent通过Q-learning,利用自己的memory学习CNN的拓扑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7AND2VaU-1591517994715)(.\README.assets\1587445449021.png)]

Q-learning中Q值的更新

https://www.jianshu.com/p/dc79f9e43a1d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jl3QylX-1591517994717)(.\README.assets\1587456832110.png)]

Markov Decision Process for CNN Architecture Generation

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nd6OT2Zs-1591517994718)(.\README.assets\1587445519081.png)]

此方法也是非常耗时,对于每个数据集,作者使用10块GPU训练了8-10天。

When NAS Meets Robustness: In Search of Robust Architectures against Adversarial Attacks (2020CVPR)

Abstract

是为了寻找健壮鲁棒的深度网络模型,采用NAS的方法生产大量可用于评估的网络框架。

Our “robust architecture Odyssey” reveals several valuable observations:

  1. densely connected patterns result in improved robustness; 密集连接有助于提升网络模型的鲁棒性

  2. under computational budget, adding convolution operations to direct connection edge is effective;计算资源有限的情况下,直连边的卷积操作是有效的,相较下的是跳跃连接。

  3. flow of solution procedure (FSP) matrix is a good indicator of network robustness.

Search Space

基本沿用和DARTS相似的有向无环图的设计思路:

  • 每个cell将前两个cell 的输出作为输入
  • cell的输出等于cell内中间节点的拼接

不同的是:

  • 不在限制两个节点之间的连接个数(即操作数),增加可供搜索的architecture的丰富度;
  • 没有看到不同操作的权重赋值,而是直接对其进行了加和。搜索方法采用的是典型的one-shot model 的方法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sYAjrYaX-1591517994719)(.\README.assets\1587110738753.png)]

cell-based的architecture鲁棒性分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvvlXQaH-1591517994721)(.\README.assets\1587114369110.png)]

(a)对supernet进行PGD的对抗性训练,采样1000个子网络,在验证集微调前后的性能对比,对子网络进行对抗性微调有助于性能的提升(更加具有针对性)

(b)绘制微调后子网络的性能直方图,猜测鲁棒性好的网络框架拥有相似的网络结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZBnzJ1l0-1591517994722)(.\README.assets\1587115576667.png)]

(a)对robust和non-robust的框架参数α使用t-SNE进行降维可视化,发现二者明显可分。

(b)使用一个线性分类器对这个600个框架进行分类的权重进行可视化,权重几乎都为正数,表明框架的连接密度对健壮性有很强的相关性。

于是进一步定义框架密度D,并探究其与模型的健壮性之间的关系:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eGODmkLF-1591517994724)(.\README.assets\1587116743607.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Jwq8eWJ-1591517994725)(.\README.assets\1587116770723.png)]

以此说明密集连接有助于提升框架的鲁棒性。

固定预算下的架构搜索

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bfk7iJqO-1591517994726)(README.assets/image-20200606093412999.png)]

1)直连边上的卷积比跳跃边上的卷积对架构的鲁棒性更加有效

2)小预算情况下直连边上的卷积可以有效提高架构的鲁棒性,大预算下猜测是密集连接主导了模型的鲁棒性。

Undestanding and Simplifying One-Shot Architecture Search (2018ICML)

Example of a cell during one-shot model evaluation

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YjE58HnL-1591517994728)(.\README.assets\image-20200416175800.png)]

Diagram of the one-shot architecture

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JAjyKdbT-1591517994731)(.\README.assets\image-20200416175747.jpg)]

Understanding One-Shot Models

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lqLZwWOm-1591517994733)(.\README.assets\image-20200416175811.png)]

当我们从stand-alone转向one-shot model时,虽然最佳模型的准确性仅下降5 - 10个百分点,但前景较差的架构的准确性下降了60个百分点。

作者认为神经网络架构搜索能够找到哪些操作是有效的,如果这些有效操作存在于模型中,那么就可以预测这些架构的准确率很高,如果他们不存在模型中,所以就预测他们的准确率很低。

Removing the less important operations from the network has relatively little influence on the model’s predictions and only a modest effect on its final prediction accuracy.

Removing the most important operations from the network, however, can lead to dramatic changes in the model’s predictions and a large drop in prediction accuracy.

为了验证上述实验的假设,作者设计了一个新的实验:

使用对称的KL散度来评估搜索出的模型和ALL ON模型(即保留大量路径基本不削减)的预测分布,结果如下图所示。作者发现,表现好的One-Shot模型和ALL ON模型的对称KL散度低,即这两者的预测很接近,这些One-Shot模型的验证集准确率也高。作者认为这表明权重共享会使得One-Shot模型专注于最有效的操作.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHfk4ufq-1591517994734)(.\README.assets\image-20200416175726.png)]

Population Based Training of Neural Networks (2017)

提出了一种新的超参数的优化方法:结合并行搜索与序列优化进行探索最有的超参数。

PBT与SO和PS的对比示意图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a564Hd94-1591517994736)(.\README.assets\1587289457486.png)]

如图所示,(a)中的序列优化过程只有一个模型在不断优化,消耗大量时间。(b)中的并行搜索可以节省时间,但是相互之间没有任何交互,不利于信息利用。©中的PBT算法结合了二者的优点。
  首先PBT算法随机初始化多个模型,每训练一段时间设置一个检查点(checkpoint),然后根据其他模型的好坏调整自己的模型。若自己的模型较好,则继续训练。若不好,则替换(exploit)成更好的模型参数,并添加随机扰动(explore)再进行训练。其中checkpoint的设置是人为设置每过多少step之后进行检查。扰动要么在原超参数或者参数上加噪声,要么重新采样获得。

PBT的伪算法

θ:当前框架的可训练的参数

h:当前框架的超参数,相当于确定了模型的框架结构

p:性能评价

t:训练的步骤数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4F3fXDf6-1591517994738)(.\README.assets\1587304075004.png)]

效果展示

  • GAN & RL
      左边的gif是GAN在CIFAR-10上的效果,右边是Feudal Networks(FuN)在 Ms Pacman上的效果。

    img

图中红色的点是随机初始化的模型,也就是所谓的population。再往后,黑色的分支就是效果很差的模型,被淘汰掉。蓝色的分支表示效果一直在提升的模型,最终得到的蓝色点就是最优的模型。不得不说,DeepMind这可视化效果做的,真的强。

Efficient Architecture Search by Network Transformation (AAAI’18)

不再从零开始对网络进行搜索和训练,基于net2net的net transformation对现有的网络进行修改,使用RL来决定要采用哪种transformation操作

Overview

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aceAmqwV-1591517994741)(.\README.assets\1587532201470.png)]

主要包括:

  • 对现有网络架构进行编码的encoder network,获得体系结构的低维表示
  • 决定采用哪种transformation action类别的多actor networks

Actor Networks

Net2Wider ActorNet2Deeper Actor
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y5XbvKwi-1591517994742)(.\README.assets\1587533955593.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFQwW2ut-1591517994744)(.\README.assets\1587533999591.png)]
  • Net2Wider Actor:用来决定是否对网络的每一层进行扩展
  • Net2Deeper Actor:决定是否对网络继续加深,即插入层数的位置与插入层的尺寸

N2N learning: Network to Network Compression via Policy Gradient Reinforcement Learning (ICLR’18)

使用RL的方法来压缩网络模型,主要包含两个操做:

  • 移除层
  • 压缩层参数

Overview

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mrEH3Tud-1591517994746)(.\README.assets\1587626730103.png)]

通过一个两阶段的方法来压缩网络模型:

  1. first selects a macro-scale “layer removal” action,宏观角度上的层移除
  2. followed by a micro-scale “layer shrinkage” action,微观角度上的层压缩操作

最后使用知识蒸馏的方法来训练产生的候选网络。

两个阶段所采用的网络结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L1SpBpOd-1591517994748)(.\README.assets\1587627565005.png)]

结果

ResNet-34上实现了10倍的压缩。

A FLEXIBLE APPROACH TO AUTOMATED RNN ARCHITECTURE GENERATION (ICLR’18,MIT)

用来自动化生成RNN框架。

本文来自 MIT 和 Salesforce Research,论文提出了一种用于循环神经网络灵活自动化架构搜索的元学习策略,明确涵盖搜索中的全新算子。该方法使用了灵活的 DSL 搜索和强化学习,在语言建模和机器翻译等任务上表现良好。新方法可以让我们摆脱依靠直觉的费力模型设计方式,同时也大大扩展了循环神经网络的可能性空间。
————————————————
版权声明:本文为CSDN博主「PaperWeekly」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/82786338

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OUdFiW4w-1591517994749)(.\README.assets\1587647712703.png)]

  1. 迭代采样下一个节点生成候选网络(采用随机策略或者RL)
  2. 排序函数通过RNN处理每个候选体系结构的DSL,预测体系结构的性能
  3. 最有希望的候选框架被评估
  4. 根据评估结果改进框架生成器和排序函数

Practical Block-wise Neural Network Architecture Generation (CVPR’18)

  • 任务:使用RL的Q-learning策略训练代理,自动化生成基于block的网络框架
  • 优势:基于block,大大减小了搜索空间,降低了搜索的计算量

BlockQNN与手工网络和其他自动化生成网络框架之间的对比图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mfcKMiww-1591517994751)(.\README.assets\1587695885919.png)]

框架编码

Network Structure Code SpaceNSC示例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Xhwxavn-1591517994752)(.\README.assets\1587697380661.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZD2SPZbP-1591517994753)(.\README.assets\1587697418459.png)]

Q-learning process illustration

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8AVbfeYy-1591517994755)(.\README.assets\1587697559392.png)]

Q-learning学习的有效性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaMPQ4IC-1591517994756)(.\README.assets\1587697900061.png)]

  • (a)随机探索与Q-learning搜索的对比
  • (b)、©Top2的结构
  • (d)有参数限制下的最佳结构

Path-Level Network Transformation for Efficient Architecture Search(ICML’18)

基于已有的网络,重用模型,重用权重对连接上的路径级别进行修改

Efficient Architecture Search by Network Transformation主要是对层级别的网络进行修改,本篇文章主要对路径级别的网络进行修改

可参考解读文章:Path-Level Network

Path-Level的架构搜索

为什么要做Path-Level的架构搜索?

因为已经有一些Multi-Brach Neural Networks取得了很好效果,我们需要提供一种方法可以改变旧网络的拓扑结构,使得我们有机会生成表征能力更强的类似Inception models, ResNets这样优秀的网络或更好的网络。

定义如何拓宽网络 Net2WiderNet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2cTv6Sit-1591517994756)(.\README.assets\1587717742591.png)]

定义两种操作,Replication-Add和Split-Concat:

  • Replication-Add是指将x复制成2份,分别操作后把结果除以2再相加,保证输入和输出和之前的维度相同。

  • Split-Concat是指将x按照维度切成两份,分别操作后再把结果相接,保证输入和输出和之前的维度相同。

定义如何加深网络 Net2DeeperNet

利用Net2DeeperNet在当前层后面加一个identity层(实现细节可以看论文中的相关链接Net2Net)

定义Path-Level的架构搜索的数据结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJ42MfDX-1591517994757)(.\README.assets\1587717885648.png)]

  • a过程是Net2Wider的过程,

  • b过程是Net2Deep后再Net2Wider的过程,

  • c过程是对其中的层替换的过程,

  • d过程是把c过程定义成了我们的树结构

    节点:分配和合并策略,边:层
    由此,我们可以把整个过程看做是一个在树上搜索的过程。

搜索

类似于Layer-Level的思想,但我们利用lstm来决定用哪一层,用Tree-lstm来决定我们该使用什么分配合并策略,最终完成Layer-Level的搜索,我们不难发现Tree的结构是节点和边交替出现的,所以Tree-lstm的输入是前一个lstm的输出,Tree-lstm的输出是后一个lstm的输入。

HIERARCHICAL REPRESENTATIONS FOR EFFICIENT ARCHITECTURE SEARCH (ICLR’18,CMU&DeepMind)

提出了一种层次化的神经网络搜索空间,并通过进化算法进行搜索

参考:https://blog.csdn.net/dhaiuda/article/details/95722971

hierarchical architecture representation 分层框架表示

G是一个net的有向无环图,节点是feature map,边是对应的操作,该操作不再是简单的卷积,而可以是低一级G(有向无环图的操作)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ju0XVdoG-1591517994758)(./README.assets/1587731511478.png)]

进化算法

种群初始化

具体步骤如下:

  1. 定义分层架构的层数,定义每层计算图的形状,定义第一层基础操作集
  2. 初始化一批种群个体,个体中的每个cell都是直接映射,即输入等于输出
  3. 对种群中的个体进行大规模的变异操作
变异操作

具体步骤如下:

  1. 随机选择一层,随机选择该层的一个计算图,随机选择该计算图的一个顶点i
  2. 随机选择该计算图顶点i的后继结点j
  3. 从基础操作集中随机选择一个操作替换现有操作,如果结点i与结点j不存在操作,此时相当于添加一条由结点i指向结点j的有向边
  4. 上述步骤可以实现添加一条有向边,去除一条有向边,更改一条有向边对应的操作等
选择
  1. 采用锦标赛选择算法,每次选出当前种群中5%的个体,
  2. 选择适应度(在验证集上的准确率)最高的个体,对其进行变异操作后产生新个体,新个体在训练一定轮数并计算适应度后放回种群中,
  3. 论文采取的锦标赛算法不会kill掉任何个体,随着算法的运行,种群的规模会不断增大
随机搜索

随机搜索即去除掉锦标赛算法后的进化算法,即随机选择个体,随机进行变异操作

算法的超参数

初始种群个数N
分层架构的层数L
每一层基础操作集中操作的个数
每一层的计算图架构

预先定义好的网络整体框架

cell是通过学习得到的结构

  • small:用于搜索阶段的框架比较
  • large:用于评估学习的cell

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sK1a2alt-1591517994759)(.\README.assets\1587736200034.png)]

Neural Architecture Optimization (18’NeurIPS)

以往的基于RL和EA的方法多是在离散的搜索空间上搜索最优的框架,这是非常低效的.本文提出将网络模型通过编码器进行连续化,通过预测方程选出最佳的网络表示,再通过解码器将框架的连续表示进行离散化.

可参考

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6MaMS5B-1591517994760)(.\README.assets\1587782721950.png)]

  • 编码器: 将离散的网络框架进行编码为一个连续的表示
  • 预测方程: 将连续的表示作为输入, 预测模型的性能
  • 解码器: 将选择出来的网络框架的连续化表示进行解码离散化

Progressive Neural Architecture Search (ECCV’18)

学习cell结构, 从简单到复杂的方式渐进地学习一个cell结构, 通过拼接得到最终的模型, 对于候选模型的评估采用学习的预测函数进行预测, 得到候选模型的排序

可参考:https://blog.csdn.net/weixin_41943637/article/details/102155844

Cell(5blocks) & Architecture

cell中包含5个block,每个block有一个五元组组成(I1, I2, O1, O2, C) :两个输入,两个对应的操作,一个合并的操作类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HcdzRUp3-1591517994762)(.\README.assets\1587822998031.png)]

递增式cell的构建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WwUypFTz-1591517994768)(.\README.assets\1587825209134.png)]

  • 蓝色的小圆圈:一个对应的框架
  • 黑色实线箭头:添加一个block

使用代理模型预测性能

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nD1drYNK-1591517994770)(.\README.assets\1587826084738.png)]

Large-Scale Evolution of Image Classifiers (ICML’17)

使用EA算法尽可能减少人为干预的情况进化到一个具有好的性能的网络框架

可参考:https://blog.csdn.net/mynodex/article/details/96589377,https://blog.csdn.net/dhaiuda/article/details/95587258

需要注意的几点:

  • 变异过后weight的形状如果没有改变,子框架可以继承父代框架的权重,禁用权重继承性能会有所下降
  • 没有将在小的数据集上得到的模型直接推广到大的数据集上,而是分别进行搜索评价

进化的实验过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aeeuu009-1591517994772)(.\README.assets\1587965013799.png)]

上面的每个点都表示一个individual,其中灰色的点是被杀死的点,蓝色的点是存活下来的点。底下的四个框架是演变过程的一个例子。一开始的时候网络只有一个全局池化层,通过演变一步步变为最后的结构。从结构可以看出来,和人工设计的网络结构不同,这些网络结构有时会经历很多个非线性激活层。
————————————————
版权声明:本文为CSDN博主「mynodex」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mynodex/article/details/96589377

进化算法/禁用权重继承的进化算法/随机搜索的性能对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cyaQv63m-1591517994773)(.\README.assets/1587966054080.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3jrI7zBI-1591517994775)(.\README.assets/1587966073406.png)]

禁用权重继承性能会有所下降

Genetic CNN(ICCV’17)

通过遗传算法进行神经网络架构搜索论文首先提出了一种能表示神经网络架构的编码方案,在此编码方案上初始化种群,对种群进行选择、变异、交叉,从而抛弃性能差的神经网络架构并产生新的神经网络架构,论文将训练好的架构在验证集上的准确率作为评判网络性能好坏的指标

可参考:https://blog.csdn.net/dhaiuda/article/details/95477009

遗传算法简介

传统的遗传算法往往具有下列步骤:

  • 定义个体的基因编码方案
  • 初始化种群
  • 衡量个体生存竞争能力的适应度(通常是一个函数,函数值表示个体的生存竞争能力)
  • 淘汰适应度低的个体,选择适应度高的个体构成种群下一代的成员(选择)
  • 按一定概率对下一代成员进行基因的交叉与变异(交叉与变异),产生新个体的基因编码方案
  • 评估新种群的适应度

可以看到,遗传算法其实就是模仿生物进化的过程

框架的编码示例

在这里插入图片描述

为了让每一个编码均有效,论文在每个阶段中额外定义了两个默认节点,对于第s个阶段来说,分别为上图中的红色和绿色节点,

  • 红色节点接收前一节点的输出,对其进行卷积,并将输出的特征图送往所有没有前驱但是有后继的节点,
  • 而绿色节点接受所有有前驱但是没后继节点输出的特征图,对其进行element-wise相加后,输入到池化层,这两个节点不做编码
  • 如果一个阶段的编码为0,则红色节点直接和绿色节点连接,即经过以此卷积操作后立刻进行池化操作。

该论文也是选择在小数据集上探索网络架构,在将探索到的网络架构应用于大数据集.

网络编码示例两个独立进化得到的网络框架
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kt7Ht5Am-1591517994776)(.\README.assets\1587976524569.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRVO4Nui-1591517994777)(.\README.assets\1587976478707.png)]

其他细节可参考:https://blog.csdn.net/dhaiuda/article/details/95477009

FAST NEURAL NETWORK ADAPTATION VIA PARAMETER REMAPPING AND ARCHITECTURE SEARCH(ICLR20)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VC4WAbo4-1591517994779)(README.assets/image-20200507105334195.png)]

从一个设计好的人工网络开始,对其进行拓展得到super network,然后做架构自适应得到目标架构,然后做参数自适应得到目标网络。

ONCE-FOR-ALL: TRAIN ONE NETWORK AND SPECIALIZE IT FOR EFFICIENT DEPLOYMENT ON DIVERSE HARDWARE PLATFORMS (ICLR20)

将模型训练从架构搜索中解耦出来,来实现一次训练,挑选子网络进行不同平台的部署。

子网络之间相互共享权重,为了避免子网络之间相互影响,提出渐进收缩算法。

可参考

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vBHMLhxt-1591517994780)(README.assets/image-20200507125954431.png)]

PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search(ICLR20)

为了减少内存的消耗,对通道进行采样(1/k),只对部分通道进行卷积.

边正则化:缓解上述的“部分通道连接”操作会带来一些训练不稳定的问题

可参考

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gj9ND4jV-1591517994782)(README.assets/image-20200507134957928.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏RPZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值