深度学习-EfficientNet算法总结

个人微信公众号:AI研习图书馆

ID:(Art-Intelligence)
欢迎关注,交流学习,共同进步~
在这里插入图片描述

1. 引言

EfficientNet是谷歌2019年的新论文。

文章:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (ICML 2019 )

论文链接:https://arxiv.org/abs/1905.11946
代码链接:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
第三方实现的PyTorch代码:https://github.com/lukemelas/EfficientNet-PyTorch

这篇论文主要讲述了如何利用复合系数统一缩放模型的所有维度,达到精度最高和效率最高。符合系数包括w,d,r,其中,w表示卷积核大小,决定了感受野大小;d表示神经网络的深度;r表示分辨率大小。

2. 算法笔记

2.1 摘要

卷积神经网络通常都是先在固定资源预算下开发设计,然后如果资源有多余的话再将模型结构放大以便获得更好的精度。在本篇论文中,我们系统地研究了模型缩放并且仔细验证了网络深度、宽度和分辨率之间的平衡可以导致更好的性能表现。基于这样的观察,我们提出了一种新的缩放方法——使用一个简单高效的复合系数来完成对深度/宽度/分辨率所有维度的统一缩放。我们在MobileNets和ResNet上展示了这种缩放方法的高效性。

为了进一步研究,我们使用神经架构搜索设计了一个baseline网络,并且将模型放大获得一系列模型,我们称之为EfficientNets,它的精度和效率比之前所有的卷积网络都好。尤其是我们的EfficientNet-B7在ImageNet上获得了最先进的 84.4%的top-1精度 和 97.1%的top-5精度,同时比之前最好的卷积网络大小缩小了8.4倍、速度提高了6.1倍。我们的EfficientNets也可以很好的迁移,并且实现了最先进的精度——CIFAR-100(91.7%)、Flowers(98.8%)、其他3个迁移学习数据集。

2.2 文章重点总结

  1. 目前通用的几种方法是放大CNN的深度、宽度和分辨率,在之前都是单独放大这三个维度中的一个,尽管任意放大两个或者三个维度也是可能的,但是任意缩放需要繁琐的人工调参同时可能产生的是一个次优的精度和效率。
  2. 在本篇论文中,我们想要研究和重新思考放大CNN的过程,尤其地,我们调查了一个中心问题:是否存在一个原则性的放大CNN的方法实现更好的精度和效率?我们的实验研究表明了平衡深度、宽度和分辨率这三个维度是至关重要的,令人惊讶的是这样的平衡可以通过简单的使用一组常量比率来缩放每一个维度,基于这个观察,我们提出了一个简单高效的复合缩放方法,不像传统实践中任意缩放这些因子,我们的方法使用一组固定的缩放系数统一缩放网络深度、宽度和分辨率。
  3. 在已经存在的MobileNets和ResNets上展示了我们的缩放方法可以工作得很好,值得注意的是,模型缩放的高效性严重地依赖于baseline网络,为了进一步研究,我们使用网络结构搜索发展了一种新的baseline网络,然后将它缩放来获得一系列模型,称之为EfficientNets。

2.3 个人总结

本人理解的笔记如下:

  1. 文中总结 了我们常用的三种网络调节方式:增大感受野w,增大网络深度d,增大分辨率大小r,三种方式示意图如下:
    在这里插入图片描述
    其中,(a)为基线网络,也可以理解为小网络;(b)为增大感受野的方式扩展网络;©为增大网络深度d的方式扩展网络;(d)为增大分辨率r的方式扩展网络;(e)为本文所提出的混合参数扩展方式。

  2. 文中试验测试,调查了w/r/d在各种情况下的准确率和效率的相互关系曲线,如下图所示:
    在这里插入图片描述
    个人总结规律如下:

2.1,在r和w大小不变的情况下,随着d的增大,准确率没有太大的差异;

2.2,在d和w不变的情况下,随着r的增大,准确率有较大提升;

2.3,r和d不变的情况下,随着w的增大,准确率先有较大提升,然后趋于平缓,往后在无太大提升;

  1. 复合系数的数学模型
    文中给出了一般卷积的数学模型如下:
    在这里插入图片描述

其中H,W为卷积核大小,C为通道数,X为输入tensor;

则复合系数的确定转为如下的优化问题:
在这里插入图片描述

调节d,w,r使得满足内存Memory和浮点数量都小于阈值要求;

为了达到这个目标,文中提出了如下的方法:

在这里插入图片描述

对于这个方法,我们可以通过一下两步来确定d,w,r参数:

在这里插入图片描述
第一步我们可以通过基线网络来调节确定最佳的,然后,用这个参数将基准网络扩展或放大到大的网络,这样就可以使大网络也具有较高的准确率和效率。同样,我们也可以将基线网络扩展到其他网络,使用同样的方法来放大;

论文中基线模型使用的是 mobile inverted bottleneck convolution(MBConv),类似于 MobileNetV2 和 MnasNet,但是由于 FLOP 预算增加,该模型较大。于是,研究人员缩放该基线模型,得到了EfficientNets模型,它的网络示意图如下:
在这里插入图片描述

最后,研究人员对EfficientNets的效率进行了测试,结果如下:

在这里插入图片描述

对比EfficientNets和已有的CNN模型,EfficientNet 模型要比已有 CNN 模型准确率更高、效率更高,其参数量和 FLOPS 都下降了一个数量级,EfficientNet-B7 在 ImageNet 上获得了当前最优的 84.4% top-1 / 97.1% top-5 准确率,而且CPU 推断速度是 Gpipe 的 6.1 倍,而且模型大小方面,EfficientNet-B7却比其他模型要小得多,同时,还对比了ResNet-50,准确率也是胜出一筹(ResNet-50 76.3%,EfficientNet-B4 82.6%)。

EffieicntNet的研究思路大家可以学习一下,在这个时代,创新性思维显得弥足珍贵,心平气和,好好研究论文吧~

您的支持,是我不断创作的最大动力~

欢迎点赞关注留言交流~

深度学习,乐此不疲~

个人微信公众号:AI研习,欢迎关注~

在这里插入图片描述

### 回答1: YOLOX-EfficientNet 是一种基于 EfficientNet 的目标检测算法,其结构构成与 YOLOv5 相似,包括骨干网络、FPN、头网络等模块。具体来说,YOLOX-EfficientNet 使用了 EfficientNet 作为骨干网络,并在其基础上添加了一些轻量化的模块,如SPP模块、CSP Bottleneck 模块等,以提高网络的感受野和特征表达能力。在FPN模块中,YOLOX-EfficientNet 采用了PANet模块来实现跨尺度特征融合,同时还采用了多尺度训练策略和数据增强技术来提高模型的鲁棒性和泛化能力。在头网络中,YOLOX-EfficientNet 采用了YOLOv5的思路,使用了多层的卷积和池化操作来生成检测结果。整个网络结构轻量化、高效,并且具有很好的检测精度和速度。 ### 回答2: YOLOX-EfficientNet是一个目标检测模型,结合了YOLOX和EfficientNet的优点。它的结构主要由两个部分组成:基础特征提取网络和目标检测头部。 首先,基础特征提取网络采用了EfficientNet作为其骨干网络。EfficientNet是一种轻量级的卷积神经网络结构,具有高效的计算性能和较好的图像特征表示能力。它通过使用复合系数来调整特征提取网络的深度、宽度和分辨率,以平衡模型的性能和计算资源的消耗。在YOLOX-EfficientNet中,基础特征提取网络负责从输入图像中提取高维度的特征表示,以便于后续的目标检测任务。 其次,目标检测头部是YOLOX-EfficientNet的关键部分。目标检测头部包括一系列的卷积层、全局池化层和全连接层等,用于从基础特征中提取目标检测相关的信息。具体来说,目标检测头部通过多个卷积层来对基础特征进行特征融合和降维处理,以减少计算量和参数数量。全局池化层用于将特征图转化为固定大小的向量表示,以便于后续的目标分类和定位任务。最后的全连接层用于生成目标检测的预测结果,包括目标的类别、位置和置信度等信息。 通过结合YOLOX和EfficientNet的优点,YOLOX-EfficientNet在目标检测任务上取得了较好的性能和速度平衡。它不仅具有高效的计算性能和较小的网络模型大小,还能够准确地检测和分类图像中的多个目标。这使得YOLOX-EfficientNet在实际应用中具有很高的实用性和应用价值。 ### 回答3: YOLOX-EfficientNet是一种结合了YOLOX目标检测算法和EfficientNet模型的深度学习网络结构。 YOLOX是一种基于YOLO系列算法的高性能目标检测算法,它采用骨干网络+检测头的结构,在不损失精度的情况下大幅度提升了检测速度。YOLOX具有鲁棒性强、准确率高、检测速度快的特点。 而EfficientNet是一种高效的卷积神经网络结构,它通过组合多个模块来构建网络,能够在保持一定准确率的情况下大幅度减少网络的计算量。EfficientNet具有计算效率高、参数量小、模型轻量化的特点。 YOLOX-EfficientNet结合了YOLOX和EfficientNet的优点,它的整体结构分为两部分:YOLOX骨干网络和EfficientNet检测头。 YOLOX骨干网络采用EfficientNet的方式构建,通过组合多个卷积模块来构建深度网络。这些卷积模块包括卷积层、池化层、批标准化层等,它们能够提取出图像的高层语义特征,实现对目标的整体理解。 EfficientNet检测头则是用于目标检测的头部网络结构,它包括多个卷积层和全连接层,用于对骨干网络提取的特征图进行目标的检测和定位。 总而言之,YOLOX-EfficientNet结构构成了一种高效、准确的目标检测模型,它通过对YOLOX算法和EfficientNet模型的有机结合,实现了在保持准确率的同时大幅度提升了目标检测的速度和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI研习图书馆

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值