怎么建网站 手机版,建设网站的企业公司,网站如何做网站征求意见专栏,做网站用哪个服务器背景#xff1a;
MobileNet v1中DW卷积在训练完之后部分卷积核会废掉#xff0c;大部分参数为“0”
MobileNet v2网络是由Google团队在2018年提出的#xff0c;相比于MobileNet v1网络#xff0c;准确率更高#xff0c;模型更小
网络亮点#xff1a;
Inverted Residu…背景
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卷积核、ReLU6t为扩展因子1*1卷积核的个数为tk输出h*w*tk
2.第二层输入等于第一层输出使用DW卷积卷积核大小为3*3步距为s给定输出的特征矩阵深度和输入特征矩阵的深度相同MobileNet v1中提到过DW卷积由于步距为s输出特征矩阵的高宽缩减为和
3.第三层的1*1卷积为降维操作所采用的卷积核个数为
ReLU6激活函数 ReLU激活函数的改进版诸如此类的改进函数还有很多类似Leakey ReLU等
在普通的ReLU激活函数中当输入值小于零默认全置零当输入值大于零不对值进行处理
在ReLU6激活函数中当输入值小于零默认全置零在06区间不会改变输入值当输入值大于“6”将输入值全部置为“6”
作用
①避免网络出现激活值过大的情况稳定训练过程
②适合量化
③保留非线性特征
④提高训练速度
对比
原始的残差结构是先降维再升维而倒残差结构是先升维再降维
在普通残差结构中使用的ReLU激活函数而倒残差结构采用的是ReLU6激活函数
shortcut
在倒残差结构中并不是每一个倒残差结构都有shortcut捷径分支在论文中提到当stride1时有捷径分支stride2时没有捷径分支
分析得知上述表达有误当stride1且输入特征矩阵与输出特征矩阵shape相同时才有shortcut连接若不满足都没有shortcut
倒残差结构的作用
1. 高效的特征提取结合深度卷积和逐点卷积能够有效提取特征同时减少计算复杂度。
2. 减少梯度消失问题通过直接将输入特征传递到输出减轻了深层网络中的梯度消失问题有助于更快收敛。
3. 灵活的通道扩展通过设置 expand_ratio可以灵活调整特征维度增强模型的表达能力同时避免不必要的计算。
4. 内存和计算效率尽管在某些情况下会增加参数量但整体上倒残差结构通常能保持相对较低的内存和计算需求适合在移动设备上运行。
5. 增强非线性变换通过激活函数倒残差结构能够引入非线性使得模型可以学习更复杂的特征关系。
6. 适应性强能够根据不同任务的需求调整网络的复杂性和参数设置适应多种应用场景。
Linear Bottlenecks
对于倒残差结构的最后一个1*1卷积层使用线性激活函数而不是ReLU激活函数
线性激活函数使用原因 在原论文中作者做了相关实验。输入是二维的矩阵channel为1分别采用不同维度的Matrix矩阵对其进行变换变换到一个更高的维度再使用ReLU激活函数得到输出值再使用矩阵的逆矩阵将输出矩阵还原为2D特征矩阵
当Matrix 维度为2和3时通过观察下图可以发现二维三维的特征矩阵丢失了很多信息 但随着Matrix 的维度不断加深丢失的信息越来越少 总结
ReLU激活函数会对低维特征信息造成大量损失而对于高维特征造成的损失小
倒残差结构为“两边细中间粗”在中间时为一个低维特征向量需要使用线性函数替换ReLU激活函数避免信息损失
网络结构 t扩展因子
c输出特征矩阵的深度channel
nbottleneck论文中的倒残差结构重复的次数
s步距只代表每一个block每一个block由一系列bottleneck组成的第一层bottleneck的步距其他的步距都为1 当stride1时输入特征矩阵的深度为64输出特征矩阵的深度为96若有捷径分支捷径分支的输出的特征矩阵分支深度为64但是通过主分支的一系列操作所输出的深度为96很明显深度时不同的无法使用加法操作也就无法使用shortcut
对于上述提到的block的第一层一定是没有shortcut的但对于第二层stride1表中的s只针对第一层其他层的stride1输入特征矩阵深度等于上一层输出特征矩阵的深度为96输出特征矩阵深度为96因此在bottleneck第二层输出特征矩阵的shape和输入特征矩阵的shape相同此时可以使用shortcut分支
在网络的最后一层为一个卷积层就是一个全连接层k为分类的个数
性能分析
图像分类 准确率模型参数都有一系列的提升基本上达到了实时的效果
目标检测 将MobileNet与SSD联合使用将SSD中的一些卷积换为DW卷积和PW卷积相比原始的模型有一些提升但对比MNet v1却差了一些
总结
基本实现了在移动设备或嵌入式设备上跑深度学习模型也将研究和日常生活紧密结合