本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。同样的精度、速度和计算量都比之前的SOTA算法少。这就是华为诺亚方舟实验室提出的一种全新的端到端神经网络架构GhostNet。GhostNet的核心是Ghost模块。与普通的卷积神经网络相比,在不改变输出特征图大小的情况下,减少了参数总数和所需的计算复杂度,即插即用。在ImageNet分类任务中,GhostNet在各种计算复杂度上始终优于其他竞争对手,如谷歌的MobileNet系列、旷视科技的ShuffleNet系列、IGCV3、ProxylessNAS、FBNet、MnasNet等。GhostNet上的论文已经被CVPR2020收录,模型和代码也已经在GitHub上开源。华为诺亚方舟实验室是怎么做到的?我们根据作者团队的解读一一解读。核心思想:使用更少的参数生成更多的特征图。通常,为了保证模型对输入数据有全面的理解,训练有素的深度神经网络会包含丰富甚至冗余的特征图。如下图所示,在ResNet-50中,第一个残差块将要处理的featuremap会有很多相似的“featuremappairs”——它们被标注了相同颜色的boxes。虽然这种操作可以获得更好的性能,但它需要更多的计算资源来驱动大量的卷积层来处理这些特征图。在深度神经网络应用于移动设备的浪潮中,如何保证性能不下降,计算量变少成为研究的重点之一。Google的MobileNet团队和旷视科技的ShuffleNet团队最近想了很多方法来构建低计算量的深度神经网络。但他们采用的深度卷积或洗牌操作仍然在卷积上下功夫——使用更小的卷积核(浮点运算)。华为诺亚实验室的团队并没有走这条路,而是另辟蹊径:“特征图对”中的一个特征图可以通过廉价操作(上图中的扳手)变换另一个特征图得到,然后其中一个特征图可以被认为是另一个的“幻影”。这是否意味着并非所有的特征图都是通过卷积运算得到的?“幻影”特征图,也可以用更便宜的操作生成?于是就有了GhostNet的基础——Ghost模块,它使用更少的参数来生成与普通卷积层相同数量的特征图。它比普通的卷积层需要更少的计算资源,并被集成到现有的设计中。在良好的神经网络结构中,可以降低计算成本。具体操作在此不再赘述。感兴趣的可以看论文(地址在文末)。构建新的端侧神经网络架构GhostNet研究团队利用Ghost模块,提出了专为小型CNN设计的Ghost瓶颈(G-bneck)。其架构如下图所示,类似于ResNet中的BasicResidualBlock,集成了多个卷积层和shortcuts。Ghost瓶颈主要由两个堆叠的Ghost模块组成。第一个用作扩展层,增加通道数量。第二个用于减少通道数以匹配快捷路径。然后,使用快捷方式连接这两个Ghost模块的输入和输出。研究团队表示,这里借鉴了MobileNetV2中的思想:在第二个Ghost模块之后不使用ReLU,在每一层之后对其他层应用batchnormalization(BN)和ReLU非线性激活。这里说的Ghost瓶颈适用于上图中Stride=1的情况。对于Stride=2的情况,shortcutpath是通过降采样层和Stride=2的深度卷积(DepthwiseConvolution)来实现的。此外,出于效率考虑,Ghost模块中的初始卷积是逐点卷积(PointwiseConvolution)。在Ghost瓶颈的基础上,研究团队提出了GhostNet——继承了MobileNetV3基础架构的优势,用Ghost瓶颈替代了MobileNetV3中的瓶颈。第一层是具有16个内核的标准卷积层,随后是一系列通道增加的幽灵瓶颈。Ghost瓶颈根据输入featuremap的大小分为不同的stage,除了每个stage的最后一个Ghostbottleneck是Stride=2,其他所有Ghostbottlenecks都应用Stride=1。最后featuremap为使用全局平均池和卷积层将其转换为1280维特征向量以进行最终分类。SE模组也用于Ghost瓶颈中的一些残留层。与MobileNetV3相比,这里将Hard-swish激活函数替换为ReLU。研究团队表示,这里的架构只是一个基本的设计参考,进一步的超参数调优或基于自动架构搜索的Ghost模块将进一步提升性能。ImageNet分类任务以这种方式超越了GoogleMobileNet设计的神经网络架构。表现如何?研究团队从各个方面进行了验证。首先,在CIFAR-10数据集上,他们使用VGG-16和ResNet-56架构中的Ghost模块与几个具有代表性的最先进模型进行比较。Ghost-VGG-16(s=2)以最高的性能(93.7%)胜过其竞争对手,但计算功耗(FLOPs)显着降低。在比VGG-16小得多的ResNet-56上,基于Ghost模块的模型将计算量减少了一半,并达到了相当的精度。在论文中,他们提供了Ghost模块生成的特征图。下图展示了Ghost-VGG-16的第二层特征。左上图是输入,左边红框内的特征图来自初始卷积,右边绿框内的特征图是廉价深度变换后的幻象特征图。据研究团队介绍,虽然生成的特征图来源于原始特征图,但它们之间确实存在显着差异,这意味着生成的特征足够灵活,可以满足特定任务的需求。其次,在ImageNet数据集的分类任务上,他们测试了整个神经网络架构的性能,测得的指标是单个crop在ImageNet验证集上的top-1性能。下图展示了GhostNet与现有几种最佳小型网络结构的对比。参赛选手包括MobileNet系列、ShuffleNet系列、ProxylessNAS、FBNet、MnasNet等。模型分为3个计算复杂度级别,分别为~50、~150和200-300MFLOPs。通常,对于更大的FLOP,这些小型网络的准确性更高——表明它们的有效性。GhostNet在不同的计算复杂性级别上始终优于其他竞争对手。研究团队解释说,这主要是因为GhostNet在利用计算资源生成特征图方面效率更高。由于GhostNet是为移动设备设计的,所以他们也使用了TFLite工具,遵循MobileNet中常用的设置,使用Batchsize为1的单线程模式,进一步衡量GhostNet在ARM架构移动设备上的实际推理速度手机(华为P30Pro),并与其他型号进行比较。如上图所示,GhostNet与具有相同延迟的MobileNetV3相比,top-1精度提高了约0.5%,另一方面,GhostNet需要更少的运行时间来达到相同的精度。例如,精度为75.0%的GhostNet延迟仅为40ms,而具有相似精度的MobileNetV3处理一张图像大约需要46ms。因此,研究团队表示,GhostNet通常优于其他最先进的模型,例如Google的MobileNet系列、ProxylessNAS、FBNet和MnasNet等。华为诺亚方舟实验室研究成果本研究核心作者主要来自华为诺亚实验室。第一作者为韩凯,曾任研究单位为北京大学。第二作者王云鹤,同样毕业于北京大学。第三作者为诺亚方舟实验室首席计算机视觉科学家、本文通讯作者田琦。这篇论文是华为在计算机视觉方向的最新研究成果之一。此前,在CVPR发布2020年榜单时,王云鹤在知乎上透露,其团队共有7篇论文入选。他说,这些都是他的团队半年多来的心血。emmm...如果对这个研究感兴趣,可以留个传送门:论文地址:https://arxiv.org/abs/1911.11907项目开源地址:https://github.com/huawei-noah/鬼网
