首页 > 其他分享 >MobileNetv2网络详解

MobileNetv2网络详解

时间:2024-10-30 09:17:23浏览次数:7  
标签:函数 MobileNetv2 矩阵 网络 残差 卷积 详解 激活 特征

背景:

MobileNet v1中DW卷积在训练完之后部分卷积核会废掉,大部分参数为“0”

MobileNet v2网络是由Google团队在2018年提出的,相比于MobileNet v1网络,准确率更高,模型更小

网络亮点:

Inverted Residuals(倒残差结构)

Linear Bottlenecks

倒残差结构:

Residual Block:

ResNet网络中提出了一种残差结构

1.输入特征矩阵采用1*1的卷积核来对特征矩阵做压缩,减少输入特征矩阵的channel

2.采用3*3的卷积核做卷积处理

3.采用1*1的卷积扩充channel

形成两头大,中间小的瓶颈结构

Inverted Residual Block:

1.采用1*1的卷积核升维,让channel变得更深

2.通过卷积核大小为3*3的DW卷积操作进行卷积

3.通过1*1的卷积进行降维

结构图:

过程:

1.通过大小为1*1的卷积,激活函数为ReLU6

2.通过DW卷积,卷积核大小为3*3,激活函数为ReLU6

3.通过卷积核大小为1*1的卷积处理,使用线性激活

1.h*w*k的输入,经过1*1卷积核、ReLU6(t为扩展因子,1*1卷积核的个数为tk),输出h*w*(tk)

2.第二层输入等于第一层输出,使用DW卷积,卷积核大小为3*3,步距为s(给定),输出的特征矩阵深度和输入特征矩阵的深度相同(MobileNet v1中提到过DW卷积),由于步距为s,输出特征矩阵的高宽缩减为\frac{h}{s}\frac{w}{s}

3.第三层的1*1卷积为降维操作,所采用的卷积核个数为{k}'

ReLU6激活函数:

ReLU激活函数的改进版,诸如此类的改进函数还有很多,类似Leakey ReLU等

在普通的ReLU激活函数中,当输入值小于零,默认全置零;当输入值大于零,不对值进行处理

在ReLU6激活函数中,当输入值小于零,默认全置零;在(0,6)区间,不会改变输入值;当输入值大于“6”,将输入值全部置为“6”

作用:

①避免网络出现激活值过大的情况,稳定训练过程

②适合量化

③保留非线性特征

④提高训练速度

对比:

原始的残差结构是先降维再升维,而倒残差结构是先升维再降维

在普通残差结构中使用的ReLU激活函数,而倒残差结构采用的是ReLU6激活函数

shortcut:

在倒残差结构中,并不是每一个倒残差结构都有shortcut(捷径)分支,在论文中提到当stride=1时有捷径分支,stride=2时没有捷径分支

分析得知上述表达有误:当stride=1且输入特征矩阵与输出特征矩阵shape相同时,才有shortcut连接;若不满足都没有shortcut

倒残差结构的作用:

1. 高效的特征提取:结合深度卷积和逐点卷积,能够有效提取特征,同时减少计算复杂度。

2. 减少梯度消失问题:通过直接将输入特征传递到输出,减轻了深层网络中的梯度消失问题,有助于更快收敛。

3. 灵活的通道扩展:通过设置 expand_ratio,可以灵活调整特征维度,增强模型的表达能力,同时避免不必要的计算。

4. 内存和计算效率:尽管在某些情况下会增加参数量,但整体上,倒残差结构通常能保持相对较低的内存和计算需求,适合在移动设备上运行。

5. 增强非线性变换:通过激活函数,倒残差结构能够引入非线性,使得模型可以学习更复杂的特征关系。

6. 适应性强:能够根据不同任务的需求,调整网络的复杂性和参数设置,适应多种应用场景。

Linear Bottlenecks:

对于倒残差结构的最后一个1*1卷积层,使用线性激活函数而不是ReLU激活函数

线性激活函数使用原因:

在原论文中,作者做了相关实验。输入是二维的矩阵,channel为1,分别采用不同维度的Matrix(矩阵)T对其进行变换,变换到一个更高的维度;再使用ReLU激活函数得到输出值;再使用T矩阵的逆矩阵T^{-1},将输出矩阵还原为2D特征矩阵

当Matrix T维度为2和3时,通过观察下图可以发现,二维三维的特征矩阵丢失了很多信息

但随着Matrix T的维度不断加深,丢失的信息越来越少

总结:

ReLU激活函数会对低维特征信息造成大量损失,而对于高维特征造成的损失小

倒残差结构为“两边细,中间粗”,在中间时为一个低维特征向量,需要使用线性函数替换ReLU激活函数,避免信息损失

网络结构:

t:扩展因子

c:输出特征矩阵的深度,channel

n:bottleneck(论文中的倒残差结构)重复的次数

s:步距,只代表每一个block(每一个block由一系列bottleneck组成)的第一层bottleneck的步距,其他的步距都为1

当stride=1时:输入特征矩阵的深度为64,输出特征矩阵的深度为96;若有捷径分支,捷径分支的输出的特征矩阵分支深度为64,但是通过主分支的一系列操作,所输出的深度为96,很明显深度时不同的,无法使用加法操作,也就无法使用shortcut

对于上述提到的block的第一层一定是没有shortcut的,但对于第二层,stride=1(表中的s只针对第一层,其他层的stride=1),输入特征矩阵深度等于上一层输出特征矩阵的深度,为96;输出特征矩阵深度为96,因此在bottleneck第二层输出特征矩阵的shape和输入特征矩阵的shape相同,此时可以使用shortcut分支

在网络的最后一层为一个卷积层,就是一个全连接层,k为分类的个数

性能分析:

图像分类:

准确率,模型参数都有一系列的提升,基本上达到了实时的效果

目标检测:

将MobileNet与SSD联合使用,将SSD中的一些卷积换为DW卷积和PW卷积,相比原始的模型有一些提升,但对比MNet v1却差了一些

总结:

基本实现了在移动设备或嵌入式设备上跑深度学习模型,也将研究和日常生活紧密结合

标签:函数,MobileNetv2,矩阵,网络,残差,卷积,详解,激活,特征
From: https://blog.csdn.net/m0_61595251/article/details/143329443

相关文章

  • 网络安全(黑客)——自学2024
    ......
  • 网络安全(黑客)——自学2024
    ......
  • 帝国CMS中打印模板制作教程详解
    调用打印页面链接:模板中添加打印页面链接:[!--news.url--]e/DoPrint/?classid=[!--classid--]&id=[!--id--]指定使用打印模板的链接:[!--news.url--]e/DoPrint/?classid=[!--classid--]&id=[!--id--]&tempid=打印模板ID管理打印模板:登录后台,选择“模板......
  • 计算机网络 第三章: 共享式以太网_网络适配器和MAC地址
    文章目录网络适配器MAC地址概述IEEE802局域网的MAC地址格式IEEE802局域网的MAC地址发送顺序以太网(Ethernet)以曾经被假想的电磁波传播介质——以太(Ether)来命名。以太网最初采用无源电缆(不包含电源线)作为共享总线来传输帧,属于基带总线局域网,传输速率为2.94Mb/s。......
  • 什么叫做网络编程
    网络编程是一种编程实践,主要关注在网络环境中进行数据交换的应用程序的开发,包括了如何使用和理解各种协议、数据传输方式和网络架构等内容,以在不同计算机或系统间实现有效的信息交换。套接字是网络编程的基础,是网络上运行的程序之间进行数据交换的一种方式。什么叫做网络编程......
  • 【linux网络编程】| socket套接字 | 实现UDP协议聊天室
        前言:本节内容将带友友们实现一个UDP协议的聊天室。主要原理是客户端发送数据给服务端。服务端将数据再转发给所有链接服务端的客户端。所以,我们主要就是要实现客户端以及服务端的逻辑代码。那么,接下来开始我们的学习吧。    ps:本节内容建议了解so......
  • 20222428 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1本周学习内容1.1.1后门实践中的基本概念netcat(瑞士军刀):用于监听、探测端口、正向连接、反向连接、文件传输。socat:netcat的加强版(多了SSL连接等功能)。Meterpreter工具:Metadploit框架中的扩展模块,是生成后门的工具。VeilEvasion:生成免杀的工具。1.1.2......
  • 数据结构————map,set详解
    今天带来map和set的详解,保证大家分清楚一,概念map和set是一种专门用来搜索的容器或数据结构map能存储两个数据类型,我们称之为<key-value>模型set只能存储一个数据类型,我们称之为纯<key>模型它们的效率都非常非常高,我们来一个一个了解。二,详解map1,map的说明map是一个接......
  • 第二届计算机网络技术与电子信息工程国际学术会议(CNTEIE 2024) 2024 2nd Internationa
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍第二届计算机网络技术与电子信息工程国际学术会议(CNTEIE2024)将于2024年12月6-8日......
  • 20222413 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1学习总结本周的学习内容为恶意代码的概念、发展历史以及分析技术。我知晓了恶意代码的不同类型及其典型案例、攻击方式和危害。同时我了解了静态分析和动态分析所采用的技术方法。1.2实践内容(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或......