目录
2. Squeeze-and-Excitation (SE) 模块
MobileNetV3:轻量级深度学习网络的新突破
引言
在深度学习领域,随着移动设备和嵌入式系统的普及,轻量级网络因其高效的计算能力和较低的资源消耗而备受青睐。MobileNet系列作为轻量级网络的代表,自2017年推出以来,一直在不断进化。2019年,谷歌发布了MobileNetV3,这是该系列的最新成员,通过结合最新的神经架构搜索技术和网络设计原则,实现了在保持模型大小和计算效率的同时,显著提高了模型的性能。
MobileNetV3的关键特点
1. 硬激活函数
MobileNetV3引入了两种新的硬激活函数:h-swish和h-sigmoid。这些函数不仅提供了良好的非线性特性,而且计算成本更低,有助于提高模型的运行效率。h-swish函数是对传统swish激活函数的简化,它通过乘以一个ReLU6激活的线性变换来实现,而h-sigmoid则是对传统sigmoid函数的近似,使用ReLU6函数来实现。这些硬激活函数的优势在于它们可以轻松地在硬件上实现,并且计算量小,适合于移动和嵌入式设备。
2. Squeeze-and-Excitation (SE) 模块
SE模块是一种注意力机制,它通过重新校准通道特征的重要性,增强了模型对有用特征的识别能力。在MobileNetV3中,SE模块通过全局平均池化来压缩空间维度,然后通过两个全连接层来学习通道的重要性权重。这种方法允许网络更加关注于重要的特征,并且可以提高模型的性能,同时不会显著增加计算负担。SE模块的引入,使得MobileNetV3在保持轻量化的同时,能够更好地捕捉到图像中的关键信息。
3. 深度可分离卷积和线性瓶颈
MobileNetV3继续采用深度可分离卷积,这种卷积方式将标准卷积分解为深度卷积和逐点卷积,有效减少了计算量。深度卷积能够捕捉到局部的特征,而逐点卷积则用于组合这些特征。同时,线性瓶颈结构在保持模型表达能力的同时减少了特征维度,进一步降低了模型的复杂度。这种设计使得MobileNetV3在处理高分辨率图像时更加高效,同时保持了较小的模型大小。
4. 神经架构搜索 (NAS)
MobileNetV3的设计过程中,谷歌利用神经架构搜索技术,自动化地优化网络架构,选择最优的超参数和模块组合,以适应不同的计算环境。NAS技术通过搜索大量的网络架构来找到最佳的配置,这种方法可以显著提高网络的性能,并且可以针对特定的硬件平台进行优化。MobileNetV3的NAS过程不仅提高了模型的效率,而且还使得模型能够更好地适应不同的应用场景。
5. 两个版本:Large和Small
为了满足不同的应用需求,MobileNetV3推出了两个版本,Large和Small。Large版本适用于需要较高准确率但计算资源相对充足的环境,例如高端智能手机和平板电脑。而Small版本则更加轻量,适合资源受限的环境,如低端手机和物联网设备。这两个版本的设计使得MobileNetV3能够灵活地应用于不同的设备和场景,为用户提供了更多的选择。
6. NetAdapt算法
MobileNetV3使用了NetAdapt算法来确定卷积核和通道的最佳数量,以实现最佳的性能和效率。NetAdapt算法通过模拟人类设计网络的过程,自动地调整网络的容量,以达到预定的性能目标。这种方法不仅减少了人为设计的复杂性,而且还能够确保网络在不同的设备上都能达到最优的性能。
7. 继承V1和V2的优点
MobileNetV3继承了V1的深度可分离卷积和V2的线性瓶颈结构,并引入了SE通道注意力结构,结合了前两代的优点。深度可分离卷积在V1中已经被证明是一种高效的卷积方式,而线性瓶颈结构则在V2中提高了模型的表达能力。SE模块的引入进一步提高了模型的性能,使得MobileNetV3在保持轻量化的同时,能够更好地捕捉到图像中的关键信息。