【BN-NAS】2021-ICCV-BN-NAS: Neural Architecture Search with Batch Normalization-论文阅读

BN-NAS

2021-ICCV-BN-NAS: Neural Architecture Search with Batch Normalization

来源:ChenBong 博客园

  • Institute:The University of Sydney, BAIDU USA LLC, University of Oxford, SenseTime
  • Author:Boyu Chen, Peixia Li, Baopu Li, Ming Sun
  • GitHub:https://github.com/bychen515/BNNAS
  • Citation:/

Introduction

one-shot NAS的三个步骤:

  1. supernet training
  2. subnet search, 子网继承超网权重后, 在验证集上评估acc, 作为子网的性能分数
  3. 选择搜索阶段验证集acc最高的k个子网进行 retraining

其中1,2步骤都是很耗时的

image-20210918174308579

本文做的改进有2点:

  • 在supernet training 阶段只训练BN参数
  • 在subnet search阶段, 不是将继承超网权重后的子网在验证集上计算acc, 而是直接计算每个结构的BN score(子网中每个op的BN层的γ之和), 作为该子网结构的性能分数

Motivation

  • 只训练BN层的网络也有一定的性能: 2021-ICLR-Training BatchNorm and Only BatchNorm: On the Expressive Power of Random Features in CNNs
  • 基于BN的剪枝方法: γ小的通道更不重要

Contribution

Method

Framework

image-20210918175054220

Search Space

mobile space

image-20210918175220988

BN score

op 的 BN score: (S_{o_{n, l}}=frac{1}{C} sum_{c=1}^{C}left|gamma_{c}^{o_{n, l}} ight| qquad (3))

subnet arch 的 BN score: (S_{mathcal{N}_{a}}=sum_{l=1}^{L} S_{o_{a_{l}, l}} qquad (4))

搜索目标:

image-20210918180034392

只训练BN层, 且只训练10%的epoch, 大大降低了训练开销 (10%×80%=8%)

只需计算子网结构的 BN score, 无需在valid set上计算子网acc, 大大降低了搜索开销 ((6e6×) speed up)

image-20210918174308579

Experiments

Ablation

为什么选择10%的epoch

每个epoch结束后, 都可以计算当前epoch的 BN score 排序vector

每一层的op rank排序向量(1...N), 每一层N个op, 整个超网L层一共就是长度为NL的排序vector

计算不同epoch的排序vector的相似矩阵:

image-20210918180651180

对比了a)训练所有参数, b)只训练BN参数

作者想说明,

  • 训练所有参数的情况下, 排序vector在30个epoch之后趋于稳定
  • 只训练BN的情况下, 排序vector在10个epoch之后趋于稳定

但无论是a的30epoch还是b的10epoch的排序vector与其他epoch的相似性都很低(白色), 无法说明已经趋于稳定

BN score 与 Acc score

训练的参数/score类型/超网训练epoch数

比较不同训练配置(训练全部/部分参数, 超网训练epoch数)下, BN score 和 acc score 搜出来的top-5个子网结构的平均acc (retrain后)

image-20210918181103042
  • 右: 在训练全部参数, 超网充分训练训练(100个epoch)的情况下, BN score与Acc score搜到结构性能相当
  • 中: 在训练全部参数, 超网不充分训练训练(30个epoch)的情况下, BN score搜到子网结构比Acc score好很多
  • 左: 在只训练BN参数, 超网训练不充分(10个epoch)的情况下, BN score搜到的子网结构比Acc score好很多

BN score/Acc score与retrain Acc的相关性

image-20210918182052188

BN score与retrain acc也有较高的相关性

Classification

image-20210918165811142 image-20210918172151443

Detection

image-20210918172950025

Conclusion

Summary

提出了结构metric: 一种直接根据子网结构/权重的某种metric来作为子网结构真实性能的proxy的评估方法

有点像剪枝的做法, 甚至直接用了剪枝中的metric (BN):

  • 剪枝的metric用于评估filter的重要性
  • 结构metric用于评估子网的性能

(拓展: L1, L2, HRank, taylor...)

To Read

Reference

原文地址:https://www.cnblogs.com/chenbong/p/15411788.html