ECCV 2022 | 谷歌提出Data-free NAS,网络搜索仅需一个预训练模型
- 论文地址: https://arxiv.org/abs/2112.02086
- 代码地址: https://github.com/liuzechun/Data-Free-NAS
Data-free NAS 的架构非常简单,分为两步,第一步用预训练网络模型生成数据,第二步用生成的数据和预测的标签(label)来训练 NAS。
1. 图片生成算法
这篇文章不仅利用了损失函数计算导数来指导图片生成,还提出了循环生成语义更丰富的标签(recursive label calibration)和区域更新方法(regional update)来提升生成数据的丰富度。
1.1 Loss function
最基础的数据生成方式通过输入一张全是白噪声的图片到预训练网络中,通过计算输出的 logits 和目标标签的损失函数来计算导数,更新图片,并且添加正则化约束。
1.2 recursivelabel calibration 因此作者提出循环标签生成(recursive label calibration),主要基于的一个观察:自然图像作为预训练模型的输入时,模型输出的预测是一个分布,最大值是目标类,并且有其他几个峰值落在与之近似的类上。如下图所示,一张自然图像 “咖啡杯” 的预测包含 “咖啡杯” 和相关类“杯子”。
从图(c)中可以看出,使用 Recursive Label Calibration 合成的图像。它会自动将 “杯子” 标识为针对 “咖啡杯” 合成的图像的相关类,并且生成图像看起来也更自然。
此外,作者提出的区域更新(regional update),即在生成图片过程中,每次仅用导数更新图片的一个区域,比如针对于 ImageNet 数据集的生成数据仅更新 256×256 的图片范围中大小为 224×224 的随机范围。这样保证每一个 224×224 的范围都可以独立成为一幅生成图片,从而配合后续网络训练中用到的随机裁剪(random crop)数据增强算法。
2. 可视化和对照实验
这样,生成的图片相比于仅仅用损失函数生成的图片来得更佳多样化,也更接近真实图片:
最后,作者用生成图片和生成图片对应的预训练网络预测值来指导 NAS 训练,结合三种常见的 NAS 方法,得到 data-free NAS,包括用基于导数的搜索算法 DSRTS [1],基于遗传算法的 SPOS[2],和基于强化学习算法的 ProxylessNAS[3]。
Data-free DARTS :
参考文献: [1] Liu, H., Simonyan, K., Yang, Y., et al.: Darts: Differentiable architecture search. In: International Conference on Learning Representations (2019) [2] Guo, Z., Zhang, X., Mu, H., Heng, W., Liu, Z., Wei, Y., Sun, J.: Single path one-shot neural architecture search with uniform sampling. arXiv preprint arXiv:1904.00420 (2019)
[3] Cai, H., Zhu, L., Han, S., et al.: Proxylessnas: Direct neural architecture search on target task and hardware. arXiv preprint arXiv:1812.00332 (2018)