使用高斯过程回归指导网络轻量化
论文标题:Model Rubik's Cube:Twisting Resolution, Depth and Width for TinyNets(NeurIPS 2020)
论文地址:https://arxiv.org/pdf/2010.14819.pdf
本文亮点
1.全面分析了在减小网络计算量时,减小输入图片分辨率、减小宽度和减小深度对网络精度的影响程度。
2.通过实验表明按照EfficientNet中的方法减小网络计算量不一定是最优的方法。
3.在网络计算量的限制下,使用高斯过程回归的方法寻找最优的输入图片分辨率、网络宽度和深度。并通过实验证明了使用该方法做网络轻量化的有效性。
4.方法简单,具有通用性,不会引入AI加速器不支持的算子。
关键内容
为了探索在构建轻量化网络时,减小输入图片分辨率、减小宽度、减少深度对网络性能的影响,作者做了一个实验。
以EfficientNet-B0为baseline去做网络轻量化,使得目标网络的计算量为原来一半,即200M FLOPs左右。分别使用、表示目标网络和baseline的宽度比值和深度比值,使用表示目标网络和baseline网络的输入图片长度(或宽度)比值,所以目标网络和baseline网络的输入图片的面积比值为。
随机选取和,在网络计算量的限制下,根据选取的和可得到。按照此方法可以得到若干个网络。
在ImageNet-100数据集上训练这些网络,得到的结果如下图所示。图中的EfficientNet-B-1是指按照EfficientNet论文中的方法减小baseline得到的目标网络。
上面三个图分别描述了这些模型、和和性能的关系。由上图可得到如下结论:
性能较好的网络,它们的、和大都在如下范围内:
,,
按照EfficientNet论文中的思想去减少EfficientNet-B0的计算量,得到的模型不是最优的。
同等计算量下,适当增加图片分辨率能得到高性能的网络。
给定计算量为的baseline模型,要得到计算量为
的轻量化模型,就是要求取目标模型的、和,因此、和都是的函数,即:
若要得到高性能的轻量化目标模型,需要探索一个问题:不同计算量下,什么样的模型有高性能?
为了得到上述问题的答案,作者做了一个实验,在一定范围内随机选取、和的值,得到若干模型,保留计算量在和之间的模型,训练这些模型,并在验证集上测量精度,得到下图:
图中画出了这些模型的计算量和精度,可以发现,在相似计算量下,一些模型精度超过了使用EfficientNet方法得到的模型。
使用NSGA-III方法,选取兼具高性能和低计算量的20个模型,为了探索这些好模型的、和的特点,将选取的20个模型做图如下:
分别计算、和与的相关度,得到结论:好的模型,输入图像分辨率和计算量有很强的相关性,深度和计算量有较强的相关性,宽度和计算量有弱的相关性。
使用高斯过程回归分别对和、和之间的关系进行建模,将上图中的20个模型作为训练数据。
下面阐述对和之间关系的建模过程。
使用表示训练集中20个模型的值,使用表示训练集中20个模型的值,训练集可表示为。建立高斯过程模型:
上式中是服从分布的随机噪声。根据高斯过程回归的理论,给定1个新的,要求得的与的联合高斯分布如下:
上式中,,,,取RBF。可得到的概率分布如下:
和之间关系的建模与之类似。建模完成后,可得到与给定的某个(0<c<1)值对应的最好的r值和d值,则。
作者使用EfficientNet-B0为baseline,选取,得到TinyNet-A~TinyNet-E共5个轻量级模型。
这些模型在ImageNet-1000数据集的性能如下表所示,其中RA表示使用了论文《Randaugment:Practical automated data augmentation with a reduced search space》中数据增强的方法。
此外,作者按照EfficientNet中的思想减小网络计算量,设计了名为Efficient-B-3的网络结构,将其作为SSDLite的Backbone进行目标检测算法的训练;
使用TinyNet-D网络做SSDLite的Backbone,比较两种Backbone的性能,如下表所示,说明了TinyNet系列网络有较强的通用性。
代码(即将开源):https://github.com/huawei-noah/CV-Backbones/tree/main/tinynet
仅用于学习交流!
(本文为粉丝投稿)
备注:部署
模型压缩与应用部署交流群
模型压缩、网络压缩、神经网络加速、轻量级网络设计、知识蒸馏、应用部署、MNN、NCNN等技术,
若已为CV君其他账号好友请直接私信。
我爱计算机视觉
微信号:aicvml
QQ群:805388940
微博知乎:@我爱计算机视觉
投稿:amos@52cv.net
网站:www.52cv.net
在看,让更多人看到
使用高斯过程回归指导网络轻量化相关推荐
- 动态slimmable网络:高性能的网络轻量化方法!对比slimmable涨点5.9%
动态slimmable网络:高性能的网络轻量化方法!对比slimmable涨点5.9% 论文链接: https://arxiv.org/abs/2103.13258 代码: https://githu ...
- MutualNet:一种“宽度-输入分辨率”互相学习的网络轻量化方法
本文分享一篇来自 ECCV'20 Oral 的论文『MutualNet: Adaptive ConvNet via Mutual Learning from Network Width and Res ...
- 双重回归学习:轻量化DRN网络---《Towards Lightweight Super-Resolution with Dual Regression Learning》
首先声明一下,根据我本人的理解,文章中对出现的Dual Regression做了不同翻译,除了涉及损失的时候会翻译成对偶回归损失,其余部分均译为双重回归,因为文中的损失部分是对偶的.此处读者暂且有个初 ...
- YOLOv5改进之十三:主干网络C3替换为轻量化网络EfficientNetv2
前 言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法.此后的系列文章,将重点对YOLOv ...
- 轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception
一 引言 二 轻量化模型 2.1 SqueezeNet 2.2 MobileNet 2.3 ShuffleNet 2.4 Xception 三 网络对比 一 引言 自2012年AlexNet以来,卷积 ...
- 实时互动下视频 QoE 端到端轻量化网络建模
在实时视频互动中,影响观众对视频体验的有较多且复杂的因素,包括:画质.流畅度以及与其耦合的观看设备等.传统客观算法会利用网络传输或编解码参数拟合接收端人的感知体验,或者使用图像质量结合其他相关参数拟合 ...
- 突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨happy 审稿丨邓富城 编辑丨极市平台 极市导读 本文从HRNet与轻量化网络ShuffleN ...
- 轻量化网络:ShuffleNet V2
Guideline 1-4: ShuffleNet V2 疑问: ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture ...
- 轻量化网络:SqueezeNext
<SqueezeNext: Hardware-Aware Neural Network Design> 于2018年3月公开在arXiv(美[ˈɑ:rkaɪv]) :https://arx ...
最新文章
- AE 9.3代码 升级到AE10.0
- 反向代理服务器的工作原理
- 三款云数据库性能测试,谁表现最好?
- pyhton (一)基础
- 轻松搭建基于 Serverless 的 Egg.js Web 应用
- android6.0源码分析之Zygote进程分析
- vue - resource 使用过程的坑
- python程序需要编译么_python需要编译么
- Ubuntu truffle框架安装
- 拯救不靠谱:他是怎样将技术外包做到纠纷率3%?
- 300WLP、AFLW2000-3D、Biwi Kinect Head Pose Database姿态数据的读取
- typescript的基本类型
- jquery audio没有声音_Audio-technica 铁三角 ATH-DSR7BT 头戴式蓝牙无线耳机测评报告 [Soomal]...
- js常用处理请求到的数据的方法(即map,filter,find,findIndex,some,every一些常用方法的使用)
- python调用dm.dll
- fudanNLP-使用
- 深入了解gorm Scan的使用
- Dark Crystal RAT的新变种分析
- Spring GA、PRE、SNAPSHOT 版本含义及区别
- 唐山盐碱滩成渤海明珠 国稻种芯·中国水稻节:河北曹妃甸大米
热门文章
- 使用Levmar的L-M算法拟合曲线
- Kaggle入门——房价预测
- Spring集成单元测试
- Redmine Gantt 实现 (Show relations in Gantt diagram)
- [bz][LINUX command 002] 嵌入式常用的命令
- python语言程序设计实验教程答案实验三_20182204 实验三《Python程序设计》实验报告...
- set的用法及短语_专升本英语易考短语搭配+常考句型
- 百度云服务器bcc搭建php环境,使用百度云服务器BCC经验谈
- h5 video 手机上无法显示_手机镜象投屏到电视上全屏显示
- bigdecimal正确用法_BigDecimal使用实践和注意事项