为什么MobileNet及其变体(比如ShuffleNet)会怎么快呢?

2024-06-21 09:32

本文主要是介绍为什么MobileNet及其变体(比如ShuffleNet)会怎么快呢?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Yusuke Uchida

编译:ronghuaiyang

导读

MobileNet的特点就是非常的快,而且精度损失很小,这里面的原因是什么呢,这篇文章给大家解密。

介绍

在本文中,我将概述在诸如MobileNet及其变体等高效的CNN模型中使用的构建块,并解释一下为什么它们为何如此高效。特别地,我直观的说明了关于空间和通道卷积是如何完成。

高效模型中的构建块

在解释特定的高效CNN模型之前,让我们先检查一下高效CNN模型中使用的构建块的计算成本,看看如何在空间和通道域中执行卷积。

640?wx_fmt=png

让HxW表示输出特征图的空间尺寸,N表示输入通道的数量,KxK表示卷积核的大小,M表示输出通道的数量,计算标准卷积的成本为HWNK²M。

很重要的一点是,和标准卷积的计算成本成正比的有(1)输出特征图的空间尺寸HxW、(2)卷积核的大小K²、(3)输入和输出通道的数量NxM。

在空间域和通道域同时进行卷积时,需要上述计算量。CNNs可以通过分解这个卷积来加速,如下面的图所示。

卷积

首先,我提供了一个直观的例子,关于标准卷积在空间和通道域是怎么做的,其计算成本HWNK²M。

我将输入和输出之间的线连接起来,以可视化输入和输出之间的依赖关系。行数大致分别表示卷积在空间域和通道域的计算成本。

640?wx_fmt=png

例如,conv3x3,最常用的卷积,可以可视化,如上图。我们可以看到输入和输出在空间域上是局部连接的,而在通道域上是全连接的。

640?wx_fmt=png

接下来,conv1x1,又叫做逐点卷积,或用于改变通道的数量,可视化如上图。这个卷积的计算量是HWNM,因为核的大小是1x1,与conv3x3相比,计算量减少了1/9。这个卷积用于在通道之间“混合”信息。

分组卷积

分组卷积是卷积的一种变体,其中对输入特征图的通道进行分组,并对每个分组的通道独立执行卷积。

让G表示数量的组,分组卷积的计算成本HWNK²M / G,计算量想不标准的卷积降低为1 / G。

640?wx_fmt=png

对conv3x3进行分组,G=2。上图我们可以看到,通道域中的连接数比标准卷积小,这表明计算量更小。

640?wx_fmt=png

上图的这种情况,conv3x3,分组G=3,连接变得更加稀疏。

640?wx_fmt=png

上图的这种情况,conv1x1,分组G=2,因此,conv1x1也可以分组。这种卷积在ShuffleNet中使用。。

640?wx_fmt=png

上图的这种情况,conv1x1,分组G=3

深度卷积

在深度卷积中,卷积是对每个输入通道独立执行的。它也可以定义为分组卷积的一种特殊情况,其中输入和输出通道的数量相同,G等于通道的数量。

640?wx_fmt=png

如上所示,深度卷积通去掉了在通道域上的卷积,显著降低了计算成本。

通道洗牌

通道洗牌是一种操作(层),它改变了在ShuffleNet中使用的通道的顺序。这个操作是通过张量的变形和转置来实现的。

更精确地说,让GN ' (=N)表示输入通道的数量,首先将输入通道维数重新构造为(G, N '),然后将(G, N ')转置为(N ', G),最后将其压平为与输入相同的形状。这里G表示分组卷积的组数,在ShuffleNet中与通道洗牌层一起使用。

虽然通道洗牌的计算量不能根据multiply-add操作(MACs)的数量来定义,但是应该有一些开销。

640?wx_fmt=png

通道洗牌的情况下,G=2。不执行卷积,只是改变通道的顺序。

640?wx_fmt=png

通道洗牌的情况下,G=3。

高效模型

在下面的文章中,我将为高效CNN模型提供直观的说明,说明为什么它们是高效的,以及如何在空间和通道域进行卷积。

ResNet (Bottleneck Version)

ResNet中使用的带有bottleneck结构的残差单元是与其他模型进行进一步比较的良好起点。

640?wx_fmt=png

如上图所示,由conv1x1、conv3x3和conv1x1组成具有bottleneck 结构的残差单元。第一个conv1x1降低了输入通道的维数,降低了后续相对昂贵的conv3x3的计算成本。最后一个conv1x1恢复输出通道的维数。

ResNeXt

ResNeXt是一个高效的CNN模型,它可以看作是ResNet的一个特例,其中conv3x3被分组conv3x3所替代。通过使用有效的分组卷积,,conv1x1中的通道压缩率与ResNet相比变得温和,从而在相同的计算成本下提高了精度。

640?wx_fmt=png

MobileNet (可分离卷积)

MobileNet是由深度卷积和conv1x1(逐点卷积)组成的可分离卷积模块的堆叠。

640?wx_fmt=png

可分离卷积在空间和通道域中独立地执行卷积。这种分解的卷积显著降低了计算成本,从HWNK²M降到了HWNK²(depthwise)+ HWNM (conv1x1),总共是HWN (K²+ M)。一般来说,M > > K²(例如K = 3 M≥32),计算量大约是原来的1/8-1/9。

这里重要的一点是,计算量的瓶颈现在是conv1x1!

ShuffleNet

ShuffleNet的动机是,如上所述,conv1x1是可分离conv的瓶颈。虽然conv1x1已经是很高效的了,而且似乎没有改进的空间,但分组conv1x1可以用来减少计算量。

640?wx_fmt=png

上图演示了ShuffleNet的模块。这里的一个重要构建块是通道洗牌层,它以分组卷积的方式“洗牌”组间通道的顺序。在没有通道洗牌的情况下,分组卷积的输出永远不会利用组之间的信息,从而导致精度下降。

MobileNet-v2

MobileNet-v2采用了与ResNet的bottleneck结构类似的残差单元模块结构,修改后的残差单元将conv3x3替换为了深度卷积。

640?wx_fmt=png

从上面可以看出,与标准bottleneck架构相反,第一个conv1x1增加了通道维度,然后执行深度conv,最后一个conv1x1减少了通道维度。

640?wx_fmt=png

通过像上面那样重新排序构建块,并将其与MobileNet-v1(可分离conv)进行比较,我们可以看到这个架构是如何工作的(这种重新排序不会改变整个模型架构,因为MobileNet-v2是这个模块的堆叠)。

也就是说,上面的模块是可分离conv的一个改进版本,其中可分离conv中的单个conv1x1被分解成两个conv1x1。T表示通道尺寸的膨胀系数,计算两个conv1x1的成本是2HWN²/T,而在可分离卷积中的conv1x1的计算量是HWN²。在论文中,使用T = 6,将conv1x1的计算成本降低了3倍(一般为T/2)。

FD-MobileNet

最后,介绍一下快速下采样MobileNet (FD-MobileNet)。在该模型中,与MobileNet相比,下采样是在较早的层中进行的。这个简单的技巧可以减少总计算成本。其原因在于传统的下采样策略和可分离卷积的计算成本。

从VGGNet开始,许多模型采用相同的下采样策略:执行下采样,然后将后续层的通道数加倍。标准卷积的计算成本在采样后不会改变,因为它被定义为HWNK²M。而对于可分离卷积,下采样后计算量变小,从HWN(K²+M)减少为H/2 W/2 2N(K²+2M)= HWN (K²/2+M)。当M不是特别大的时候这是相对可观的(在早期的层中)。

我用下面的速查表来结束这篇文章,谢谢:P

640?wx_fmt=png

640?wx_fmt=png— END—

英文原文:https://medium.com/@yu4u/why-mobilenet-and-its-variants-e-g-shufflenet-are-fast-1c7048b9618d

640?wx_fmt=jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧640?wx_fmt=gif

这篇关于为什么MobileNet及其变体(比如ShuffleNet)会怎么快呢?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080848

相关文章

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

禁止复制的网页怎么复制

禁止复制的网页怎么复制 文章目录 禁止复制的网页怎么复制前言准备工作操作步骤一、在浏览器菜单中找到“开发者工具”二、点击“检查元素(inspect element)”按钮三、在网页中选取需要的片段,锁定对应的元素四、复制被选中的元素五、粘贴到记事本,以`.html`为后缀命名六、打开`xxx.html`,优雅地复制 前言 在浏览网页的时候,有的网页内容无法复制。比如「360