zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    洛谷—— P1187 3D模型
    商铺项目(Redis缓存)
    商铺项目(使用DES加密配置信息)
    Linux下tomcat启动项目原因排查
    商铺项目(商品详情页开发)
    商铺项目(店铺详情页开发)
    商铺项目(店铺列表开发)
    商铺项目(首页前端开发)
    商铺项目(首页后台开发)
    商铺项目(商品类别模块二)
  • 原文地址:https://www.cnblogs.com/chenbong/p/15411788.html
Copyright © 2011-2022 走看看