【AI系统】EfficientNet 系列

EfficientNet 系列

本文主要介绍 EfficientNet 系列,在之前的文章中,一般都是单独增加图像分辨率或增加网络深度或单独增加网络的宽度,来提高网络的准确率。而在 EfficientNet 系列论文中,会介绍使用网络搜索技术(NAS)去同时探索网络的宽度(width),深度(depth),分辨率(resolution)对模型准确率的影响。以及如何加速训练推理速度。

EfficientNet V1 模型

EfficientNetV1:重点分析了卷积网络的深度,宽度和输入图像大小对卷积网络性能表现的影响,提出了一种混合模型尺度的方法,通过设置一定的参数值平衡调节卷积网络的深度,宽度和输入图像大小,使卷积网络的表现达到最好。

复合模型缩放

单独适当增大深度、宽度或分辨率都可以提高网络的精确性,但随着模型的增大,其精度增益却会降低。此外,这三个维度并不是独立的(如:高分辨率图像需要更深的网络来获取更细粒度特征等),需要我们协调和平衡不同尺度的缩放,而不是传统的一维缩放。EfficientNet 的设想就是能否设计一个标准化的卷积网络扩展方法,既可以实现较高的准确率,又可以充分的节省算力资源。其通过 NAS(Neural Architecture Search)技术来搜索网络的图像输入分辨率 r,网络的深度 depth 以及 channel 的宽度 width 三个参数的合理化配置。如下图所示,( b ),( c ),( d )分别从不同的维度对 baseline 做 model scaling,而这篇论文要做的是将这 3 者结合起来一起优化即(e)。

在这里插入图片描述

通过实验得出以下结论:

  1. 增加网络的 depth 能够得到更加丰富、复杂的高级语义特征,并且能很好的应用到其他任务中去。但是网络的深度过深会面临梯度消失,训练困难等问题。

  2. 增加网络的 width 能够获得更高细粒度的特征,并且也更容易训练。但是对于宽度很大,深度较浅的网络往往很难学习到更深层次的特征。例如我就只有一个 3×3 的卷积,但是输出通道为 10000,也没办法得到更为抽象的高级语义。

  3. 增加输入网络的图像分辨率能够潜在获得更高细粒度的特征模版,图像分辨率越高能看到的细节就越多,能提升分辨能力。但是对于非常高的输入分辨率,准确率的增益也会减少。且大分辨率图像会增加网络的计算量(注意不是参数量)。

一个卷积网络的某一层 i i i 可以被定义为;

Y i = F i ( X i ) Y_{i}=F_{i}(X_{i}) Yi=Fi(Xi)

其中: X i X_{i} Xi 表示输入的 tensor,其形状为 < H i , W i , C i > <H_{i},W_{i},C_{i}> <Hi,Wi,Ci> Y i Y_{i} Yi 是输出的 tensor。于是,一个卷积网络 N N N 可以被表示成如下形式:

N = F k ⊙ . . . ⊙ F 2 ⊙ F 1 ( X 11 ) = ⊙ j = 1.... k F j ( X 1 ) N=F_{k}\odot ...\odot F_{2}\odot F_{1}(X_{11})=\odot_{j=1....k}F_{j}(X_{1}) N=Fk...F2F1(X11)=j=1....kFj(X1)
但是在实际中,ConvNets 的各个层通常被划分为多个 stage,并且每个 stage 中的所有层都具有相同的体系结构(例如 ResNet,共有五个 stage,除了第一层之外的每个 stage 的所有层都分别具有相同的卷积类型)。

因此,我们可以将 ConvNet 重新表示成如下形式:
N = ⨁ i = 1... s F i L i ( X < H i , W i , C i > ) N = \bigoplus_{i=1...s}F_{i}^{L_i}(X_{<H_{i},W_{i},C_{i}>}) N=i=1...sFiLi(X<Hi,Wi,Ci>)
其中 F i L i F_{i}^{L_{i}} FiLi 表示第 i i i 个 stage,并且这个 stage 由 L i L_{i} Li 次的 F i F_{i} Fi(相当于一层 layer)操作构成。

通常 ConvNet 的设计焦点在 F i F_{i} F

### EfficientNet 系列模型架构特点 EfficientNet的基础网络(EfficientNet-B0)通过神经架构搜索(NAS)技术找到,这种自动化过程能够发现更高效的基础架构。在此基础上,通过复合缩放方法构建了不同尺寸的EfficientNet模型(从B1至B7)。这种方法不仅增加了计算量和参数数量,而且确保了在扩大规模的过程中保持性能提升的一致性和有效性[^1]。 #### 复合缩放策略的应用 不同于传统的方法仅单独调整网络的一个维度(如宽度、深度或输入图像分辨率),EfficientNet采用了一种新的复合系数来协调这三个因素的增长。具体来说,该框架允许同时改变网络的宽度、深度以及分辨率,从而达到更好的整体效果。这一特性使得EfficientNet可以在有限的额外开销下获得显著优于其他同类算法的表现[^3]。 ```python def scale_model(base_model, scaling_factor): scaled_width = base_model.width * scaling_factor scaled_depth = int(base_model.depth * math.pow(scaling_factor, 2)) scaled_resolution = int(base_model.resolution * math.sqrt(scaling_factor)) return { 'width': scaled_width, 'depth': scaled_depth, 'resolution': scaled_resolution } ``` ### 应用场景概述 由于其出色的性能与较低的运算成本,EfficientNet已在多个计算机视觉任务中得到广泛应用,包括但不限于: - **图像分类**:作为最基础也是最常见的应用场景之一; - **目标检测**:结合特征金字塔等机制进一步增强识别精度; - **语义分割**:通过对像素级别的预测提高处理复杂背景的能力; 特别是在人脸识别领域,EfficientNet表现出色,能够在大幅减少参数量的情况下维持甚至超越现有技术水平的准确性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值