NetAdapt 的思维奇妙且无效,将优化指标分为多个小指标,并且将理论指标引入到优化过程中,可能自动化产生一系列平台相干的简化网络,不仅搜寻速度快,而且失去简化网络在准确率和时延上都于较好的体现
起源:晓飞的算法工程笔记 公众号
论文: NetAdapt: Platform-Aware Neural Network Adaptation for Mobile Applications
- 论文地址:https://arxiv.org/abs/1804.03230
- 论文代码:https://github.com/denru01/netadapt
Introduction
轻量化网络次要有两种办法,别离为构造优化以及人工量化,然而以上两种办法都不能保障网络可能在不同的设施上都有较优的体现,而且目前的办法大都以非间接指标 (计算量 / 参数量) 作为领导,往往与理论后果有出入。
为此,论文提出平台相干的自动化网络简化办法 NetAdapt,逻辑如图 1 所示,以迭代优化的形式缓缓获取满足预期资源耗费的网络。NetAdapt 将资源间接指标引入优化过程,可同时反对多种资源束缚,可能疾速搜寻平台相干的简化网络。
Methodology: NetAdapt
Problem Formulation
NetAdapt 次要指标是解决以下非凸束缚优化问题:
$Net$ 是从初始预训练网络简化失去的网络,$Acc(\cdot)$ 是准确率计算,$Res_j (\cdot)$ 是对资源 $j$ 的耗费计算,$Bud_j$ 是资源 $j$ 的总量,也是优化的约束条件,能够为时延、能耗、内存或其它。
NetAdapt 将上述优化指标分成多个小指标进行迭代优化:
$Net_i$ 是第 $i$ 次迭代产生的准确率最高的网络,$Net_0$ 是初始预训练模型。随着迭代次数的减少,网络的资源耗费会变得更少,$\Delta R_{i,j}$ 代表 $i$ 次迭代中资源 $j$ 的缩减量,整体的想法相似于学习率调度。当 $Res_j(Net_{i-1})-\Delta R_{i,j}=Bud_j$ 满足所有资源时,算法终止,输入每一轮迭代优化中最优的网络,从中抉择适合的网络。
Algorithm Overview
假如以后优化指标只有时延,可采纳缩小卷积层或全连贯层的核数量进行材料耗费的优化,NetAdapt 的算法逻辑如 Algorithm 1 所示。
图 2 是每次迭代的细节,逐层 (也能够网络 unit 为单位) 抉择保留的核数量 (Choose # of Filters) 以及保留的核 (Choose Which Filters),核数量的抉择基于教训预计(前面会讲到),留神这里抉择去除整个核而不是其中的一些权值,比方 $512\times 3\times 3$ 的卷积核缩减为 $256\times 3\times 3$ 的卷积核,去除核后要去除对应的特色图。每层的优化都产生一个简化后的网络,简化后的网络随后进行短时间 fine-tune(Short-Term Fine-Tune) 来复原准确率。
在上述操作实现后,NetAdapt 单次迭代产生 $K$ 个简化网络,抉择其中准确率最高的网络作为下一轮迭代的初始网络(Pick Highest Accuracy)。若以后迭代的网络已满足资源要求时,退出优化并将每次迭代产生的最优网络 fine-tune 直到收敛(Long-Term Fine-Tune)。
Algorithm Details
-
Choose Number of Filters
以后层抉择的核数量基于教训预计来决定,逐渐缩小核数量并计算每个简化网络的资源耗费,抉择能满足以后资源耗费束缚的最大核数量。当缩小以后层的核数量时,后一层的相干维度要对应批改,这个也要思考到资源耗费计算中。
-
Choose Which Filters
有很多办法来决定抉择保留的核,论文采纳简略 magnitude-based 办法,即抉择 $N$ 个 L2-norm 最大的核,$N$ 由下面的步骤决定。
-
Short-/Long-Term Fine-Tune
在 NetAdapt 的每次迭代中,都应用绝对较小的次数(short-term)fine-tune 搜寻到的简化网络来复原准确率,这一步对于小网络而言相当重要。因为大量缩小资源量,如果不这样做,网络的准确率可能会降为零,导致算法抉择了谬误的网络。随着算法的进行,尽管网络会继续训练,但还没到收敛的境地,所以当失去最初的一系列自适应网络后,应用较多的次数(long-term)fine-tune 直到收敛作为最初一步。
Fast Resource Consumption Estimation
在自适应的过程中,须要离线计算简化网络的资源耗费,这个计算可能会很慢并且因为设施无限难以并行,会成为算法的计算瓶颈。
论文通过建设多个 layer-wise look-up 表格来解决下面提到的资源耗费计算问题,即后面提到的教训预计。每个表格事后计算对应层的在不同的输出维度和核数量下的资源耗费,留神雷同输出大小和配置的层能够共用表格内容。在估算时,先找到对应的层的表格,通过累计 layer-wise 的资源耗费来估算 network-wise 资源耗费,逻辑如图 3 所示。
图 4 比照了对 MobileNetV1 进行优化过程中估算的时延与理论时延,能够看到两个值是高度相干的。
Experiment Results
比照 NetAdapt 与其它网络简化办法在小型 MobileNetV1(50%)上的简化成果。
在不同的设施上比照 NetAdapt 与其它网络简化办法在小型 MobileNetV1(100%)上的简化成果。
Conclustion
NetAdapt 的思维奇妙且无效,将优化指标分为多个小指标,并且将理论指标引入到优化过程中,可能自动化产生一系列平台相干的简化网络,不仅搜寻速度快,而且失去简化网络在准确率和时延上都于较好的体现。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】