MAI(二):图像分类&常用深度预测编码器backbone解析

RocheL
Aug 5, 2022
Last edited: 2022-8-19
type
Post
status
Published
date
Aug 5, 2022
slug
depth-backbone
summary
常用深度预测编码器backbone解析
tags
AI
Course
category
技术分享
icon
password
Property
Aug 5, 2022 01:41 AM
URL
主要是深度预测挑战赛试了一些backbone,写下来备忘
深度预测领域,通常使用图像分类任务中较好的模型作为自身编码器backbone,本文主要解析mobilenet,resnet,efficientnet等网络结构细节
MobileNet
MobileNet-V1
- Depthwise Convolution
- 增加了超参数


DW卷积、PW卷积连用代替传统卷积,称为深度可分离卷积(Depthwise Separable Conv),理论计算量是普通卷积的到(卷积核大小3*3)。
超参可控制所有层的卷积核个数(filter or output_channel),超参控制开始时的下采样倍率

优化过程中舍弃了部分通道,导致DW卷积的卷积核参数归零,V2对此有改善。
MobileNet-V2

- Inverted Residual(倒残差结构)
- Linear Bottlenecks


以前的通道数是两头大中间小的瓶颈结构,倒残差结构反过来,变成两头小中间大,同时激活函数改为RELU6,中间卷积改为DW。动机是作者发现RELU激活函数作用于低维(低通道数)的特征图会损失掉很多信息。(做了一个featuremap矩阵乘到低维或高维,relu后再广义逆矩阵乘回来看是否保持不变的实验)



V2网络结构图如右,一个block由多个bottleneck构成,t是bottleneck中第一次1*1卷积升维之后的通道个数,n是block中bottleneck的重复次数,首尾特征图相同时做shortcut,性能:

实测确实有时候搭配decoder做任务时还不如v1,大道至简吧((
MobileNet-V3

- 更新block(bottleneck)结构,命名为bneck
- NAS搜索超参(Neural Architecture Search)
- 重新设计了部分耗时结构



SE模块即下图下方的俩FC的部分,DW之后的结果不再直接过1*1输出,而是先过一个针对通道的平均池化,变成一个长为通道数的向量,然后过一个全连接(神经元是通道数的),然后再过一个全连接(神经元等于通道数),得到一个长为通道数的向量,我们认为这个向量每个值都代表对对应通道赋的权值,用这个权值跟原featuremap的对应层相乘后得到SE的输出
激活函数,swish函数性能很好,但是计算求导复杂,并且对移动端量化部署不友好,因此设计了h(hard)-swish激活函数优化近似,简称为HS.
重新设计耗时结构如右图,对NAS结果优化




exp size(expand size)指第一个1*1卷积升维后的通道数,#out指最后一个1*1输出的通道,RE指用RELU激活,HS指用Hard-Swish激活;第一个bneck不升维,也不降维,所以没有首尾两个1*1卷积。
EfficientNet
EfficientNet-V1
看懂了mobilenetv3再看efficientnetv1很简单,开摆了xdm(
EfficientNet-V2
- Catalog
- About
0%