了解 EfficientNet 架构及其复合缩放的魔力!探索 EfficientNet B0-B7,以获得顶级的图像分类和分割效率。

了解 EfficientNet 架构及其复合缩放的魔力!探索 EfficientNet B0-B7,以获得顶级的图像分类和分割效率。
2019 年,Google AI 的研究人员推出了 EfficientNet,这是一种最先进的计算机视觉模型,旨在识别图像中的物体和模式。它主要设计用于图像分类,即将图像分配到几个预定义的类别之一。然而,今天,EfficientNet 也可作为更复杂任务(如目标检测、分割和迁移学习)的骨干。
在EfficientNet之前,这类机器学习和视觉人工智能模型试图通过增加更多的层或增加这些层的大小来提高准确性。层是神经网络模型(一种受人脑启发的深度学习模型)中的步骤,用于处理数据以学习模式并提高准确性。
这些改变带来了一种权衡,使得传统 AI 模型变得更大更慢,而且与所需计算能力的显著增加相比,额外准确性通常微乎其微。
EfficientNet 采用了一种不同的方法。它以平衡的方式同时增加深度(层数)、宽度(每层中的单元数)和图像分辨率(输入图像的细节级别)。这种称为复合缩放的方法可以可靠地利用所有可用的处理能力。最终的结果是,模型体积更小、速度更快,并且比 ResNet 或 DenseNet 等旧模型表现更好。
如今,像Ultralytics YOLO11这样较新的计算机视觉模型提供了更高的准确性、速度和效率。即便如此,EfficientNet仍然是一个重要的里程碑,它影响了许多高级架构的设计。
在本文中,我们将用五分钟的时间来剖析 EfficientNet,内容涵盖其工作原理、独特之处以及它在计算机视觉领域仍然重要的原因。让我们开始吧!
在EfficientNet被设计出来之前,大多数图像识别模型通过调整它们的层或增加输入图像的大小来提高准确性,以捕捉更多的细节。虽然这些策略提高了结果,但它们也使模型更重,要求更高。这意味着它们需要更多的内存和更好的硬件。
EfficientNet 不是改变单个层,而是使用一种称为复合缩放的方法同时缩放深度、宽度和图像分辨率。这种方法允许模型有效地增长,而不会使任何单个方面过载。
EfficientNet 架构通过一系列由较小模块构建的块来处理图像。每个块中的模块数量取决于模型大小。
较小版本使用的模块较少,而较大版本则更频繁地重复使用模块。这种灵活的设计使EfficientNet能够在从移动设备到大型系统的广泛应用中提供高精度和高效率。
复合缩放方法扩展了模型的深度、宽度和图像分辨率,但保持了它们的平衡。这使得有效利用计算能力成为可能。该系列从一个名为 EfficientNet-B0 的较小基线模型开始,该模型是所有其他版本的基础。
这些模型从 B0 开始,向上扩展为更大的变体,命名为 EfficientNet-B1 到 EfficientNet-B7。每一步,网络都会增加额外的层,增加通道(用于处理的单元)的数量,并处理更高分辨率的输入图像。每一步的增长量由一个称为复合系数的参数决定,该参数确保深度、宽度和分辨率以固定的比例增加,而不是独立增加。
接下来,让我们了解一下 EfficientNet 的架构。
它构建于 MobileNetV2 之上,这是一种为移动和嵌入式设备优化的轻量级计算机视觉模型。其核心是 Mobile Inverted Bottleneck Convolution (MBConv) 块,这是一种特殊的层,它像标准卷积一样处理图像数据,但计算量更少。这个块使模型既快速又更节省内存。
在每个MBConv模块内部都有一个squeeze-and-excitation (SE)模块。该模块调整网络中不同通道的强度。它增强了重要通道的强度,并降低了其他通道的强度。该模块帮助网络专注于图像中最重要的特征,而忽略其余特征。EfficientNet模型还使用Swish激活函数(一种帮助网络学习模式的数学函数),这有助于它比旧方法更好地发现图像中的模式。
除此之外,它还使用了 DropConnect,其中网络内部的一些连接在训练期间会随机关闭。这种随机正则化方法(一种随机化技术,用于防止模型记住训练数据而不是泛化)通过迫使网络学习更强大的特征表示(数据中更强、更通用的模式)来减少过拟合,从而更好地转移到未见过的数据。
现在我们对EfficientNet模型的工作原理有了更好的了解,接下来让我们讨论不同的模型变体。
EfficientNet 模型可以从 B0 扩展到 B7,其中 B0 作为基准,平衡了速度和准确性。每个版本都会增加深度、宽度和图像分辨率,从而提高准确性。但同时,它们也需要更多的计算能力,从 B1 和 B2 到高性能的 B6 和 B7。
虽然 EfficientNet-B3 和 EfficientNet-B4 模型在处理较大的图像时取得了平衡,但 B5 通常用于需要精度的复杂数据集。除了这些模型之外,最新的模型 EfficientNet V2 可以提高训练速度,更好地处理小型数据集,并针对现代硬件进行了优化。
与其他许多模型相比,EfficientNet 能够以更少的内存和处理能力产生准确的结果。这使其在从科学研究到日常消费品等诸多领域都非常有用。
医学图像(例如肺部的 CT 扫描)通常包含对于准确诊断至关重要的细微细节。 AI 模型可以协助分析这些图像,以发现人类可能难以检测到的模式。 为此目的而对 EfficientNet 进行的一项改进是 MONAI(医学开放网络 AI)EfficientNet,它专门为医学图像分析而设计。
研究人员还在 EfficientNet 架构的基础上开发了 Lung-EffNet,这是一种对肺部 CT 扫描进行分类以检测肿瘤的模型。它可以将肿瘤分为良性、恶性或正常,据报告在实验环境中准确率超过 99%。
目标检测是在图像中查找目标并确定其位置的过程。 它是安全系统、自动驾驶汽车和无人机等应用的关键组成部分。
EfficientNet 在该领域变得重要,因为它提供了一种非常有效的方法来从图像中提取特征。它通过缩放深度、宽度和分辨率的方式,展示了模型如何在不牺牲速度和体积的前提下保持准确性。因此,许多检测系统,例如 EfficientDet,都使用 EfficientNet 作为其骨干网络。
更新的模型,例如 Ultralytics YOLO11,也具有将速度与准确性相结合的相同目标。这种对高效模型的趋势受到了 EfficientNet 等架构的思想的强烈影响。
以下是在计算机视觉项目中使用 EfficientNet 的一些好处:
虽然使用 EfficientNet 有很多好处,但以下是使用 EfficientNet 时需要记住的一些限制:
EfficientNet 通过保持深度、宽度和图像分辨率的平衡,改变了计算机视觉模型的发展方式。它仍然是一个重要的模型,并影响了更新的架构。尤其是在计算机视觉发展史上,它占据着重要的地位。
加入我们的社区和GitHub代码仓库,以探索更多关于AI的信息。查看我们的解决方案页面,了解医疗保健领域的AI和汽车领域的计算机视觉。探索我们的许可选项,立即开始使用计算机视觉进行构建!