IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> MobileNet系列(2):MobileNet-V2 网络详解 -> 正文阅读

[人工智能]MobileNet系列(2):MobileNet-V2 网络详解

MobileNet-V2论文:Inverted Residuals and Linear Bottlenecks, MobileNet-V2网络是由google团队在2018年提出的,相比MobileNetV1网络,准确率更高,模型更小

网络中的亮点

  • Inverted Residuals (倒残差结构)
  • Linear Bottlenecks

Inverted Residuals (倒残差结构)

普通的残差结构

Resnet 网络提供的残差结构,如下图:
在这里插入图片描述

  • 首先对输入特征矩阵,通过1x1卷积进行压缩,降低channel的大小
  • 然后通过3x3的卷积核进行卷积处理
  • 最后通过1x1的卷积核来扩充channel

这样就形成了,两头大中间小的瓶颈结构

倒残差结构

MobileNet-V2网络采用的是倒残差结构,网络结构如下图:
在这里插入图片描述

  • 首先对输入特征矩阵,通过1x1卷积进行升维,增加channel的大小
  • 然后通过3x3DW卷积核进行卷积处理
  • 最后通过1x1的卷积核进行降维

可以看出:普通的残差结构先通过1x1卷积进行降维,最后通过1x1卷积升维倒残差结构刚好相反,首先通过1x1卷积进行升维,最后通过1x1卷积进行降维,所以它和我们普通的残差结构正好是相反的,因此取名(Inverted residual block)倒残差结构。

在这里插入图片描述
还有一个要注意的是:普通残差结构使用的激活函数是relu,但倒残差结构使用的是relu6激活函数。
在这里插入图片描述

ReLU6激活函数
  • 对于ReLU激活函数,当我们的输入值小于0的时候,默认都将它置0.当输入值大于0的时候,输出值跟输入值一样,不做处理
  • 对于ReLU6激活函数,同样当我们的输入值小于0的时候,默认都将它置0.在[0,6]区间内我们也同样不会改变它的输入值,但是当输入值大于6的时候,就会将输出值置为6.

Linear Bottlenecks

原文中,倒残差解雇最后1x1卷积层,它使用了线性激活函数,而不是我们之前所说的ReLU激活函数。为什么要这么做呢,在原论文中作者进行了相关实验。
在这里插入图片描述
假设我们输入的是二维矩阵,channel=1.分别使用不同的矩阵 T T T将它变换到不同维度上,在使用ReLU激活函数进行输出,然后在使用逆矩阵 T ? 1 T^{-1} T?1将它还原为2D的特征矩阵。当我们的矩阵 T T T的维度是2和3的时候对应的是图中output/dim=2output/dim=3,这两幅图。通过这两幅图我们可以知道当还原为2维矩阵会丢失很多信息。但随着矩阵 T T T维度不断加深丢失的信息就越来越少。

通过该实验可以了解ReL激活函数对低纬特征造成大量损失, 由于我们倒残差结构是两头细中间粗的结构,所以输出的时候是一个低纬的特征。为了避免信息的丢失我们就需要使用一个线性的激活函数替代ReLU激活函数。

在这里插入图片描述
在这里插入图片描述
对于倒残差结构,首先通过1x1卷积,它的激活函数为ReLU6;紧接着通过DW卷积,卷积核为3x3,它的激活函数为Relu6,最后在通过再通过1x1的卷积处理,使用的是Linear激活函数而不是ReLU6激活函数,也就是对应于表中所给的每一层信息。

首先对于输入特征为h x w x k(高、宽、channel), 使用1x1的卷积核对它进行升维处理,经过升维后,输出特征矩阵的channel变为tk,t表示扩充因子。紧接着第二层,它的输入对应于上一层的输出h x w x tk,使用DW卷积,卷积核为3x3步距为s,激活函数为ReLU6,经过DW卷积,它不会改变channel的大小,输出的channel和输入是一样的,同时由于我们步距为s,因此输出特征矩阵h,w变为原来的1/s倍。最后通过1x1的卷积层,使用Linear激活函数,进行降维操作,降维后输出的channel个数为 k ′ k^{'} k.

注意: 在MobileNetV2版本中,它的倒残差结构,并不是每个倒残差结构都有shortcut分支(捷径分支),只有当stride=1且输入特征矩阵与输出特征矩阵的shape相同时才有shortcut分支。

MobileNet-V2 网络结构

在这里插入图片描述
网络结构图图中参数说明:

  • t是扩展因子
  • c是输出特征矩阵深度channel
  • n是bottleneck的重复次数, bottleneck这里指倒残差结构
  • s是步距

其中这里的s代表的是每个block(多个bottleneck组成)第一层bottleneck的步距其他都是为1的),比如这里表中第3行对应n=2的时候,对应的bottleneck需要重复2遍的,对它而言,它的第一层bottleneck步距是为2的,它的第二层步距s是等于1的。
在这里插入图片描述
另外需要注意的是,在网络结构图中第一个bottleneck,它这里的t是等于1的,也就是说扩展因子为1,就是说第一层卷积层对输入特征的深度是没有做调整的,并且这层的步距s=1 tensorflow pytorch官方实现是没有使用1x1的卷积的,直接使用后面的DW卷积的,因此第一个bottleneck中的1x1卷积是可以不要的。

举例说明:只有当stride=1且输入特征矩阵与输出特征矩阵的shape相同时才有shortcut分支。
在这里插入图片描述
对于图中红框标出的block,总共有3个bottleneck,它的第一层肯定是没有shutcut分支的,因为输入特征channel64,输出channel为96,输入输出特征矩阵channel是不相等的,没法使用shutcuts的add操作。对于第二层,它的步距还是等于1的,我们说过这里的步距s只针对第一层,其他层s都为1.然后它的输入特征矩阵是上一层的输出特征矩阵的channel,即channel为96,然后它的输出特征也是等于96的,因此输入输出的特征矩阵尺寸和channel都一样,因此可以通过shortcuts进行相加。

最后一层是一个卷积层1x1x1280,这里的卷积层就是一个全连接层。这里的k对应于我们的分类个数

网络的性能对比

MobileNet-V2 论文中给出了网络性能对比

分类任务

在这里插入图片描述
对于MobieNet V2 Top1准确率为72.0,相对于MobieNet V1准确率为70.6,准确率提升了。同时参数,运算量和运算时间都明显比MobieNet V1更加优秀。在cpu上MobieNet V2 运算时间只有75ml,基本上可以实现在移动设备上实时推理效果。

当卷积核倍率因子为1.4时,MobieNet V2 TOP1准确率达到74.7,比论文中其他网络的准确率高

目标检测论文

在这里插入图片描述
在论文中,将MobileNet V2与我们的SSD进行联合使用的,也就是说将我们MobileNet当作我们的backbone,并将SSD当中的一些卷积层也换成了我们深度可分(DW+PW卷积,相比于最原始的 SSD300、SSD512,YOLOV2,以及MobileNet V1+SSD,它的准确率为22.1%比YOLO V2要好,其中参数,运算量,运算时间都是最优的,在CPU中检测时间达到了200ms.随着MobieNet网络的提出,实现了在移动识别、嵌入式设备中跑我们的模型了。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:06:59  更:2022-06-25 18:09:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:34:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码