EfficientNet网络简介

这篇具有很好参考价值的文章主要介绍了EfficientNet网络简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.1 EfficientNet网络概述     

1.2EfficientNet 性能分析

1.3EfficientNet的基本原理公式

1.4MATLAB开发方法


1.1 EfficientNet网络概述     

        在开发以卷积神经网络(CNN)为核心的机器学习模型时,我们通常会先使用固定的资源成本,构建最初的模型,然后增加更多资源(层数)扩展模型,获得更高的准确率。

       一般来说,模型的扩大和缩小都是任意增加 CNN 的深度或宽度,抑或是使用分辨率更大的图像进行训练和评估。虽然这些传统方法提高准确率的效果不错,但大多需要繁琐的手动调整,还可能无法达到最佳性能。

       因此,谷歌AI团队最近提出了新的模型缩放方法“复合缩放(Compound Scaling)”和配套的 EfficientNet 模型。他们使用复合系数和 AutoML 从多个维度均衡缩放 CNN,综合考虑深度和宽度等参数,而不是只单纯地考虑一个,使得模型的准确率和效率大幅提升,图像识别的效率甚至可以大幅提升10倍。EfficientNet 是一种高效的卷积神经网络架构,由 Google Brain 团队提出,专门用于图像分类和识别任务。它通过对网络的深度、宽度和分辨率进行统一的缩放来实现高效的模型设计,从而在保持准确性的同时降低了计算和参数量,是一种在计算资源有限的情况下获得高性能的解决方案。

       这项新方法的根本优势在于实践起来非常简单,背后的原理很好理解,甚至让人怀疑为什么没有被更早发现。该研究成果以论文的形式被 ICML 2019(国际机器学习大会)接收,名为 EfficientNet: Rethinking Model Scaling for Convolutional Neural NetworksEfficientNet 模型的相关代码和 TPU 训练数据也已经在 GitHub 上开源。

       为了弄清楚神经网络缩放之后的效果,谷歌团队系统地研究了改变不同维度对模型的影响,维度参数包括网络深度、宽度和图像分辨率。首先他们进行了栅格搜索(Grid Search)。这是一种穷举搜索方法,可以在固定资源的限定下,列出所有参数之间的关系,显示出改变某一种维度时,基线网络模型会受到什么样的影响。换句话说,如果只改变了宽度、深度或分辨率,模型的表现会发生什么变化。

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet

        综合考虑所有情况之后,他们确定了每个维度最合适的调整系数,然后将它们一同应用到基线网络中,对每个维度都进行适当的缩放,并且确保其符合目标模型的大小和计算预算。

        简单来说,就是分别找到宽度、深度和分辨率的最佳系数,然后将它们组合起来一起放入原本的网络模型中,对每一个维度都有所调整。从整体的角度缩放模型。与传统方法相比,这种复合缩放法可以持续提高模型的准确性和效率。在现有模型 MobileNet ResNet 上的测试结果显示,它分别提高了 1.4% 0.7% 的准确率。

         因为,为了进一步提高性能,谷歌 AI 团队还使用了 AutoML MNAS 框架进行神经架构搜索,优化准确性和效率。AutoML 是一种可以自动设计神经网络的技术,由谷歌团队在 2017 年提出,而且经过了多次优化更新。使用这种技术可以更简便地创造神经网络。由此产生的架构使用了移动倒置瓶颈卷积(MBConv),类似于 MobileNetV2 MnasNet 模型,但由于计算力(FLOPS)预算增加,MBConv 模型体积略大。随后他们多次缩放了基线网络,组成了一系列模型,统称为 EfficientNets

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet

EfficientNet 的主要特点包括:

  • 复合缩放: EfficientNet 在不同的网络维度(深度、宽度、分辨率)上进行统一的缩放,以获得更好的性能。
  • 深度可扩展: 通过增加网络深度,可以捕获更丰富的特征表达。
  • 宽度可扩展: 增加网络通道数可以提升网络的特征表示能力。
  • 分辨率可扩展: 使用不同分辨率的输入图像可以适应不同任务和需求。
  • 复合缩放参数: 通过复合缩放参数来平衡深度、宽度和分辨率的权衡。

1.2EfficientNet 性能分析

       为了测试其性能,研究人员与 ImageNet 上的其他现有 CNN 进行了比较。结果显示,EfficientNet 在大多数情况下表现亮眼,比现有 CNN 的准确率和效率都高,还将参数大小和计算力降低了一个数量级。

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet

       比如 EfficientNet-B7 ImageNet 上达到的 Top-1 最高准确率是 84.4%Top-5 准确率是 97.1%。在 CPU 推理上,它的体积比最好的 CNN 模型 GPipe 8.4 倍,但速度快了 6.1 倍。与广泛使用的 ResNet-50 相比,EfficientNet-B4 使用了类似的计算力,但 Top-1 准确率从 76.3% 提升到了 82.6%。此外,EfficientNets 不仅在 ImageNet 上表现出众,其能力还可以转移到其它数据集上。他们在 8 个流行的迁移学习数据集上测试了 EfficientNets。结果显示,它在其中的 5 个上面都拿到了顶尖成绩,例如在 CIFAR-100 上获得了 91.7 的成绩,在 Flowers 上获得了 98.8 的成绩,而且参数至少减少了一个数量级,甚至还可以最多减少 21 倍,说明 EfficientNets 具有很强的迁移能力。

1.3EfficientNet的基本原理公式

       卷积层i可以通过公式 代表卷积操作, 表示输出张量, 表示输入张量。<Hi,Wi,Ci>表示输入张量的形状,Hi,Wifeature map的尺寸,Ci feature map的输入通道数。卷积N可以用一系列组成层表示:

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet

        N是分类网络,X表示输入,Fi 是基础网络层,Li 表示在第istage中基础网络层Fi 的重复次数,总共有sstage。其空间维度,即feature map的尺寸逐层递减,但是通道维度是逐渐增加的。

       不像规则的ConvNets设计,大多聚焦于发现最好的基础网络层Fi,然后再利用模型缩放在不改变预先在baseline网络定义好的Fi 的前提下扩展网络深度Li 、宽度Ci 、分辨率<Li CiHiWi> 为了更进一步减小设计空间,我们限制所有层都统一以一个常量比例缩放,我们的目标是在给定资源预算下最大化模型精度,可以定义为如下优化问题:

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet         (3)

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet

        那么model scaling的目标就是在模型参数和计算量满足限制条件的情况下最大化网络的准确率,也就是公式2所表达的内容,待优化的参数就是网络深度(d)、网络宽度(w)和分辨率(r)。

        深度(d):缩放网络深度在许多ConvNets都有使用,直觉上更深的网络可以捕获到更丰富和更复杂的特征,在新任务上也可以泛化的更好。然而,更深的网络由于梯度消失问题也更难训练。尽管有一些技术,例如跨层连接、批量归一化等可以有效减缓训练问题,但是深层网络的精度回报减弱了。       

       宽度(w):缩放网络宽度也是一种常用的手段,正如之前讨论过的,更宽的网络可以捕捉到更细粒度的特征从而易于训练。然而,非常宽而又很浅的网络在捕捉高层次特征时有困难。

       Resolutionr):使用更高分辨率的输入图像,ConvNets可能可以捕捉到更细粒度的模式。从最早的 224x224,现在有些ConvNets为了获得更高的精度选择使用 229x229 或者 331x331。目前,GPipe使用 480x480 的分辨率获得了最先进的ImageNet精度,更好的精度比如 600x600 也被广泛使用在目标检测网络中。

      之前的一些工作已经开始在追去任意缩放网络深度和宽度,但是他们仍然需要复杂的人工微调。在本篇论文中,我们提出了一个新的复合缩放方法——使用一个复合系数ϕ统一缩放网络宽度、深度和分辨率:

efficientnet,MATLAB,板块3:AI/神经网络/深度学习,深度学习,人工智能,机器学习,EfficientNet                (4)

这里的α,β,γ都是由一个很小范围的网络搜索得到的常量,直观上来讲,ϕ是一个特定的系数,可以控制用于资源的使用量,α,β,γ决定了具体是如何分配资源的。值得注意的是,常规卷积op的计算量是和d,w2,r2 成正比的,加倍深度会使得FLOPS加倍,但是加倍宽度和分辨率会使得FLOPS4倍。由于卷积ops经常在CNN中占据了大部分计算量,使用等式(3)缩放ConvNet将会使得整体计算量近似增加β2γ2)ϕ 倍。在本篇论文中,我们对任意ϕ增加了约束αβ2γ2≈2,整体的计算量近似增加了倍。文章来源地址https://www.toymoban.com/news/detail-810462.html

1.4MATLAB开发方法

% 导入深度学习工具箱
addpath(genpath('path_to_your_matlab_deep_learning_toolbox'));

% 加载预训练的 EfficientNet-B0 模型
net = efficientnetb0;

% 指定输入图像尺寸
inputSize = [224 224 3]; % 根据模型的输入尺寸进行设置

% 创建图像数据存储器
imds = imageDatastore('path_to_your_image_folder', ...
    'IncludeSubfolders', true, 'LabelSource', 'foldernames');

% 数据预处理
augmentedImds = augmentedImageDatastore(inputSize(1:2), imds);

% 迁移学习训练
options = trainingOptions('sgdm', ...
    'MiniBatchSize', 16, ...
    'MaxEpochs', 10, ...
    'InitialLearnRate', 1e-3, ...
    'Shuffle', 'every-epoch', ...
    'ValidationData', augmentedImds, ...
    'ValidationFrequency', 50, ...
    'Verbose', true, ...
    'Plots', 'training-progress');

% Fine-tune 模型
net = trainNetwork(augmentedImds, net, options);

到了这里,关于EfficientNet网络简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EfficientNet论文笔记

    通过NAS平衡了channel,depth,resolution,发现在相同的FLOPs下,同时增加 depth和 resolution的效果最好。 数据集效果小于resolution怎么办? EfficientNet—b0框架 表格中每个MBConv后会跟一个数字1或6,这里的1或6就是倍率因子n,即MBConv中 第一个 1x1的卷积层会将输入特征矩阵的 channels扩充

    2024年02月12日
    浏览(24)
  • EfficientNet 分类花数据集

    目录 1. EfficientNet 网络 2. depth、width、resolution 3. EfficientNet 网络的结构 4. dos 命令train 网络 5. 代码 5.1 model 5.2 dataset 5.3 utils 5.4 train 5.5 predict EfficientNet 对网络的重要三个参数进行的探索:图像分辨率、网络的宽度、网络的深度 图像分辨率:特征图的size,h*w就是图像的空间分

    2023年04月08日
    浏览(26)
  • 【计算机视觉】timm包实现EfficientNet

    我们为 EfficientNet 系列模型提供实现和预训练权重。 Paper: EfficientNet: Rethinking Model Scaling for CNNs. 此代码和权重已从 timm 实现移植。 这确实意味着某些模型权重经历了从 TF(来自 Google Brain 团队的原始权重)到 PyTorch(timm 库)再回到 TF(timm 的 tfimm 端口)的旅程。 有以下型号可

    2024年02月03日
    浏览(27)
  • CNN成长路:从AlexNet到EfficientNet(01)

              在 10年的深度学习中,进步是多么迅速!早在 2012 年,Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在,我们超过90%的EfficientNet架构和师生训练(teacher-student)。         如果我们在 Imagenet 上绘制所有报告作品的准确性,我们会得到这样的结果: 来

    2024年02月13日
    浏览(32)
  • CNN成长路:从AlexNet到EfficientNet(02)

            在~10年的深度学习中,进步是多么迅速!早在 2012 年,Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在,我们超过90%的EfficientNet架构和师生训练( teacher-student )。         见文: CNN成长路:从AlexNet到EfficientNet(01)

    2024年02月13日
    浏览(25)
  • 简单有趣的轻量级网络 Efficientnet(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现

            这期博客我们来学习一下Efficientnet网络,属于NAS系列中最优秀的轻量级网络之一,通过NAS搜索的方式确定最佳的网络结构。之前的神经网络的宽度深度,输入图像的分辨率,是怎么获得的呢,说白了就是经验,研究人员通过无数的设计经验获得的,但是网络的发展不

    2024年04月26日
    浏览(44)
  • 论文阅读《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》

    就上一篇博客如何写论文、读(分享汇报)论文,在《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》进行实践。 《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》是一篇由Mingxing Tan和Quoc V. Le等人于2019年提出的论文,主要关注卷积神经网络(CNN)的模型缩

    2024年02月03日
    浏览(49)
  • 神经网络线性量化方法简介

    可点此跳转看全篇 Network Model size (MB) GFLOPS AlexNet 233 0.7 VGG-16 528 15.5 VGG-19 548 19.6 ResNet-50 98 3.9 ResNet-101 170 7.6 ResNet-152 230 11.3 GoogleNet 27 1.6 InceptionV3 89 6 MobileNet 38 0.58 SequeezeNet 30 0.84 随着网络的深度变大,参数变多,神经网络消耗越来越多的算力,占用原来越大的存储资源。 若想

    2024年03月10日
    浏览(37)
  • 机器学习-12 卷积神经网络简介

    1.感知机网络(解决线性可分问题,20世纪40年代) 2.BP神经网络(解决线性不可分问题,20世纪80年代) 3.深度神经网络(海量图片分类,2010年左右) 常用的深度神经网络:CNN、RNN、LSTM、GRU、GAN、DBN、RBM… 1.计算机视觉 2.语音识别 3.自然语言处理 4.人机博弈 传统机器学习算法

    2024年02月09日
    浏览(38)
  • 基于matlab的神经网络设计,matlab神经网络应用设计

    我来说下我的理解,不一定对,一起讨论下吧 1.100个字母,400个数字组成的训练样本应该是可以的,因为训练样本多的话会使整个网络的权值更加接近准确的权值,500个训练样本对于图像处理来说应该不算多。 2.因为预处理后的每个字母/图片为250的向量值,所有训练样本可以

    2024年02月06日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包