有了cell之后,我们就只需要定义好重复次数N和初始卷积滤波器的数量就得到了最终的网络结构,这也是当前大部分模型的搭建思想。这两个可以用经验值来设定,比如4@64,表示初始通道数为64,采用4个重复的单元,具体的学习方法与[1]一致。
其中m是每一个batch采样的结构,T是需要预测的参数量,
每一个Cell包含了若干个block,每一个block都包含了两个隐藏状态,两个对应的操作,以及融合操作,如下:
作者们对两类场景进行了实验,第一类是受延迟影响较大的应用如移动APP,使用的是资源受限的压缩,这样就可以在满足低FLOP和延迟,小模型的情况下实现最好的准确率;这一类场景作者通过限制搜索空间来实现,在搜索空间中,动作空间(剪枝率)受到限制,使得被智能体压缩的模型总是低于资源预算。
奖励指标(reward)使用的是验证集上测试准确率,如下。
因为剪枝对通道数特别敏感,所以这里不再是使用离散的空间,如{128,256},而是使用连续的空间,使用deep deterministic policy gradient (DDPG)来控制压缩比率,完整的算法流程如下:
使用了深度确定性策略梯度(DDPG)方法进行优化,下图是在延迟约束下,MobileNet-V1/V2模型在边缘端和云端设备上的实验结果,与固定的8bit量化方法相比,分别取得了1.4倍到1.95倍的加速。
由于上述框架[1]的搜索空间过大,作者后来又其进行了改进,提出了NASNet[2]。NASNet的主要特点是它对网络结构的基本单元进行搜索而不是对整个网络进行搜索,其中两类基本单元分别是Normal Cell和Reduction Cell。
以上两种动作使用的LSTM也有差异,下图(a)是层的去留使用的LSTM,可以看出是一个双向的LSTM,要同时考虑前向和反向的中间状态。
而奖励reward公式如下:
(3) 反馈,利用硬件加速器来获取延迟和能量作为反馈信号,以指导Agent满足资源约束。
其中C表示压缩率,A表示学生模型准确率,Ateacher表示教师模型准确率,教师网络的输出作为学生网络的真值。
搜索空间就是网络组件,也就是基本参数,包括滤波器数量,卷积核高、卷积核宽、卷积核滑动步长高、卷积核滑动步长宽等,如下图(分别是有跳层连接和无跳层连接),每一个参数的预测使用softmax分类器实现,跳层连接则使用sigmoid函数。
对于细粒度的剪枝,可以使用权重的最小幅度作为阈值,对于通道级别的压缩,可以使用最大响应值。在谷歌Pixel-1 CPU和MobileNet模型上,AMC实现了1.95 倍的加速,批大小为1,节省了34%的内存。在英伟达Titan XP GPU 上,AMC实现了1.53 倍的加速,批大小为50。
因为上述目标不可微分,所以需要进行近似如下:
3 关于模型优化如果说要我在深度学习这么多方向里选择一个的话,我会毫不犹豫地选择模型优化,这也是一直在做的事情。
免责声明:本站发布的内容(图片、视频和文字)以原创、来自互联网转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:ts@56dr.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
Copyright © 2009-2021 56dr.com. All Rights Reserved. 特网科技 版权所有 珠海市特网科技有限公司 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 中国互联网举报中心 增值电信业务经营许可证B2