超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络

article/2025/11/9 20:27:17

点击上方,选择星标置顶,不定期资源大放送

阅读大概需要15分钟

Follow小博主,每天更新前沿干货

【导读】今天给大家介绍一篇 ECCV 2020 Oral论文 ,该论文强调了同时考虑网络宽度和输入分辨率对有效网络设计的重要性。提出了一种新的互相学习的网络框架,即网络宽度和输入分辨率这两者互相学习,从而来实现自适应的精度-效率之间的平衡。

论文标题

  • 论文链接:https://arxiv.org/abs/1909.12978

  • 代码地址:https://github.com/taoyang1122/MutualNet

摘要

我们提出了一种width-resolution相互学习的方法(MutualNet),根据动态的资源约束来训练网络,这种方法在运行时实现了自适应精度-效率的平衡。我们的方法根据不同的输入分辨率来训练一批具有不同宽度的子网络,以相互学习每个子网络的多尺度表示。在不同的计算约束条件下,它在最先进的自适应网络US-Net上始终取得更好的ImageNet top-1精度,并且比最优的复合尺度的MobileNet和EfficientNet 的性能还高出1.5%。该方法在COCO目标检测和实例分割以及迁移学习上也得到了验证。令人惊讶的是,MutualNet的训练策略也可以提高单个网络的性能,在效率(GPU搜索时间:15000 vs. 0)和准确性(ImageNet: 77.6% vs. 78.6%),这两方面都显著超过了AutoAugmentation。

论文介绍

深度神经网络在多项感知任务上都很成功。然而,深度网络通常需要大量的计算资源,这使得它们很难部署在移动设备和嵌入式系统上。这激发了人们去研究,如何设计出更高效的卷积模块或裁剪掉不重要的网络连接,来降低神经网络中的冗余。然而,这些工作忽略了计算成本是由由网络规模和输入规模共同决定的。只想着降低网络的大小是没法实现最优的准确率-效率平衡的。EfficientNet 已经考虑到了网络深度、宽度和分辨率之间平衡的重要性,但是它只分别考虑了网络的大小和输入的大小。EfficientNet的论文作者针对不同配置进行网格搜索,选择性能最好的配置,同时提出在学习充分利用不同配置中嵌入的信息时,应同时考虑网络规模和输入规模。另一个阻碍深度网络实际部署的问题是,资源预算(例如,电池条件)在现实应用中是不同的,而传统网络只能在特定的限制下运行。为了解决这个问题,SlimNets提出训练一个单一的模型来满足运行时资源预算的变化。但他们只是减少网络宽度来满足更低的资源预算。因此,随着计算资源的减少,模型的性能会急剧下降。

在这里,我们提供一个具体的例子来说明在输入分辨率和网络宽度对于实现更好的精度-效率平衡的重要性。具体来说,为了在MobileNet v1 backbone上满足动态资源约束从13到569 MFLOPs ,US-Net 在面对输入是224×224224\times 224224×224的图片时,所需的网络宽度在[0.05,1.0],而这个要求也可以在{224,192,160,128}的范围内调节输入分辨率,而网络宽度在[0.25,1.0]×来得到满足。作者将第二个模型叫做US-Net+。如图1所示,推理时我们将不同的分辨率和网络宽度结合,可以实现更优的准确率-效率平衡。

基于上述观察,作者提出了一个相互学习的方法,将网络宽度和输入分辨率融入到一个统一的学习框架内。如图2所示,我们的框架为不同的子网络提供不同的输入分辨率。由于子网络之间共享权值,每个子网络可以学习其他子网络共享的知识,从而可以从网络尺度和输入分辨率中获取多尺度表示。表1提供了我们的框架与以前工作的比较。

综上所述,我们作出的贡献如下:

  1. 本文强调了输入分辨率对有效网络设计的重要性。以往的工作要么忽略它,要么将其脱离了网络结构而单独来看待它。相反,我们将网络宽度和输入分辨率嵌入到一个统一的互学习框架中,从而学习一个深度神经网络(MutualNet),它可以在准确率-效率之间实现自适应的平衡。

  2. 我们进行了大量的实验来证明MutualNet的有效性。在不同资源约束条件下,在不同的网络结构、数据集、任务上,它的性能明显优于单独训练的网络和US-Net。据我们所知,本文应该是第一个在目标检测和实例分割任务上对任意约束自适应网络做benchmark的。

  3. 作者进行了充分的消融实验,全面分析了本文提出来的相互学习方法。进一步证明了该框架可以作为即插即用策略来提高单个网络的性能,其性能显著优于流行的性能提升方法,如数据增广, SENet 和知识蒸馏等。

  4. 该框架是一个通用的训练机制,与模型无关。它可以用在任何的网络上,而无需调整其结构。这使得它与其它SOTA技术可以兼容(例如,神经结构搜索(NAS),AutoAugmentation)。

网络结构

不同分辨率包含不同的信息。作者想利用该特性,学到鲁棒的特征表示和更优的宽度-分辨率平衡。US-Net里的sandwich rule 可以看作为相互学习的一个机制,协作学习一组网络。由于子网络之间共享权重,协同优化,它们的知识可以互相迁移。较大的网络能够利用较小网络的特征。同样,较小网络也可以受益于较大网络的特征。因此,作者给各子网络输入不同的分辨率输入。通过共享知识,每个子网络都可以获取多尺度表示。

作者在上图2中提供了一个例子,来介绍该框架。作者训练了一个网络,其宽度范围从0.25到1.0。作者首先按照sandwich rule选择了2个子网络,即最小的(0.25×),最大的(1.0×),和2个随机宽度比值的α1,α2∈(0.25,1),然后,与传统的用224×224作为输入的ImageNet训练不同,作者将输入图像缩放到{224,196,160,128},将它们输入进不同的子网络中。作者将子网络的权重表示为W_{0,w}。其中w∈(0,1]是子网络的宽度,0:w意思是子网络会采用原网络每一层权重的w×100%, 代表一个r×r输入图片。然后 表示子网络的输出,宽度是w,分辨率是r×r。对于最大的子网络(即图2中的原网络),作者总是用最高的分辨率输入和ground truth标签来训练它。原网络的损失是:

对于其它的子网络,作者随机从{224,196,160,128}中选择一个输入分辨率,用原网络的输出来训练它。第i个子网络的损失是:

其中KLDiv是 Kullback-Leibler散度。原网络和子网络的总的损失是:

用最高分辨率来训练原网络的原因是,最高分辨率包含着更多的细节信息。同样,原网络也具有最强的学习能力,获取图像数据的判别信息。

Mutual learning from width and resolution. 这一部分,作者解释了为何该框架能够从不同的宽度和分辨率中相互学习。为了展示简单些,作者只考虑了2个网络宽度,0.4×,0.8×,2个分辨率128,192。如图3所示,0.4×的子网络选择输入分辨率为128,而0.8×的子网络选择输入分辨率为192。然后,作者将0.4×的子网络定义为

将0.8×的子网络定义为

由于0.8×的子网络与0.4×的子网络共享权重,我们可以将它的梯度拆分为:

其中⊕是向量concat操作。因为这2个子网络的梯度在训练时会积累起来,总的梯度计算如下:

因此,0.4×的子网络的梯度就是,由2部分组成。第一部分来自于它自己(0:0.4×),分辨率是128。第二部分来自于0.8×子网络(即0:0.4×部分),分辨率是192。因此,子网络能够从不同的输入分辨率和网络尺度中获取多尺度特征表示。因为网络宽度的随机选取,该框架的每个子网络都可以学习多尺度特征表示。

模型推理:训练好的模型可以在不同的宽度-分辨率配置上执行。目的是在给定资源下找到最佳的配置。一个简单的实现方式就是query table。特别地,作者用step-size 0.05×来从0.25×到1.0×中选取网络的宽度,从{224,192,160,128}中选择分辨率。作者在验证集上测试了所有的宽度-分辨率配置,根据约束条件(FLOPs或延迟)选择最佳的一个。因为无需重复训练,整个流程只要训练一次。

实验结果

在ImageNet数据集上,作者将MutualNet和US-Net等独立训练的网络进行了比较。作者也在两个轻量级模型MobileNetV1和MobileNetV2上评价了该框架。这2个网络也分别代表了非残差和残差结构。

作者首先在MobileNetV1和MobileNetV2主干网络上将本文框架与US-Net做比较。图4是准确率-FLOPs的曲线。可以看到本文框架一直要比US-Net效果好。在较小的计算开支下,MutualNet 取得了显著的提升。这是因为,MutualNet 既考虑了网络宽度,也考虑了输入分辨率,能够在二者间找到平衡。例如,假设资源限制在150 MFLOPs,给定输入分辨率为224,US-Net 必须降低其网络宽度到0.5×,而MutualNet 可以通过平衡的配置(0.7×−160) 来满足该预算,实现更高的准确率(65.6%(MutualNet) vs. 62.9%(US-Net),如图4a)。另一方面,MutualNet 能够学习多尺度特征,进一步提升每个子网络的性能。可以看到,即使对于相同的配置(1.0×−224),MutualNet 也要超过US-Net,即在MobileNetV1上 72.4%(MutualNet) vs. 71.7% (US-Net),在MobileNetV2上 72.9%(MutualNet) vs. 71.5% (US-Net),如图4。

与单独训练的网络进行比较,效果图展示:

EfficientNet 指出了平衡网络宽度、深度、分辨率的重要性。但是它是单独考虑这些因素。作者在这3个维度上使用网格搜索法,单独地训练每个配置,根据约束条件来找到最佳的配置。而MutualNet则是在一个统一的框架中融入宽度和分辨率。当资源约束在 2.3 BFLOPs,作者用最佳的EfficientNet来改造MobileNetV1,并与MutualNet进行比较。具体效果显示如下:

在目标检测和分割任务上,多尺度数据增广也很流行。首先,作者从原则方面介绍MutualNet与多尺度数据增广不同。其次,本文方法要远比多尺度数据增广好。具体实验效果如下:

作者也在COCO数据集和实例分割任务上做了评测。基于Mask-RCNN-FPN和以VGG-16作为主干网络的MMDetection toolbox做的实验。


Conclusion

本文强调了同时考虑网络宽度和输入分辨率对有效网络设计的重要性。提出了一种新的网络互相学习框架,在这里即网络宽度和输入分辨率之间的相互学习,来实现自适应的精度-效率之间的trade-off。大量的实验表明,它可以显著地提高每个触发器在各种数据集和任务上的推理性能。互相学习是提高单网络性能的有效训练策略。该框架的通用性使其能够很好地转换到其它问题上。通过向框架中添加其他网络维度,例如网络深度和位宽,这也使得逻辑扩展很容易获得。该框架还可以扩展到视频输入和3D神经网络,在其中便可以利用空间和时间信息。(感觉这个套路后续可出好多论文

更多细节信息请参考原文。

重磅!DLer-计算机视觉交流群已成立!

欢迎各位Cver加入计算机视觉微信交流大群,目前群内已有300+人,本群旨在交流图像分类、目标检测、点云/语义分割、目标跟踪、机器视觉、GAN、超分辨率、人脸检测与识别、动作行为/时空/光流/姿态/运动、模型压缩/量化/剪枝、NAS、迁移学习、人体姿态估计等内容。更有真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、行业技术交流等,欢迎加群交流学习!

进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)

广告商、博主请绕道!

???? 长按识别添加,邀请您进群!


http://chatgpt.dhexx.cn/article/U0NFpgvu.shtml

相关文章

【AI不惑境】网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0c…

CSS:宽高自适应详解

宽度自适应的应用 1.属性:width 2.属性值:px/% 3.宽度自适应的特点 - HTML,BODY表示浏览器,默认是块级元素,宽度是100% - 当块级元素不设置宽度或者设置100%的时候,宽度会沾满全屏(通栏效果) - 子级是块级元素,不设置宽度的时候会和父级等…

陈俊龙:从深度强化学习到宽度强化学习—结构,算法,机遇及挑战

来源:AI科技评论 摘要:如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。 强化学习与宽度学习 如何赋予机器自主学习的能力,一直是人工智能领域的研究热点。在越来越多的复杂现实场景任务中,需要利用深度学习…

网络的宽度对深度学习模型的性能影响

目录 1 为什么需要足够的宽度 2,经典网络的第一层的宽度 3,宽度对模型性能的影响 4 如何更加有效地利用宽度 4.1 提高每一层通道的利用率 4.2 用其他通道的信息来补偿 5 经典网络模型宽度设计方法 5.1 采用多分支网络结构设计 1)ResN…

深度学习笔记(七):网络宽度(卷积核个数)的一些想法

文章目录 一、前言二、网络深度的意义三、宽度的意义四、 网络宽度设计4.1 网络宽度的下限在哪?4.2 网络宽度对模型性能的影响4.3 网络宽度和深度谁更加重要? 五、如何加有效地利用宽度?5.1 提高每一层通道的利用率5.2 用其他通道的信息来补偿…

宽度 深度学习 特点对比

宽度 & 深度学习 特点对比 推荐系统模型介绍实验过程与实验结果实验总结 为了提高神经网络的性能,是应该增加宽度呢?还是应该增加深度呢?增加宽度和增加深度各有什么样的效果呢? 本文对论文《Wide & Deep Learning for Re…

为什么是“深度”学习而不是宽度?

为什么是深度而不是宽度? 先说说我个人的理解,如下图所示,圆圈表示神经元,有两种方式。第一种,只有一层神经层,有8个神经元;第二种方式,有两层神经层,分别有2个和4个神经…

宽度学习系统:一种不需要深度结构的高效增量学习系统

宽度学习系统:一种不需要深度结构的高效增量学习系统 本文是对陈俊龙教授团队“Broad Learning System: An Effective and Efficient Incremental Learning System Without the Need for Deep Architecture”的中文综述,原文将在IEEE Transactions on Neu…

网络的宽度如何影响深度学习模型的性能?

大家好,这是专栏《AI不惑境》的第三篇文章,讲述模型宽度与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程&#xff0…

宽度学习代码的一些问题

最近在拜读陈院士的宽度学习论文,受益匪浅,在此先感谢陈院士团队的开源代码! 在复现代码的过程中,发现了一些小问题,在此记录,方便自己日后翻阅。 此博客仅代表个人观点,姑且算作个人读书笔记…

DeepLearning | Broad Learning System 宽度学习系统 : 高效增量式浅层神经网络

Broad Learning System (BLS,宽度学习系统)是澳门大学的陈俊龙教授在2017年TNNLS上基于随机向量函数链接神经网络(RVFLNN)和单层前馈神经网络(SLFN)提出的一种单层增量式神经网络。这个模型相比于传统的深层网络模型,它在保证一定精度的同时,…

宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新......)

ABSTRACT 近年来深度学习迅猛在各个研究领域发展发展,新的模型结构不断涌现,且有层数逐渐加深的趋势。然而深度模型往往有数量过于庞大的待优化参数,通常需要耗费大量的时间和机器资源来进行优化,而且不能根据需求及输入的变化进行…

为什么要做深度学习而不是宽度学习?

点击此处返回总目录 前面在深度学习介绍的最后有留下一个疑问。我们为什么要deep learning。 我们说,变深了,参数增多,model变复杂,performance变好,是很正常的。 所以,真…

宽度学习学习笔记

宽度学习笔记 随机向量函数链接网络(RVFLNN)增强节点权值计算Greville 定理 宽度学习系统(Broad Learning System)数据处理简单BLS增强节点的增量学习特征节点的增量学习输入的增量学习SVD 参考论文: Broad Learning …

宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统

Motivation 深度学习: 1,时间长:由于涉及到大量的超参数和复杂的结构,大多数神经网络的训练过程非常耗时。 2,重新训练:如果要更改神经网络的结构,或者增加样本,深度学习系统将遇到一个完整的重新训练过程。 宽度学习: 1,消除了训练过程长的缺点,并且提供了很好的…

第三十七课.宽度学习

目录 前置内容宽度学习的基本结构:RVFLNN宽度学习系统岭回归 前置内容 深度学习计算量过大,成本过高,因此提出宽度学习(BLS,Broad Learning System)。我们首先要知道,BLS的网络结构不是固定的&…

宽度学习详解(Broad Learning System)

宽度学习(Broad Learning System) 1:Introduction1.1:级联相关网络(本节来自周志华《机器学习》)1.2:随机向量函数连接网络(RVFLNN) 2:宽度学习系统(Broad Learning Syst…

七、宽度学习系统Broad Learning System

七、宽度学习系统Broad Learning System 1、宽度学习的发展2、宽度学习系统(BLS)3、 BLS的增量形式1、宽度学习的发展 宽度学习系统(BLS) 的提出最早源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,…

宽度学习(Broad Learning System)

一、宽度学习的前世今生 宽度学习系统(BLS) 一词的提出源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,VOL. 29, NO. 1 的一篇文章,题目叫《Broad Learnin…

宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程

目录 1.宽度学习(Broad Learning System) 2.MNIST数据集 3.复刻MNIST数据集的预处理及训练过程 1.宽度学习(Broad Learning System) 对宽度学习的理解可见于这篇博客宽度学习(Broad Learning System)_颹蕭蕭的博客-CSDN博客_宽度学习 这里不再做详细…