【GiantPandaCV导语】Once for all是韩松组非常有影响力的工作,其最大的优点是解耦了训练和搜索过程,可以直接从超网中采样出满足一定资源限制的子网,而不需要重新训练。该工作被ICLR20接收。
0. Info
Title: Once-for-All: Train one Network and Specialize it for Efficient Deployment
Author: 韩松组
Link: https://arxiv.org/pdf/1908.09791v5
Publish: ICLR2020
1. Motivation
传统网络搜索方法往往只能针对某个特定设备或者特定资源限制的平台进行针对性搜索。对于不同的设备,往往需要在该设备上从头训练。这样的方法扩展性很差并且计算代价太大,所以once for all从这个角度出发,希望能做到将训练和搜索过程解耦,从而可以训练一个支持不同架构配置的once-for-all网络(类似超网的概念),通过从once-for-all网络中选择一个子网,就可以在不需要额外训练的情况下得到一个专门的子网络。
- 不同的硬件平台有着不同的硬件效率限制,比如延迟、功耗
- 不同的硬件平台的硬件资源差别很大,比如最新的手机和最老的手机。
- 相同的硬件上,不同的电池条件、工作负载下使用的网络模型也是不同的。
也就是说,网络设计主要受平台的以下几方面约束:
- 部署的硬件设备不同。
- 相同硬件设备上不同的部署要求,比如期望的延迟。
2. Contribution
- 提出了解决以上问题的方法:设计once-for-all网络,可以在不同的网络配置下进行部署。
- 推理过程使用的模型是once-for-all网络的一部分,可以无需重新训练就能灵活的支持深度、宽度、卷积核大小、分辨率等参数的不同。
- 提出了渐进式收缩的训练策略来训练once-for-all网络
3. Method
方法部分需要搞清楚两个问题,一个是网络是什么样的?一个是网络是如何训练的?
第一个问题:once-for-all网络长什么样子?
once-for-all网络支持深度、宽度、卷积核大小、图像分辨率四个因素的变化。
- elastic depth: 代表选择任意深度的网络,每个单元的深度有{2,3,4}三个选项。
- elastic width: 代表选择任意数量的通道,宽度比例有{3,4,6}三个选项。
- elastic kernel size: 代表选择任意的卷积核大小,有{3,5,7}三个选项。
- arbitrary resolution: 代表图像的分辨率是可变的,从128到224,stride=4的分辨率均可。
由于网络包括5个单元,所以候选的子网大概有 ( ( 3 × 3 ) 2 + ( 3 × 3 ) 3 + ( 3 × 3 )