【FairNAS】2019-arxiv-FairNAS Rethinking Evaluation Fairness of Weight Sharing Neural Architecture Search-论文阅读

FairNAS

2019-arxiv-FairNAS Rethinking Evaluation Fairness of Weight Sharing Neural Architecture Search

来源:ChenBong 博客园


Introduction

NAS总体上就是跑n个模型,找到最好的模型。

一般可以分为2个stage:

  • 搜索阶段,(生成器)生成不同的模型
  • 评估阶段,(评估器)评估这些模型的性能

NAS方法分类

基于强化学习的方法

  • 使用controller(LSTM/RNN)生成候选模型描述,训练完将性能作为reward,更新controller,使 controller 可以生成越来越好的模型。
  • 可以看出,基于RL的方法是将 搜索阶段(生成模型) 和 评估阶段(评估模型的性能)轮流进行,目的是使得生成器(controller)的生成的模型性能越来越好。
  • 缺点:由于要完全训练很多候选模型,效率极低。

基于梯度下降的方法(DARTS-like)

  • 将生成 和 评估 整合到一个阶段,在一个网络中给每个算子op都附加一个可微分的强度系数(α),初始的时候每个算子op的强度都是平等的,在训练过程中对网络性能提升更大的算子会被加强,即在训练中自动调整网络中算子op的强度
  • 优点:最大的贡献在于 用连续的空间来表示离散的网络结构,使得离散的结构变得连续可微分(例如)
  • 缺点:
    1. 计算开销问题:每次前向反向都要经过所有的算子,计算开销很大,因此无法直接在大数据集上进行搜索,只能使用代理(在小数据集上搜索再迁移到大数据集上)
    2. 公平性问题 - 马太效应:一个优秀的算子只是因为训练过程中分配到的资源多,而不是因为本身优秀。一开始每个算子强度相同,随机选择一些算子开始优化,这些算子在前期被优化得多,导致其强度(α)越来越大,而强度大又导致更新它对整个网络的性能提升更明显。有限的训练资源,给谁越多,谁就越强。即初始值敏感强者越强,弱者越弱,而陷入局部最优。
    3. 公平性问题 - “前期英雄”:有些算子可能是“前期英雄”,而有些算子是“后期英雄”,而DARTS倾向于去找那些“前期英雄”的算子,而陷入局部最优。
    4. 搜索阶段和推理阶段的差异问题:即搜索时使用全部算子的加权,而最后只保留最高的或top-k
    5. 理论基础问题:DARTS认为在训练过程中,根据梯度可以自动判断算子的好坏,但这是一种偏直觉的排序策略,没有数学的理论基础。

one-shot 的基于参数共享的方法

  • Pipeline:

    • Stage 1:训练一个超网(评估器);
    • Stage 2: (生成)使用一些策略(如Random,EA)从超网中采样候选网络
    • Stage 3:评估)候选网络从超网中继承权重进行推理,推理性能即作为该候选网络的性能估计。即将超网作为不同候选网络的性能评估器
    • Stage 4:选择评估阶段Stage 3中的 top-k 进行 train from scratch
  • 优点:one-shot 可以概括为 “一次训练,多次推理Train Only Once to Evaluate All Submodels,即只要训练一个超网,就可以评估多个子网

  • 缺点:

    1. 计算开销问题:超网要包含足够的搜索空间,导致网络太大,计算开销大(改进:SPOS中每次选择single path进行训练,而不是每次训练整个网络)
    2. 相关性问题:或者叫一致性问题,即超网中子网性能(One-shot acc)和retrain后的性能(stand-along acc)相关性不强(而且往往比较低),即搜出来的优秀子网并不一定是最优秀的子网,甚至可能还比较差,而相关性正是 one-shot 方法的基础,如果没有这个基础假设,one-shot 这个方法就没有意义了。

    对于每次 uniform sample 一两条路径进行训练的one-shot(如SPOS等),还有以下问题:

    1. 公平性问题 - 马太效应: 对于某一个优秀的op,我们不知道它是真的天生优秀(适合位于网络的这个位置),还是被训练的次数多被优化的好,尽管是 uniform 采样,但是实际过程中肯定是会存在该问题的,FairNAS里的证明就说了这个事,即每个op都均等采样是基本不存在的。
    2. 公平性问题 - 顺序问题: ** 就算假设某一层有4个op,然后4次采样也很幸运,每个都采样了一遍,但是因为每采样一次会更新一次超网,所以后来的采样一定会受到之前更新的影响,即所谓采样顺序不同**也会带来公平性的问题。(ABCD不等于DBCA)。

Kendall Tau(τ) (Kendall相关系数)

one-shot acc 高的模型,stand-alone acc 不一定是最高的,甚至可能表现很差。 因此一种用的比较多的就是Kendall Tau (τ) metric,它会评估两个阶段模型性能的相关性,相关性越高则表示算法越有效。τ 的范围在-1到1之间:

  • τ= 1:one-shot acc 的排序 和 stand-alone acc 的排序完全一致
  • τ= -1:one-shot acc 的排序 和 stand-alone acc 的排序完全反序
  • τ = 0:one-shot acc 的排序 和 stand-alone acc 的排序完全没有关系

可以看出,我们希望 τ 的值越大越好。

e.g.

  • A method based on time-consuming incomplete training only reaches an average τ of 0.474. 【2019-ICCV-Multinomial Distribution Learning for Effective Neural Architecture Search, X Zheng】
  • SPOS(Single Paht One-Shot),τ = 0.6153
  • FairNAS(ours), τ = 0.9487

FairNAS 介绍

FairNAS 可以总结为:

不放回的子网采样,多子网梯度统一更新。


Motivation

作者从one-shot方法中存在的 两阶段性能(one-shot acc VS stand-alone acc) **存在很大的gap (30%-90% vs. 92%-94.5%) **,还有 两阶段性能 相关性不强 的现象出发,发现当前NAS方法(包括DARTS和one-shot)中普遍存在的 unfair training 导致的 unfair evaluation 的问题,提出了一种称为 Strict Fairness(FairNAS) 的公平训练方法,使得两阶段性能强正相关,达到了SOTA的 Kendall Tau(τ) of 0.9487


Contribution

  • 提出了 Strict Fairness(FairNAS) 的公平训练方法使得两阶段性能呈现强烈的正相关,τ = 0.9487
  • 证明了 在 uniform sample 下,采样次数趋于无穷时,每个算子op被采样的次数 Y 不可能都相同
  • Single-Path supernet training 有效性的原因:同一层的不同choice block学到了相似的特征
  • 实验说明 在 fairness condition 下对超网中的子网进行评估时,无需重新计算BN层(与 EagleEye 的结论相反)

Method

Formally, we discuss fairness in a common supernet that consists of L layers, each with several choice blocks.

Without loss of generality, we suppose each layer has an equal number of choices, say m.

The weights are updated for n times in total.

Therefore, we can describe the training process as P(m, n, L).

L = 19 layers, m = 6 ops(不同的层有相同的op数m)

sample / update n​ times

image-20200920161842149


Define2. Expectation Fairness(EF约束)

L = 19 layers, m = 6 ops(不同的层有相同的op数m)

sample / update (n) times


Define 2. Expectation Fairness (EF)

a natural way is to guarantee all choices blocks have equal expectations after n steps

Definition 2. Expectation Fairness.

(Ω) be the sampling space containing m basic events ({l_1, l_2, ..., l_m}),

Let (Y_{l_i}) be the number of times that outcome (l_i) is observed(updated) over n trails.

Then the expectation fairness is that for (P(m, n, L), E(Y_{l_1}) = E(Y_{l_2}) =...= E(Y_{l_m}) holds, ∀l∈L)

即 同一层的不同算子op要选中(更新)同样的次数


An EF Example: Uniform Sampling(SPOS)

(egin{aligned} Eleft(Y_{l_{i}} ight) &=n * p_{l_{i}}=n / m \ operatorname{Var}left(Y_{l_{i}} ight) &=n * p_{l_{i}}left(1-p_{l_{i}} ight)=frac{n(m-1)}{m^{2}} end{aligned} qquad (1))

即所有的算子op被选中的次数Y的期望和方差都相同。

但存在一个ordering issue:即子网的选择顺序会影响最后的结果,(M1,M2,M3)和(M1,M3,M2)不同


Lemma 1.

image-20200920172213073

均匀采样的条件下,当训练次数n趋于无穷时,同一层的不同算子被选择的次数都相同的概率为0

证明如下:

image-20200920173212656

image-20200920173227641


Definition 3. Strict Fairness(SF约束)

image-20200920172429967

即当训练次数n是每层op数量m的整数倍时,同一层的m个算子op被采样(更新)的次数都相同。

SF约束比EF约束更加严格,EF约束只要求每个op被选中的次数的期望相等,而SF约束要求次数严格相等。


几种NAS方法的约束对比

image-20200920172900513


FairNAS

Stage One: Train Supernet with Strict Fairness

不放回的子网采样,多子网梯度统一更新。

每个step包含m次采样,即采样m个相互独立的子网,即可采样完所有op,一个子网反向传播计算完子网中ops的梯度以后,不是马上更新,而是等到所有子网采样完以后再一起更新到 supernet 中(其实应该也可以每个子网自己更新,不放回的采样已经保证了不同子网是独立的,不会互相影响)。

所以可以并行计算更新m个子网,加快计算速度。

image-20200920161842149

这样做可以满足:

(egin{aligned} Eleft(Y_{l_{i}}^{prime} ight) &=n / m \ operatorname{Var}left(Y_{l_{i}}^{prime} ight) &=0 end{aligned} qquad (2))

即同一层每个op采样次数Y的期望都相同,且方差为0(即次数Y完全相同)


具体的 training superner 算法如下:

image-20200920192552611


Stage Two: Searching with Supernet as an Evaluator

为了搜索满足多个目标(latency,FLOPs...)的子网,我们使用我们之前的工作中的搜索算法 MoreMNAS [7],使用 Proximal Policy Optimization 作为强化算法,不太了解这个方法,这里先不介绍。


Ablation Study

Model Ranking Capacity

image-20200920183928680


Why Does Single-Path Training Work?

第1层6个 choice blocks 的 feature map 通道可视化

&& 这个可视化方法是什么?

&& 使用第1层进行可视化说服力不够,可能是因为低层学习的东西都类似,不知道后面的层是否依然有这样的特性?

image-20200920184136996


第1层不同的 block 之间余弦相似度很高:

image-20200920185751316

第1层 6个 choice blocks 对应通道的余弦相似度:

image-20200920184157759

第1层不同blcok的不同通道 feature map 的相似度block之间的相似度都说明,第1层的不同block(op)学到了类似的东西

&& 不同的block应该是不同的op,那是不是说明不同的op实际上是可以等价转换的?(即对inpu产生的作用相同/相近?比如3×3, 5×5卷积,使用各自特定的参数,可以实现相同/相近的效果?那是不是保留一种op就可以了?)

&& 图3右 中不同的block(不同的op)是如何计算余弦相似度的?


Fairness Closes Supernet Accuracy gap

FairNAS 提高了 one-shot acc,即减少了one-shot acc 和 stand-alone之间的gap

image-20200920184912510

Experiments

Setup

Search Space:

  • conv kernel size {3,5,7},expansion rate {3,6},m=6

  • based on MobileNetV2,L=19

DataSet:ImageNet

Train Supernet:

  • Epochs:150
  • Batch Size:256
  • Optimizer:SGD
  • Momentum:0.9
  • Learning Rate:initial 0.045,cosine
  • Weight Decay:L2 ((4×10^{-5}))
  • GPU:V100,10 GPU days

Sub-model:/


Architecture of FairNas-A,B,C

image-20200920183327552


ImageNet

image-20200920183349455


transfer to CIFAR10/100

image-20200920183427908


Conclusion


Summary

  • 方法其实很简单,只是使用不放回的采样
  • 发现了公平采样对相关性的显著提高,这点很有意思
  • 同一层不同的blcok可以学习到相近的东西,但是文中只可视化了第一层,并不确定更深的层是否依然有该现象

FairNAS存在的一些问题:

  • 采样m个子网就要把所有的op全部采样一遍,不能有遗漏,这就导致每层的op个数必须相同,无法推广到更复杂的搜索空间
  • 只是在每个step公平采样每个子网(每个step之内的训练是解耦/公平的),不同step之间的训练依然会相互影响(不同step之间的训练依然是耦合/不公平的)

ToRead

2019-ICCV-Multinomial Distribution Learning for Effective Neural Architecture Search


Reference

NAS 学习笔记(九)- FairNAS

小米三部曲NAS

深度解读:小米AI实验室AutoML团队最新成果FairNAS

超越MnasNet、Proxyless:小米开源全新神经架构搜索算法FairNAS

如何评价小米AutoML团队的NAS三部曲工作?

NAS论文小结

One-Shot 神经网络搜索(NAS)的searching阶段到底在做什么?

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