在深度学习领域,EfficientNet因其在对象识别、图像分割乃至语言处理等众多挑战性任务中的卓越表现而受到广泛关注。EfficientNet的成功源于其在计算效率和模型性能之间找到了一个平衡点。传统的深度学习模型往往需要在准确性和资源消耗之间做出权衡,而EfficientNet通过引入一种名为“复合缩放”的创新方法来解决这一挑战。通过系统地以原则性的方式缩放模型的维度(宽度、深度和分辨率),EfficientNet在不牺牲准确性的情况下实现了前所未有的效率水平。这种方法使得模型能够在不同的计算预算和硬件能力之间找到一个最优的平衡点。
EfficientNet是一种基于“复合缩放”概念构建的卷积神经网络。这一概念解决了长期以来模型大小、准确性和计算效率之间的权衡问题。复合缩放的核心思想是缩放神经网络的三个基本维度:宽度、深度和分辨率。
宽度缩放指的是神经网络每一层中的通道数。通过增加宽度,模型能够捕捉更复杂的模式和特征,从而提高准确性。相反,减少宽度会导致模型更轻量级,适合资源受限的环境。
深度缩放涉及网络的总层数。更深的模型能够捕捉数据的更复杂表示,但它们也需要更多的计算资源。另一方面,较浅的模型在计算上更高效,但可能会牺牲准确性。
分辨率缩放包括调整输入图像的大小。更高分辨率的图像提供了更详细的信息,可能会带来更好的性能。然而,它们也需要更多的内存和计算能力。相反,较低分辨率的图像消耗的资源较少,但可能会导致细节信息的丢失。
下图展示了在不同维度上缩放的影响。不同基线网络的网络宽度缩放。每条线上的每个点表示具有不同宽度系数(w)的模型。第一个基线网络(d=1.0, r=1.0)有18个卷积层,分辨率为224x224,而最后一个基线(d=2.0, r=1.3)有36层,分辨率为299x299。
这个过程从一个基线模型开始,它作为起点。这个基线模型通常是一个在给定任务上表现良好的合理大小的神经网络,但可能没有针对计算效率进行优化。然后,引入一个复合系数作为用户定义的参数,它决定了如何缩放神经网络的维度。这是一个单一的标量值,它统一缩放模型的宽度、深度和分辨率。通过调整这个φ值,可以控制模型的整体复杂性和资源需求。
基线模型是复合缩放的起点,通常是一个在特定任务上表现良好的合适大小的神经网络,但可能没有针对计算效率进行优化。
复合系数是一个用户定义的参数,它决定了如何缩放神经网络的维度。这是一个单一的标量值,它统一缩放模型的宽度、深度和分辨率。通过调整这个φ值,可以控制模型的整体复杂性和资源需求。
复合缩放的关键思想是以平衡和协调的方式缩放基线模型的维度(宽度、深度和分辨率)。每个维度的缩放因子都是从复合系数φ派生出来的。
宽度的神经网络通过将φ提升到特定的指数(通常表示为α)来成比例地缩放。
同样,网络的深度通过将φ提升到另一个指数(通常表示为β)来缩放。
分辨率或输入图像大小通过将原始分辨率(r)乘以φ提升到不同的指数(通常表示为γ)来缩放。
需要确定指数α、β和γ。这些指数是常数,需要通过经验网格搜索或优化过程来确定,以实现最优化的缩放。目标是找到在模型准确性和计算效率之间取得最佳权衡的指数组合。
EfficientNet使用移动倒置瓶颈(MBConv)层,这是深度可分离卷积和倒置残差块的组合。此外,模型架构还使用了挤压和激励(SE)优化,以进一步提高模型的性能。
MBConv层是EfficientNet架构的基本构建块。它受到MobileNetV2中的倒置残差块的启发,但进行了一些修改。MBConv层以深度卷积开始,然后是一个点卷积(1x1卷积),扩展通道数,最后是另一个将通道数减少回原始数量的1x1卷积。这种瓶颈设计允许模型在学习的同时保持高度的表示能力。
除了MBConv层,EfficientNet还包含了SE块,这有助于模型学习关注重要特征并抑制不太相关的特性。SE块使用全局平均池化将特征图的空间维度减少到单个通道,然后是两个全连接层。这些层允许模型学习通道间的特征依赖性,并创建注意力权重,这些权重与原始特征图相乘,强调重要信息。
EfficientNet有多种变体,如EfficientNet-B0、EfficientNet-B1等,具有不同的缩放系数。每种变体代表了模型大小和准确性之间的不同权衡,使用户能够根据特定需求选择合适的模型变体。
上图中的红线突出显示了EfficientNet曲线。水平轴表示模型大小,垂直轴代表准确率。只需看一眼这张图,就足以强调EfficientNet的强大之处。在准确性方面,EfficientNet以0.1%的优势超越了其前任,略微超过了前一个最先进的模型GPipe。值得注意的是,EfficientNet实现这一准确性的方法。虽然GPipe依赖于556百万个参数,但EfficientNet仅用66百万个参数就实现了同样的准确性——这是一个巨大的对比。在实际场景中,边际的0.1%准确性提升可能不会被注意到。然而,速度的显著提高显著增强了网络的可用性及其在现实世界工业应用中的潜力。