/Neural-Architecture-Search-Models

This is my summary of some famous NAS models(in progress). At present, only the Chinese version is available.

NAS-Models

This is my summary of some famous NAS models(in progress). At present, only the Chinese version is available.

Organized in chronological order(arXiv v1)

table 1

模型结构 提出时间 搜索方法 搜索数据集 Cell或super-net
SMASH 2017.8.17 随机搜索 cifar10和cifar100 macro搜索方式
ENAS 2018.2.9 强化学习 cifar10 搜索Cell
DARTS 2018.6.24 梯度方法 cifar10 搜索Cell
One-Shot 2018.7.3 随机搜索 分别在cifar10和ImageNet搜索 以Cell为基础,直接搜索模型
MnasNet 2018.7.31 强化学习 ImageNet 搜索super-net
NAO 2018.8.22 梯度方法 cifar10 搜索Cell
ProxylessNAS 2018.12.2 梯度方法或强化学习 分别在cifar10和ImageNet搜索 super-net
FBNet 2018.12.9 梯度方法 ImageNet代理数据集 搜索super-net
ChamNet 2018.12.21 进化算法 ImageNet 在Basenetwork上调整
SNAS 2018.12.24 梯度方法 cifar10 搜索Cell
SPOS 2019.3.31 进化算法 ImageNet 搜索super-net
Randomly Wired 2019.4.2 随机图搜索 ImageNet 搜索super-net
Single-Path NAS 2019.4.5 梯度方法 ImageNet 搜索super-net
DenseNAS 2019.6.23 梯度方法 ImageNet代理数据集 搜索super-net
FairNAS 2019.7.3 强化学习和进化算法 ImageNet 搜索super-net

table 2

模型结构 搜索阶段更新参数时的显存
SMASH 一条路径+HyperNet权重
ENAS 一条路径的权重+RL系统(REINFORCE)
DARTS 全部路径的权重
One-Shot 全部路径的权重(但有dropout path)
MnasNet 一条路径的权重+RL系统(PPO)
NAO 全部可能的网络结构及其权重+编解码系统(LSTM)
ProxylessNAS 两条路径的权重
FBNet 全部路径的权重
ChamNet 不更新参数。如果搜索到的结构性能不佳,则会通过进化算法进行选择,优胜劣汰
SNAS 全部路径的权重
SPOS 一条路径的权重
Randomly Wired 先产生随机图,随机图产生之后,网络结构就固定下来,之后只进行训练。
Single-Path NAS 一条路径的权重。但该路径是搜索空间中k和e值最大的那条
DenseNAS 全部路径的权重
FairNAS 多个一条路径的权重,串行或并行

table 3

模型结构 是否在ImageNet实验
SMASH 否。只将cifar10或cifar100迁移到了STL10
ENAS
DARTS 是。cifar10迁移到ImageNet
One-Shot 是。直接在ImageNet上进行搜索,挑选正确率最高的模型,再抛弃所有权重,重新进行训练
MnasNet 是。直接在ImageNet上进行搜索,但不把搜索到的网络结构进行充分训练,只训练5个epoch
NAO 否。只将cifar10迁移到了cifar100
ProxylessNAS 是。直接在ImageNet上搜索
FBNet 是。ImageNet代理数据集迁移到ImageNet
ChamNet 是。先取部分ImageNet数据集,每个类别取50个样本,训练predictors(这里比较费时间,但该处的训练是one-time cost的,后边直接使用predictors,不再训练它们),然后再在ImageNet上进行网络搜索
SNAS 是。cifar10迁移到ImageNet(同DARTS)
SPOS 是。直接从ImageNet上进行搜索
Randomly Wired 是。网络结构固定后,在ImageNet上进行训练
Single-Path NAS 是。直接从ImageNet上进行搜索
DenseNAS 是。ImageNet代理数据集迁移到ImageNet(同FBNet)
FairNAS 是。直接从ImageNet上进行搜索

table 4

模型结构 是否需要retrain
SMASH 是。随机采样网络结构,训练HyperNet的权重;训练完毕后,将候选的网络结构输入到HyperNet中,导出网络结构的权重,判断网络性能;之后将性能好的网络结构保留,重新训练权重
ENAS 是。抛弃搜索权重,重新定义Cell的堆叠层数,只在cifar10上进行retrain
DARTS 是。抛弃搜索权重,重新定义Cell的堆叠层数,分别在cifar10和ImageNet上进行retrain
One-Shot 是。抛弃搜索权重,但Cell的堆叠层数保留,不重新定义
MnasNet 是。找到性能最好的15个网络结构(应该不抛弃搜索时的权重),然后再在ImageNet上进行充分训练
NAO 是。抛弃搜索权重,重新定义Cell的堆叠层数,分别在cifar10和cifar100上进行retrain
ProxylessNAS 原文中未说明
FBNet 是。抛弃搜索权重,根据概率采样性能好的super-net,在ImageNet上进行retrain
ChamNet 文中未说明,但应该需要retrain。进化算法搜索网络结构时并没有用梯度下降优化网络权重,所以应该需要retrain(该结论不是很确定)
SNAS 是。抛弃搜索权重,重新定义Cell的堆叠层数,分别在cifar10和ImageNet上进行retrain
SPOS 是。搜索时不更新权重,权重都是一开始被初始化的,进化算法找到最好的super-net后再在ImageNet上进行retrain
Randomly Wired 否。生成随机图的过程就是搜索的过程,随机图确定后再进行训练
Single-Path NAS 是。抛弃搜索权重,根据学得的阈值导出super-net,再在ImageNet上进行retrain(该结论不是很确定)
DenseNAS 是。抛弃搜索权重,根据维特比算法导出最优super-net,在ImageNet上进行retrain
FairNAS 原文中未说明

table 5

模型结构 约束项
SMASH
ENAS
DARTS
One-Shot
MnasNet 搜索时得到的网络结构整体的latency。注意,不是每个block的
NAO
ProxylessNAS 通过每个block时的运行时间:latency
FBNet 通过每个block时的运行时间:latency(同ProxylessNAS)
ChamNet latency约束:计算每个op的latency,整体网络的latency即这些op的latency之和;energy约束:用一个predictor来预测energy,该predictor用GP+BO方法,它也需要训练。注意energy并不是在硬件上实际测量的energy
SNAS 参数量、FLOPs、MAC
SPOS FLOPs(可能还有其它约束)
Randomly Wired
Single-Path NAS 通过每个block时的运行时间:latency。因为该模型不是多路径的,所以latency的计算方式和ProxylessNAS有差别
DenseNAS 通过每个block时的运行时间:latency(同ProxylessNAS)
FairNAS FLOPs、参数量

Download link

Contributing

If you find any mistakes above or have something to add, please contact me. Thank you!