关注公众号,发现CV技术之美

 写在前面

本文旨在以极低的计算成本解决性能大幅下降的问题。作者发现有两个因素是可以有效提高精度的,分别是:稀疏连通性和动态激活函数。前者避免了网络宽度的大幅度缩减的危害,而后者则减轻了网络深度缩减的危害。

技术上,作者提出了微分解卷积(micro-factorized convolution),它将卷积矩阵分解成低秩矩阵,以将稀疏连通性整合到卷积中。此外,作者还提出了一个新的动态激活函数,称为Dynamic Shift Max,通过最大化输入特征图和圆形通道位移之间的多次动态融合来提高非线性。

基于这两个操作,作者提出一个新的网络系列:MicroNet,在低FLOP状态下,它取得了显著的性能提高。例如,在12M FLOPs的约束下,MicroNet在ImageNet分类上达到了59.4%的Top-1准确率,比MobileNetV3高出9.6%。

 1. 论文和代码地址

MicroNet: Improving Image Recognition with Extremely Low FLOPs

论文:https://arxiv.org/abs/2108.05894
代码:https://github.com/liyunsheng13/micronet

 2. Motivation

高效CNN架构的最新工作成功地将ImageNet分类的计算成本从3.8GFLOPs(ResNet-50)降低了两个数量级到约40M FLOPs,并且性能的下降在一个可接受的范围内。

然而,当进一步降低计算成本时,它们的性能会显著下降。例如,当计算成本从44M下降到21M和12M MAdds时,MobileNetV3的Top-1精度分别从65.4%显著下降到58.0%和49.8%。在本文中,作者的目标是在极低的FLOP下(从21M到4M MAdds)提高精度。

处理极低的计算成本(4-21M FLOPs)的问题非常具有挑战性,因为2.7M MAdds已经被一个stem层消耗。剩余的计算资源太有限了,因此设计卷积层和有效分类所需的1000个类分类器是非常困难的。通过减少有效的宽度或深度的策略,MobileNet和ShuffleNet等轻量级网络结构会有严重的性能下降(如上图所示)。

在本文中,作者从两个角度来处理极低的flop:节点的连通性和非线性(分别与网络的宽度和深度有关)。首先,作者证明了在给定的计算预算的情况下,降低节点连通性以扩大网络宽度为提供了一个很好的权衡 。

其次,作者依赖于改进的层非线性来弥补减少的网络深度,这决定了整个网络的非线性 。这两个因素激发了更有效卷积和激活函数的设计。

关于卷积,作者提出了一种微分解卷积(MF-Conv)来将Pointwise卷积分解成两组卷积层。其中,组数G适应于通道C的数量为:

R是通道减少率。在给定的计算成本下,这个等式在通道数和节点连接性之间实现了很好的权衡。数学上,Pointwise卷积矩阵由一个块矩阵(G×G块)近似,其块的rank为1。这保证了最小的路径冗余和最大的输入覆盖率 ,从而使网络能够为给定的计算预算实现更多的通道。

关于非线性,作者提出了一种新的激活函数(Dynamic Shift-Max ,DY-Shift-Max),用于非线性地将通道与动态系数融合。新的激活函数迫使网络学习融合输入特征图的不同圆形通道移动(使用适应输入的系数),并在这些融合中选择最好的,结果表明,这可以在计算成本较小的情况下增强了group分解的表示能力。

基于两个新的提出的运算符(MF-Conv和DYShift-Max),作者得到了一组新的模型MicroNet。从上图可以看出,在很少的计算量下,MicroNet远远超过其他轻量级网络的性能。12M和21M FLOPs的MicroNet模型在Top-1精度方面分别比MobileNetV3高出9.6%和4.5%。

尽管MicroNet是为了减少FLOPs手动设计的,但它在边缘设备上进行快速推理的性能依然优于MobileNetV3。此外,MicroNet在目标检测和关键点检测方面超过了MobileNetV3,但使用了更少计算量。

 3. 方法

3.1. Micro-Factorized Convolution

微分解卷积(Micro-Factorized convolution)的目标是优化通道数和节点连接之间的trade-off。层的连通性E定义为每个输出节点的路径数,其中每条路径连接一个输入节点和一个输出节点。

3.1.1. Micro-Factorized Pointwise Convolution

首先,作者提出使用组自适应卷积来分解一个Pointwise卷积。为了简洁起见,这里假设卷积核W具有相同数量的输入和输出通道,并忽略了bias。核矩阵W被分解为两个组自适应卷积,其中组的数量G取决于通道的数量C:

其中W是一个C×C矩阵;Q是一个C×C/R矩阵,它将通道数压缩一个R倍;P是一个C×C/R矩阵,它将通道数扩展回C。P和Q是带有G块的对角块矩阵,每个矩阵都实现了组卷积实现。Φ是一个C/R×C/R的排列矩阵。分解层的计算复杂度为,过程如下图所示:

矩阵Φ的C/R通道表示为隐藏通道,分组结构限制了这些通道的数量。具体来说,每个隐藏通道连接到C/G个输入通道,每个输出通道连接到C/(RG)隐藏通道。每个输出通道的输入-输出连接数表示该层的连接E。

当计算预算和压缩因子R固定时,通道C和连通数E随G变化:

如下图所示:

随着G组数量的增加,C增加,而E减少。这两条曲线相交(C=E)时,满足:

在这种情况下,每个输出通道只连接到所有输入通道一次(E=C)。这保证了任何输入输出对之间不存在冗余路径(最小路径冗余度),同时保证了每对输入输出之间都存在一条路径(最大输入覆盖范围)。

这意味着组G的数量不是固定的,而是由通道数量C和压缩因子R定义,根据平方根定律,最优地平衡了通道数量C和输入/输出连通性。数学上,得到的卷积矩阵W分解为G×G个秩为1的block。

3.1.2. Micro-Factorized Depthwise Convolution

上图展示了如何将微分解应用于k×k深度卷积:卷积核被分解成k×1和1×k核。这样一来复杂度就从变成了

3.1.3. Combining Micro-Factorized Pointwise and Depthwise Convolutions

微分解的Pointwise 和Depthwise 卷积可以用两种不同的方式组合:常规组合和精简组合。

前者只是将这两个卷积连接起来。后者如下图所示,使用微分解的Depthwise 卷积,通过对每个通道应用多个空间滤波器来扩展通道的数量。然后,应用一个组自适应卷积来融合和压缩通道的数量。

与常规组合相比,它通过节省通道融合(Pointwise )计算,花费了更多的资源在学习空间滤波器上(Depthwise),实验证明,这对实现较低FLOPs的网络层是更有效的。

3.2. Dynamic Shift-Max

到目前为止,作者已经讨论了高效静态网络的设计,但是它们不会根据输入而改变它们的权重。然后,作者引入了一种新的动态非线性函数:动态Shift-Max(DY-ShiftMax),加强了由微分解创建的组之间的连接。这是一种对微分解pointwise卷积的补充,因为微分解pointwise卷积更加关注组内的交互。

设,,表示具有C通道的输入向量,C通道分为G组,每组C/G个通道。x的第j组

circular shift可以被表示为:

动态Shift-Max的输出为K个融合的最大值,其中第J组位移如下:

其中,、是一个取决于输入x的动态权重。它由平均池化,两个完全连接的层和一个Sigmoid层得到(类似SENet)。

这样,DY-Shift-Max就实现了两种形式的非线性:1)输出J组的K个融合的最大值;2)通过一个动态参数、来加权每个融合。

第一个非线性是对侧重于每一组内的连通性的微分解pointwise卷积的补充,从而加强了每一组之间的连接 。第二个非线性使网络能够根据输入x来调整这种增强功能 。这两种操作增加了网络的表示能力,弥补了减少的层数所固有的损失。

3.3.  MicroNet

接下来,作者基于上面提出的两个模块,设计了MicroNet

3.3.1.  Micro-Blocks

MicroNet模型由上图中的三个Micro-Blocks组成,它们以不同的方式结合了微分解的Pointwise和Depthwise卷积。

Micro-Block-A

Micro-Block-A如上图(a)所示使用微分解的pointwise和depthwise卷积的精简组合。通过微分解的depthwise卷积扩展了通道的数量,并通过组自适应卷积压缩它们。

Micro-Block-B

Micro-Block-B如上图(b)所示,用于连接Micro-Block-A和Micro-Block-C,它既压缩又扩展了通道的数量。

Micro-Block-C

Micro-Block-C如上图(c)所示,实现了微分解的pointwise卷积和depthwise卷积的常规组合。它最适合于更高的网络层,因为它比精简组合为通道融合分配更多的计算。

3.3.2. Architectures

上表展示了不同参数和计算量的MicroNet实例化结构。

 4.实验

4.1. ImageNet Classification

4.1.1.  Ablation Studies

From MobileNet to MicroNet

上表展示了从MobileNet到MicroNet的改变过程,表明Micro-Factorized卷积和Dynamic Shift-Max都是在计算成本极低的情况下实现网络的有效和互补的机制。

Number of Groups G

上表展示了固定组和自适应组的对比,表明组自适应卷积获得了更高的精度,证明了其在输入/输出连接性和通道数之间的最优权衡的重要性。

上表进一步证实了这一点,它比较了自适应组数量的不同选项。 可以看出,λ = 1是的performance最好。

Lite combination

上表展示了使用微分解pointwise和depthwise卷积的精简组合进行比较。可以看出,精简组合对低层更有效。

Activation functions

上表展示了Dynamic Shift-Max与以前的三个激活函数进行比较。可以看出,Dynamic Shift-Max在性能上有绝对优势。

Location of DY-Shift-Max

上表展示了不同位置的DY-Shift-Max的精度。可以看出,在所有结构中都使用DY-Shift-Max时,精度最高。

Hyper-parameters in DY-Shift-Max:

上表展示了不同超参J和K的结果。

4.1.2. Comparison to Prior Networks

上表展示了不同小型网络在ImageNet上结果,可以看出MicroNet在小于24M FLOPs的计算量下,实现了SOTA性能。

4.1.3. Inference Latency

上表展示了不同Inference Latency和FLOPs下的精度变化。

4.2. Object Detection

可以看出,在目标检测任务上,用更低的FLOPs,MicroNet-M3实现更高的mAP。

4.3. Human Pose Estimation

作者也测试了MicroNet的COCO单人关键点检测,可以看出,MicroNet-M2为更低的复杂度下实现了一个很好的trade-off。

 5. 总结

在本文中,作者提出了MicroNet来处理极低计算成本下的网络性能。它建立在两个提出的算子的基础上:Micro-Factorized convolution和Dynamic Shift-Max。前者通过在pointwise和depthwise卷积上的低秩近似来实现通道数和输入/输出连接之间的平衡。

后者动态地融合了连续的通道组,增强了节点的连接性和非线性,以弥补深度的减少。在极低的FLOPs条件下,一个MicroNet对三个CV任务(图像分类、目标检测和人体姿态估计)都实现了明显的改进。

▊ 作者简介

厦门大学人工智能系20级硕士

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END,入群????备注:轻量网络

MicroNets:更小更快更好的MicroNet,三大CV任务都秒杀MobileNetV3相关推荐

  1. EfficientNetV2震撼发布!87.3%准确率!模型更小,训练更快!谷歌大脑新作

    EfficientNetV2: Smaller Models and Faster Training paper: https://arxiv.org/abs/2104.00298 code(官方TF ...

  2. 苹果公司提出Mobile-ViT | 更小更轻精度更高,MobileNets或成为历史

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 MobileviT是一个用于移动设备的轻量级通用可视化Tran ...

  3. [Android 之美] 那些你不知道的APK 瘦身,让你的APK更小

    [Android 之美] APK 瘦身,减少APK的大小 让我们的apk文件尽可能更小,移除那些未使用的代码和资源文件.本章节介绍了如何做到让APK更小,性能更好,下载转化率会更高,以及如何指定在构建 ...

  4. 金升阳 | 更轻更小的R3系列金属导轨电源 ——LI75/120-23BxxR3

    金升阳通过技术方案革新.技术平台升级,推出了性价比更高.体积更小.功能更完善的升级版R3金属导轨电源LI75/120-23BxxR3.该系列满足UL61010认证要求,实现关键物料国产化,支持305V ...

  5. 网络规模更小、速度更快,这是谷歌提出的MorphNet

    https://www.toutiao.com/a6681118353416782349/ 2019-04-18 14:31:26 一直以来,深度神经网络在图像分类.文本识别等实际问题中发挥重要的作用 ...

  6. 大疆口袋相机美颜怎么设置_大疆口袋云台相机升级,DJI Pocket 2更大、画质更佳,角度更广,配件更足...

    我们是大疆口袋灵眸Osmo Pocket云台相机一代的忠实粉丝,我给这个产品的定义是: 喜欢旅行中轻视频.延时摄影用户的最佳选择. 自从2018年底接触到这个产品后,喜欢旅行的我们在外出旅行中总是带着 ...

  7. u3d 总是背向相机_大疆口袋云台相机升级,DJI Pocket 2更大、画质更佳,角度更广,配件更足...

    我们是大疆口袋灵眸Osmo Pocket云台相机一代的忠实粉丝,我给这个产品的定义是: 喜欢旅行中轻视频.延时摄影用户的最佳选择. 自从2018年底接触到这个产品后,喜欢旅行的我们在外出旅行中总是带着 ...

  8. 小、快、灵:康宁称雄光通信市场的秘诀

    从20世纪80年代携电视技术和消费产品进入中国市场到现在,康宁已经在中国发展了35年,正值最好的"青壮年时期".对于康宁公司来说,中国是其具有战略意义的市场之一,同时也是除北美之外 ...

  9. 使用Python,dlib中新型、更快、更小的5点面部标志检测器检测人脸、眼睛、鼻子

    这篇博客将介绍一个新的dlib面部标志检测器--5点人脸标志模型,它比原始版本更快(提高了8-10%),效率更高,模型更小(降低了10倍). 该5点面部标志检测器被认为是最初随dlib库一起分发的68 ...

最新文章

  1. Cisco路由器的口令恢復
  2. python爬携程_python爬虫-携程-eleven参数
  3. 英伟达官方免费课程!学用皮克斯USD框架,在主流3D仿真和协同应用中大显身手!...
  4. 德云斗笑社何九华为什么没参加_狗狗的身体卡在了门上,女主人低头一看忍不住笑了:这是膨胀了...
  5. mysql ,show slave status详解
  6. 局域网监控软件是企业数据安全的最强护盾
  7. Windows下安装Ruby及配置镜像源
  8. 5款App帮你创建时间轴
  9. [FAQ06649] Latin输入法怎么默认勾选几种语言?
  10. 默安科技关键信息基础设施安全防护论文入选中文核心期刊
  11. python中斜杠_Python中的正斜杠/与反斜杠\
  12. c语言 教学目标,c语言选择结构程序设计教学目标
  13. docker exec -it container1 /bin/bash 异常
  14. FPGA学习笔记_ROM核调用与调试
  15. google gms安装
  16. ubuntu python opencv 实用小技巧小结
  17. 无法连接到internet 小黄叹号长时间不消失的问题
  18. 基于envoy的分布式网关-contour
  19. 磨砂玻璃效果的Tab栏
  20. mathcad入门一

热门文章

  1. Java实现词频统计(Wordcount)-Map或Hashtable的value排序
  2. Java操作数据库详解
  3. Virtual.Lab模拟钢板冲击声
  4. Markdown--绘制流程图(flowchart)
  5. 林达华:Computer Vision的尴尬
  6. 用CImage类来显示PNG JPG等图片
  7. spfa(STL写法)简单讲解+最短路(spfa)例题 acm寒假集训日记22/1/7
  8. php tp框架选择题,thinkPHP框架单元测试库tpunit用法示例
  9. mysql 设置时区_MySQL实战干货 | 如何处理由时区设置引发的 SQL 执行“卡顿”?...
  10. 全选文字的快捷键_如果我是一个快捷键,我希望是?为什么?