ShuffleNet翻译

对照英文原文阅读
Abstract
我们介绍了一种名为ShuffleNet的极具计算效率的CNN架构,该架构专为计算能力非常有限(例如10-150 MFLOP)的移动设备而设计。 新的体系结构利用了两个新的操作,逐点组卷积和通道转换,可以在保持精度的同时大大降低计算成本。 ImageNet分类和MS COCO对象检测的实验证明了ShuffleNet优于其他结构的性能,例如 在40个MFLOP的计算预算下,比最近的MobileNet [12]在ImageNet分类任务上的top-1错误要低(绝对7.8%)。 在基于ARM的移动设备上,Shuf fl eNet的实际速度是AlexNet的13倍,同时保持了相当的精度。
.Introduction
建立更深,更大的卷积神经网络(CNN)是解决主要视觉识别任务的主要趋势[21,9,33,5,28,24]。 最精确的CNN通常具有数百个层和数千个通道[9、34、32、40],因此需要数十亿个FLOP进行计算。 本报告探讨了相反的极端情况:在非常有限的计算预算中以数十或数百个MFLOP追求最佳精度,重点是无人机,机器人和智能手机等常见的移动平台。 请注意,许多现有的工作[16,22,43,42,38,27]专注于修剪,压缩或低位表示“基本”网络体系结构。 在这里,我们旨在探索专为我们所需的计算范围而设计的高效基础架构。
我们注意到,由于代价高昂的密集1×1卷积,诸如Xception [3]和ResNeXt [40]等最先进的体系在效率极低的网络中效率降低。 我们建议使用点群卷积来降低1×1卷积的计算复杂度。 为了克服组卷积带来的副作用,我们提出了一种新颖的通道转换操作,以帮助跨功能通道获取信息。 基于这两种技术,我们构建了一个称为Shuf fl eNet的高效架构。 与流行的结构[30,9,40]相比,对于给定的计算复杂性预算,我们的Shuf fl eNet允许更多的特征映射通道,这有助于编码更多的信息,并且对于超小型网络的性能尤为关键。
我们评估具有挑战性的ImageNet分类[4,29]和MS COCO对象检测[23]任务的模型。 一系列受控实验表明,我们的设计原则是有效的,其性能优于其他结构。 与最先进的体系结构MobileNet [12]相比,ShufNeteNet具有显着的优势,例如可实现更高的性能。 在40个MFLOP级别上,ImageNet top-1错误绝对降低了7.8%。
我们还检查了实际硬件(即基于ARM的现成计算核心)上的加速情况。 Shuf fl eNet模型与AlexNet [21]相比,达到了13倍的实际提速(理论提速为18倍),同时保持了相当的精度。
.Related Work
有效的模型设计最近几年,深层神经网络在计算机视觉任务中取得了成功[21,36,28],其中模型设计起着重要的作用。在嵌入式设备上运行高质量深度神经网络的需求不断增长,这鼓励了对有效模型设计的研究[8]。例如,与简单堆叠卷积层相比,GoogLeNet [33]以较低的复杂性增加了网络的深度。 SqueezeNet [14]在保持精度的同时显着减少了参数和计算量。 ResNet [9,10]利用有效的瓶颈结构来实现令人印象深刻的性能。 SENet [13]引入了一种架构单元,它以较低的计算成本提高了性能。与我们同时,最近的一项工作[46]运用强化学习和模型搜索来探索有效的模型设计。拟议的移动NASNet模型可实现与我们的Shuf fl eNet模型相当的性能(ImageNet分类误差为26.0%@ 564 MFLOP,而26.3%@ 524 MFLOP)。但是[46]并没有报告极小的模型的结果(例如,复杂度小于150 MFLOP),也没有评估移动设备上的实际推理时间。
分组卷积分组卷积的概念最早出现在AlexNet [21]中,用于在两个GPU上分配模型,已在ResNeXt [40]中得到了充分证明。 Xception [3]中提出的深度可分离卷积概括了Inception系列[34,32]中可分离卷积的思想。 最近,MobileNet [12]利用深度可分离卷积并获得了轻量模型中的最新结果。 我们的工作以一种新颖的形式概括了群卷积和深度可分离卷积。
通道切换操作据我们所知,在以前的高效模型设计中很少提及通道切换操作的想法,尽管CNN库cuda-convnet [20]支持“随机稀疏卷积”层,等效于随机通道切换后跟组卷积层 。 这种“随机关闭”操作具有不同的目的,并且很少被后来利用。 最近,另一项并行工作[41]也采用了这种思想进行两阶段卷积。 但是,[41]并未专门研究通道shuf fl e本身的有效性及其在微型模型设计中的用法。
ModelAcceleration该方向旨在加快推理速度,同时保持预训练模型的准确性。 修剪网络连接[6、7]或通道[38]可在保持性能的同时减少预训练模型中的冗余连接。 在文献中提出了量化[31、27、39、45、44]和因式分解[22、16、18、37],以减少计算中的冗余以加速推理。 在不修改参数的情况下,通过FFT [25,35]和其他方法[2]实现的优化卷积算法可减少实践中的时间消耗。 提炼[11]将知识从大型模型转移到小型模型,这使得对小型模型的训练更加容易。
Approach
Channel Shuffle for Group Convolutions
现代卷积神经网络[30、33、34、32、9、10]通常由具有相同结构的重复构建块组成。 其中,诸如Xception [3]和ResNeXt [40]之类的最新网络将有效的深度可分离卷积或组卷积引入到构建块中,从而在表示能力和计算成本之间取得了很好的折衷。 但是,我们注意到,两种设计都没有完全考虑1×1卷积(在[12]中也称为点状卷积),这需要相当大的复杂性。 例如,在ResNeXt [40]中,只有3×3层配备了组卷积。 结果,对于ResNeX中的每个残差单元,点式卷积占用93.4%的乘法加法(基数= 32 [40]中建议)。 在小型网络中,昂贵的逐点卷积会导致有限数量的通道限制复杂性约束,这可能会严重损害准确性。
为了解决该问题,一种直接的解决方案是在1×1层上应用通道稀疏连接,例如组卷积。 通过确保每个卷积仅在相应的输入通道组上运行,组卷积显着降低了计算成本。 但是,如果多个组卷积堆叠在一起,则会产生副作用:某个通道的输出仅来自输入通道的一小部分。 图1(a)说明了两个堆叠的组卷积层的情况。 显然,某个组的输出仅与该组内的输入有关。 此属性会阻止通道组之间的信息流并削弱表示。
如果我们允许组卷积从不同组中获取输入数据(如图1(b)所示),则输入和输出通道将完全相关。 具体来说,对于从上一个组层生成的特征图,我们可以首先将每个组中的通道划分为几个子组,然后将下一层中的每个组提供给不同的子组。 这可以通过通道舒夫夫操作有效而优雅地实现(图1(c)):假设一个具有g个组的卷积层,其输出具有g×n个通道。 我们首先将输出通道的尺寸调整为(g,n),进行转置,然后将其平化为下一层的输入。 请注意,即使两个卷积具有不同数量的组,该操作仍然会生效。 此外,通道切换也是可区分的,这意味着可以嵌入到网络结构中进行端到端训练。
通道转换操作可以构建具有多个组卷积层的更强大的结构。 在下一个小节中,我们将介绍一个具有信道shuf fl e和群卷积的有效网络单元。
ShuffleNet Unit
利用信道关闭功能,我们建议专门为小型网络设计的anoShuf fl eNet单元。我们从图2(a)中的瓶颈单元[9]的设计原理开始。这是一个剩余的块。在其剩余分支中,对于3×3层,我们在瓶颈特征图上应用了经济的3×3深度卷积计算方法[3]。然后,我们将第一个1×1层替换为逐点组卷积,然后进行信道shuf fl e操作,以形成Shuf fl eNet单元,如图2(b)所示。第二次点群卷积的目的是恢复通道尺寸以匹配快捷路径。为简单起见,在第二点逐层比较可比分数后,我们不进行额外的通道调整操作。批量归一化(BN)[15]和非线性的用法与[9,40]相似,不同之处在于我们在[3]提出的深度卷积之后不使用ReLU。至于Shuf fl eNet跨步应用的情况,我们只需进行两个修改(见图2(c)):(i)在快捷路径上添加3×3平均池; (ii)用通道级联替换逐元素加法,这使得扩展通道尺寸变得容易,而额外的计算成本却很少。
多亏了带有通道shuf pointe的逐点群卷积,Shuf fl eNet单元中的所有分量都可以得到有效计算。 与ResNet [9](瓶颈设计)和ResNeXt [40]相比,我们的结构在相同设置下具有较低的复杂性。 例如,给定输入大小c×h×w和瓶颈通道m,ResNet单位需要hw(2cm + 9m2)FLOP,ResNeXt则需要hw(2cm + 9m2 / g)FLOP,而我们的Shuf fl eNet单位仅需要hw(2cm / g + 9m)FLOP,其中g表示卷积的组数。 换句话说,在给定计算预算的情况下,Shuf fl eNet可以使用更宽的特征图。 我们发现这对于小型网络至关重要,因为小型网络通常没有足够数量的通道来处理信息。
另外,在Shuf fl eNet中,深度卷积仅对瓶颈特征图执行。 尽管深度卷积通常理论上的复杂度很低,但我们发现很难有效地在低功率移动设备上实施,与其他密集操作相比,这可能会导致计算/内存访问率更高。 [3]中也提到了这种缺点,它具有基于TensorFlow [1]的运行时库。 在Shuf fl eNet单元中,我们故意仅在瓶颈上使用深度卷积,以尽可能避免开销。
.Network Architecture
在Shuf fl eNet单元的基础上,我们在表1中介绍了Shuf fl eNet的总体体系结构。建议的网络主要由将Shuf fl eNet单元分成三个阶段的堆栈组成。 第一个建筑区块阶段的步幅为2。 其他具有超前级的超参数保持不变,并且在以后的输出通道中加倍。 类似于[9],我们将每个Shuf fl eNet单元的瓶颈通道数设置为输出通道的1/4。 我们的目的是提供尽可能简单的参考设计,尽管我们发现进一步的超参数调整可能会产生更好的结果。
在Shuf fl eNetunits中,组号g控制点卷积的连接稀疏性。 表1探索了不同的组号,我们调整了输出通道以确保总体计算成本大致不变(〜140 MFLOP)。 显然,对于给定的复杂性约束,更大的组数会导致更多的输出通道(因此,更多的卷积滤波器),这有助于编码更多信息,尽管由于相应的输入通道有限,它也可能导致单个卷积滤波器的性能下降。 在第4.1.1节中,我们将研究此数字在不同计算约束下的影响。
为了将网络定制为所需的复杂度,我们可以简单地在通道数上应用比例因子s。 例如,我们在表1中将网络表示为“ Shuf fl eNet 1×”,那么“ Shuf fl eNet s×”表示将Shuf fl eNet 1×中的过滤器数量按s倍进行缩放,因此总体复杂度将约为Shuf fl eNet 1×的s2倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值