Google论文解读:轻量化卷积神经网络MobileNetV2 | PaperDaily #38

简介:

本文是 Google 团队在 MobileNet 基础上提出的 MobileNetV2,其同样是一个轻量化卷积神经网络。目标主要是在提升现有算法的精度的同时也提升速度,以便加速深度网络在移动端的应用。

如果你对本文工作感兴趣,点击底部的阅读原文即可查看原论文。

关于作者:陈泰红,小米高级算法工程师,研究方向为人脸检测识别,手势识别与跟踪。

  • 论文 | Inverted Residuals and Linear Bottlenecks: Mobile Networks forClassification, Detection and Segmentation
  • 链接 | https://www.paperweekly.site/papers/1545
  • 源码 | https://github.com/Randl/MobileNet2-pytorch/
论文动机

很多轻量级的 CNN 模型已经在便携移动设备应用(如手机):MobileNet、ShuffleNet 等,但是效果差强人意。

本文是 Google 团队在 MobileNet 基础上提出的 MobileNetV2,实现分类/目标检测/语义分割多目标任务:以 MobileNetV2 为基础设计目标检测模型 SSDLite(相比 SSD,YOLOv2 参数降低一个数量级,mAP 无显著变化),语义分割模型 Mobile DeepLabv3。

MobileNetV2 结构基于 inverted residual。其本质是一个残差网络设计,传统 Residual block 是 block 的两端 channel 通道数多,中间少,而本文设计的 inverted residual 是 block 的两端 channel 通道数少,block 内 channel 多,类似于沙漏和梭子形态的区别。另外保留 Depthwise Separable Convolutions。

论文模型在 ImageNet classification,COCO object detection,VOC image segmentation 等数据集上进行了验证,在精度、模型参数和计算时间之前取得平衡

Preliminaries, discussion and intuition

1. Depthwise Separable Convolutions

首先对每一个通道进行各自的卷积操作,有多少个通道就有多少个过滤器。得到新的通道 feature maps 之后,这时再对这批新的通道 feature maps 进行标准的 1×1 跨通道卷积操作。

标准卷积操作计算复杂度

54a49a284695296b4128fc9ffe54a444a454bd09

,Depthwise Separable Convolutions 计算复杂度

173fac6046601417c35b42f3d371596e63753938

,复杂度近似较少近似 k*k。

2. Linear Bottlenecks

本篇文章最难理解的是这部分,论文中有两个结论:

If the manifold of interest remains non-zero volume after ReLU transformation, it corresponds to a linear transformation.

感兴趣区域在 ReLU 之后保持非零,近似认为是线性变换。

ReLU is capable of preserving complete information about the input manifold, but only if the input manifold lies in a low-dimensional subspace of the input space.

ReLU 能够保持输入信息的完整性,但仅限于输入特征位于输入空间的低维子空间中。

对于低纬度空间处理,论文中把 ReLU 近似为线性转换。

3. Inverted residuals

inverted residuals 可以认为是 residual block 的拓展。在 0<t<1,其实就是标准的残差模块。论文中 t 大部分为 6,呈现梭子的外形,而传统残差设计是沙漏形状。

模型结构

论文提出的 MobileNetV2 模型结构容易理解,基本单元 bottleneck 就是 Inverted residuals 模块,所用到的 tricks 比如 Dwise,就是 Depthwise Separable Convolutions,即各通道分别卷积。表 3 所示的分类网络结构输入图像分辨率 224x224,输出是全卷积而非 softmax,k 就是识别目标的类别数目。

1. MobileNetV2

MobileNetV2 的网络结构中,第 6 行 stride=2,会导致下面通道分辨率变成14x14,从表格看,这个一处应该有误。

0d81eda742bf793af0c9dd9e2a523135bf8a3a2a

2. MobileNetV1、MobileNetV2 和 ResNet 微结构对比


3ec872278bbff15e9a2e80ebdf7a519aaf3cf949

可以看到 MobileNetV2 和 ResNet 基本结构很相似。不过 ResNet 是先降维(0.25 倍)、提特征、再升维。而 MobileNetV2 则是先升维(6 倍)、提特征、再降维。

实验

1. ImageNet Classification

表 3 在 ImageNet 数据集对比了 MobileNetV1、ShuffleNet,MobileNetV2 三个模型的 Top1 精度,Params 和 CPU(Google Pixel 1 phone)执行时间。MobileNetV2 运行时间 149ms,参数 6.9M,Top1 精度 74.7。

在 ImageNet 数据集,依 top-1 而论,比 ResNet-34,VGG19 精度高,比 ResNet-50 精度低。

aaf77aa06e61b242735e6eed4aaa50264b97dbcd

2. Object Detection

论文以 MobileNetV2 为基本分类网络,实现 MNet V2 + SSDLite,耗时 200ms,mAP 22.1,参数只有 4.3M。相比之下,YOLOv2 mAP 21.6,参数50.7M。模型的精度比 SSD300 和 SSD512 略低。

3. Semantic Segmentation

当前 Semantic Segmentation 性能最高的架构是 DeepLabv3,论文在 MobileNetV2 基础上实现 DeepLabv3,同时与基于 ResNet-101 的架构做对比,实验效果显示 MNet V2 mIOU 75.32,参数 2.11M,而 ResNet-101 mIOU80.49,参数 58.16M,明显 MNet V2 在实时性方面具有优势。

结论

CNN 在 CV 领域突破不断,但是在小型化性能方面却差强人意。目前 MobileNet、ShuffleNet 参数个位数(单位 M)在 ImageNet 数据集,依 top-1 而论,比 ResNet-34,VGG19 精度高,比 ResNet-50 精度低。实时性和精度是一对欢喜冤家。

本文最难理解的其实是 Linear Bottlenecks,论文中用很多公式表达这个思想,但是实现上非常简单,就是在 MobileNetV2 微结构中第二个 PW 后无 ReLU6。对于低维空间而言,进行线性映射会保存特征,而非线性映射会破坏特征。


原文发布时间为:2018-02-1

本文作者:陈泰红

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

相关文章
|
17天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
10天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
21天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
25 2
|
21天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
27 1
|
24天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
71 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
11天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
27 0
|
14天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
20天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
22天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。

热门文章

最新文章