ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别
前言:这篇论文旨在以极低的计算成本解决性能大幅下降的问题。提出了微分解卷积,将卷积矩阵分解为低秩矩阵,将稀疏连接整合到卷积中。提出了一个新的动态激活函数-- Dynamic Shift Max,通过最大化输入特征图与其循环通道移位之间的多个动态融合来改善非线性。
在这两个新操作的基础上,得到了一个名为 MicroNet 的网络系列,它在低 FLOP 机制中实现了比现有技术显着的性能提升。在 12M FLOPs 的约束下,MicroNet 在 ImageNet 分类上达到了 59.4% 的 top-1 准确率,比 MobileNetV3 高 9.6%。
论文:MicroNet: Improving Image Recognition with Extremely Low FLOPs
代码:https://github.com/liyunsheng13/micronet
欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。
论文出发点
高效 CNN 架构的最新进展成功地将 ImageNet 分类的计算成本从 3.8G FLOPs (ResNet-50) 降低了两个数量级到大约 40M FLOPs(例如 MobileNet、ShuffleNet),性能下降合理。
然而,当进一步降低计算成本时,它们会遭受显着的性能下降。例如,当计算成本分别从 44M 下降到 21M 和 12M MAdds 时,MobileNetV3 的 top-1 准确率从 65.4% 大幅下降到 58.0% 和 49.8%。
这篇论文的目标是将极低 FLOP 机制下的精度从 21M 降到 4M MAdds,这标志着计算成本降低到另一个数量级。
处理极低计算成本(4M-21M FLOPs)的问题非常具有挑战性,考虑到输入数据大小为 224×224x3,在第一层 3 × 3 卷积、输出通道8的操作上就消耗了 2.7M MAdds。 剩余的资源太有限,无法设计有效分类所需的卷积层和 1,000 类分类器。

如上图所示,减少现有高效 CNN(例如 MobileNet 和 ShuffleNet)的宽度或深度的常见策略会导致严重的性能下降。
这篇论文专注于新的算子设计,同时将输入分辨率固定为 224×224,预算成本为 4M FLOPs。
创新思路
这篇论文从两个角度处理极低的 FLOPs:节点连接性(node connectivity)和非线性(non-linearity),这与网络宽度和深度有关。
首先,降低节点连接以扩大网络宽度为给定的计算预算提供了一个很好的权衡。其次,依靠改进的层非线性来补偿减少的网络深度,这决定了网络的非线性。这两个因素促使设计更有效的卷积和激活函数。
Methods
Micro-Factorized Convolution
分为两部分:Micro-Factorized Pointwise Convolution和 Micro-Factorized Depthwise Convolution,两者再以不同方式组合。
Micro-Factorized Pointwise Convolution
论文提出了微分解卷积 (MF-Conv) 将逐点卷积分解为两个组卷积层,其中组数 G 适应通道数 C 为:G = sqrt(C/R)
其中 R 是两者之间的通道缩减比。
对于给定的计算成本,该等式在通道数量和节点连接之间实现了良好的折衷。

如上图所示,输入通道数C分为G组,G组再通过中间一个 (C/R × C/R )的置换矩阵Φ 降低通道数,这个置换矩阵类似于shufflenet中的打乱通道顺序的操作。
Micro-Factorized Depthwise Convolution

这个部分是引用Inception_v2中的分解卷积,在使用Depthwise的基础上,将KxK卷积核分为Kx1和1xK两部分。
Micro-Factorized pointwise 和 depthwise 卷积可以以两种不同的方式组合:(a) 常规组合,和 (b) lite 组合。

前者只是将两个卷积连接起来。 上图所示的 lite 组合使用微分解深度卷积来扩展通道数量,通过为每个通道应用多个空间滤波器。 然后应用一组自适应卷积来融合和压缩通道数。 与其常规组合方式相比,它通过节省通道融合(pointwise)计算在学习空间过滤器(depthwise)上花费更多资源,经验证明这对于实现较低的网络层更有效。
Dynamic Shift-Max
考虑到Micro-Factorized pointwise 卷积更注重组内的连接,因此提出Dynamic Shift-Max,这是一种新的动态非线性,用于加强由Micro-Factorized创建的组之间的联系。
Dynamic Shift-Max 输出 K 个融合的最大值,每个融合组合多个 (J) 组位移为

其中J表示组数,i表示通道数,K表示融合后的输出数量。当J=K=2时,可以在准确率和复杂度之间取得较好的折衷。
这个公式用一句话来解释就是,每J个组,对每组的x进行加权求和,共K个融合,然后取K个中的最大值作为第i个通道上的激活函数值。
这样,DY-Shift-Max 实现了两种形式的非线性: (a) 输出 J 组的 K 个融合的最大值,以及 (b) 通过动态参数。
第一个非线性是对 Micro-Factorized pointwise 卷积的补充,它侧重于每个组内的连接,加强组之间的连接。第二个使网络能够根据输入 x 调整这种强化。这两个操作增加了网络的表示能力,补偿了减少层数所带来的损失。
MicroNet


Conclusion

在 12M FLOPs 的约束下,MicroNet 在 ImageNet 分类上达到了 59.4% 的 top-1 准确率,比 MobileNetV3 高 9.6%。

对 ImageNet 分类的评估。左:top-1 准确率与 FLOPs。右图:top-1 准确率与延迟。注意添加了 Mo bileNetV3 ×0.75 以方便比较。MicroNet 优于 MobileNetV3,尤其是在计算成本极低的情况下(当 FLOPs 小于 15M 或延迟小于 9ms 时,top-1 精度提高 5% 以上)。

动态 Shift-Max 与 ImageNet 上的其他激活函数的比较。
本文来源于公众号 CV技术指南 的论文分享系列。
欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。
在公众号中回复关键字 “技术总结”可获取公众号原创技术总结文章的汇总pdf。

其它文章
CVPR2021 | 重新思考BatchNorm中的Batch
ICCV2021 | 重新思考视觉transformers的空间维度
CVPR2021 | Transformer用于End-to-End视频实例分割
ICCV2021 |(腾讯优图)重新思考人群中的计数和定位:一个纯粹基于点的框架
经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷
在做算法工程师的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?
ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别
ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别的更多相关文章
- 一次接口压力测试qps极低原因分析及解决过程
一次接口压力测试qps极低原因分析及解决过程 9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间 ...
- 功耗极低非接触 13.56mhz读卡芯片:SI522
众所周知13.56mhz是高频,一般用于防伪,做到成品非常薄.在智能门锁以及RFID读卡器是非常多人采用的,不管是在读卡距离.读卡灵敏度都是非常好的.现在智能门锁的竞争性很大,大多厂商及方案商都慢慢往 ...
- EasyPlayer-RTSP-Android安卓播放器播放RTSP延迟优化策略,极低延时!
EasyPlayer-RTSP-Android安卓RTSP播放器低延迟播放延时优化策略 EasyPlayer-RTSP-Android播放器是一款专门针对RTSP协议进行过优化的流媒体播放器,其中我们 ...
- 数据库调优过程(一):SqlServer批量复制(bcp)[C#SqlBulkCopy]性能极低问题
背景 最近一段给xx做项目,这边最头疼的事情就是数据库入库瓶颈问题. 环境 服务器环境:虚拟机,分配32CPU,磁盘1.4T,4T,5T,6T几台服务器不等同(转速都是7200r),内存64G. 排查 ...
- 如何提高阿里云cdn命中率?原命中率极低。
博客搬迁了,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/08/29/%E5%A6%82%E4%BD%95%E6%8F%90%E9%AB%98%E9 ...
- ICCV2021 | Vision Transformer中相对位置编码的反思与改进
前言 在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至仍然存在争议,本文分析了相对位置编码中的几个关键因素,提出了一种新的针对2D图像的相对位置编码方法,称为图像RPE(IRPE). ...
- ICCV2021 | SOTR:使用transformer分割物体
前言 本文介绍了现有实例分割方法的一些缺陷,以及transformer用于实例分割的困难,提出了一个基于transformer的高质量实例分割模型SOTR. 经实验表明,SOTR不仅为实例分割提供了 ...
- ICCV2021 | Swin Transformer: 使用移位窗口的分层视觉Transformer
前言 本文解读的论文是ICCV2021中的最佳论文,在短短几个月内,google scholar上有388引用次数,github上有6.1k star. 本文来自公众号CV技术指南的论文分享系 ...
- ICCV2021 | 渐进采样式Vision Transformer
前言 ViT通过简单地将图像分割成固定长度的tokens,并使用transformer来学习这些tokens之间的关系.tokens化可能会破坏对象结构,将网格分配给背景等不感兴趣的区域,并引 ...
随机推荐
- 大数据学习(24)—— Spark入门
在学Spark之前,我们再回顾一下MapReduce的知识,这对我们理解Spark大有裨益. 在大数据的技术分层中,Spark和MapReduce同为计算层的批处理技术,但是Spark比MapRedu ...
- RHCE_DAY03
shell函数 在shell环境中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数(给一堆命令取一个别名) 函数可以使脚本中的代码更加简洁,增强易读性,提高脚本的执行效率 #函数定义格式1 ...
- Windows根据端口号查找对应的进程和服务
需求 1,我们在Win10安装一些Web服务时,会发现默认端口被占用,比如443端口被占用,808端口被占用,那么如何找出占用这些默认端口的进程和对应的服务呢? 2,系统安装完成后,会有一些应用对外开 ...
- MySQL 不完全入门指南
由于 MySQL 的整个体系太过于庞大,文章的篇幅有限,不能够完全的覆盖所有的方面.所以我会尽可能的从更加贴进我们日常使用的方式来进行解释. 小白眼中的 MySQL 首先,对于我们来说,MySQL 是 ...
- 微信SDK的使用
一.导入依赖 <!--微信支付--> <dependency> <groupId>com.github.wxpay</groupId> <arti ...
- Sqli-Labs less32-37
Less-32 前置基础知识:宽字节注入 参考链接: https://blog.csdn.net/helloc0de/article/details/76180190 https://blog.csd ...
- protocol buffer的高效编码方式
目录 简介 定义一个简单的message Base 128 Varints 消息体的结构 符号整数 字符串 嵌套的消息 总结 简介 protocol buffer这种优秀的编码方式,究竟底层是怎么工作 ...
- 简单实现Linux服务器重启后自动启动Tomcat以及MongoDB
1.场景描述 做一个网站差不多都会用到tomcat,用阿里云镜像市场提供的镜像里的tomcat是方便的,但是自己喜欢折腾,所以就自己在服务器里装了一个tomcat 但是有一次服务器被关了,然后自己要到 ...
- Wpf程序显示在任务栏
后台代码如下: using System; using System.Collections.Generic; using System.Drawing; using System.IO; using ...
- Failed to start LSB: Bring up/down错误解决方法
很多朋友在使用centos7系统时,有时候需要分配多个IP地址,这就涉及到修改网卡配置,但是在修改完网卡配置时,重启网络服务时会出现"Failed to start LSB: Bring u ...