【Joslim】2021-ECML-Joslim: Joint Widths and Weights Optimization for Slimmable Neural Networks-论文阅读

Joslim

2021-ECML-Joslim: Joint Widths and Weights Optimization for Slimmable Neural Networks

来源:ChenBong 博客园

Introduction

layer-wise width 的 Slimmable Network

Motivation

Contribution

  • 联合优化不同FLOPs下的不同子网的结构 (layer-wise宽度)和权重

Method

Problem formulation

将优化目标定义为(err-FLOPs)曲线下面积:

image-20210801132513591 image-20210801132705143

交替优化子网结构w和超网权重θ (用子网性能的期望代替曲线下面积):

image-20210801132912356

公式(6): 冻结超网权重, 优化区间内任意子网的结构, 使得每个子网的性能最高;

公式(7): 冻结区间内任意子网结构, 优化超网权重, 使得每个子网的性能最高;

公式(6)可以看做在固定的预训练超网权重上, 搜索区间内任意的子网结构 (类似OFA, BigNAS的搜索阶段), 可以使用进化算法等进行搜索, 但目标子网太多, 开销太大; 且每个迭代都要进行搜索的话, 开销太大

公式(7)意思应该是将区间内任意的子网结构都训练到收敛, 开销太大

Targeted sampling

针对公式(6)(7)待优化子网太多的问题, 每个迭代步骤不是优化区间内任意的子网结构, 而是只优化固定的M个FLOPs目标的子网结构 (用样本均值代替期望):

image-20210801134247140

公式(9): 冻结超网权重, 优化区间内M个子网的结构, 使得每个子网的性能最高; 这里有一个问题, 在每个迭代中, 如何确定不同约束下最佳的M个子网结构?

公式(10): 冻结区间内M个子网结构, 优化超网权重, 使得每个子网的性能最高;

Local approximation

公式(10)的意思还是将M个子网都训练到收敛, 开销还是太大, 作者采用K步梯度下降 (每个子网训练K步) 来近似该结构的性能(K越大开销越大)

Temporal sharing

为了解决公式(9)中遗留的问题: 在每个迭代中, 如何确定不同约束下最佳的M个子网结构?

提出了一种使用历史数据点, 预测下一步的数据点的算法 MOBO_TS2(写的不是很清楚):

image-20210801140614540

实验中, 历史数据集合的大小: (|H| = 1000)

总体算法

image-20210801140644237

实验中M=2, 即每个batch训练max+rand2+min共4个子结构, 且这4个子结构梯度下降K次

其中rand2个子结构是使用MOBO-TS2算法生成的

Experiments

所对比的Slim(USNet), BigNAS是作者自己的实现 (改了一些配置以确保公平比较)

CIFAR-10/100

image-20210801141401473
  • CIFAR-10上, 3种方法性能相当
  • CIFAR-100上, 越浅的网络Joslim的优势越大
  • CIFAR-100上, 越宽的网络Joslim的优势越大 (&& 2345x的优势反而没有1x的优势大)

ImageNet

FLOPs

image-20210801141433708 image-20210801141606094

Latency 与 Memory foot-print

image-20210801142331629

Memory foot-print(最大内存占用): 网络所需的最大内存:

image-20210801143039420

Ablation

image-20210801142529205
  • MOBO_TS2中的二分查找可以让生成的子网FLOPs均匀分布(b), 从而提高性能(a)
  • K步SGD中K的设置

Compare with AutoSlim

将AutoSlim获得的不同子网的Layer-wise width提取出来, 训练Slimmable网络进行对比:

image-20210801143243158

Conclusion

Summary

To Read

Reference

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