图像分类简介

图像分类

ResNet

1.介绍

image-20230115154150218

ResNet提出的亮点

  • 超深的网络结构
  • 提出residual模块
  • 使用Batch Normalization加速训练

2.网络太深会出现的问题

image-20230115154418739

  • 梯度消失梯度爆炸

假设梯度为小于1的数,每向前传播一层,都要乘以一个小于1的误差梯度,越陈越小,几近于0

反过来>1,这爆炸

解决方法:标准化,权重初始化,BN

  • 退化问题

    解决:使用残差结构

image-20230115154853996

3.Residual结构

image-20230115154913300

使用了1x1卷积显著降低了参数,从100多万降低到7万左右。

4.模型架构

image-20230115155332387

image-20230115155413910

ResNet代码解读

看着结构图,读代码

基于迁移学习训练可以更快的收敛

Tips

padding same:卷积后的输出与输入size保持一致

image-20230115174140485

5.Residual中的虚线

实线和虚线有何不同

将主干分支和shortcut的feature map的shape统一

实线:输入和输出的shape相同

虚线:输入和输出的shape不相同

普通残差

image-20230115155706954

image-20230115155818734

更深的残差

image-20230115161936735

image-20230115161942008

image-20230115161958764

虚线也有不同
18,34层

image-20230115162340709

50,101层

image-20230115162404738

这里的conv2对应的第一个虚线残差层仅调整特征矩阵的深度,高和宽不变

conv3、4不仅的第一个虚线残差层仅调整特征矩阵的深度,高和宽也变化

image-20230115174806940

BN

使得一批feature map满足均值为0,方差为1的分布规律

image-20230115162716220

image-20230115162907632

https://blog.csdn.net/qq_37541097/article/details/104434557

迁移学习

image-20230115163658240

image-20230115163904853

image-20230115163856978

MbileNetv1、v2

1.1.为什么会出现mobileNet呢?

传统卷积神经网络,内存需求大、运算量大导致无法在移动设备以及嵌入式设备上运行

image-20230115182847768

网络中的优点:

  • Depthwise Convolution(深度可分离卷积):大大提高运算速度
  • 增加超参数α,β

1.2.DW卷积

  • 传统卷积

卷积核channel=输入特征矩阵channel

输出特征矩阵channel的卷积核个数

  • DW卷积

卷积核channel=1

输入特征矩阵channel=卷积核个数=输出特征矩阵channel

PW卷积

  • 本质是1x1卷积核,改变输出深度罢了

image-20230115192434734

image-20230115192441874

Depthwise Convolution就是将两个卷积融合减少运算量

理论上可以减少到9分之一

image-20230115192718873

1.3.超参数α,β

image-20230115192819525

α:卷积核个数的倍率

β:输入照片的尺度

但是depthwise部分的卷积核容易费掉,即卷积核参数大部分为零。由此提出了MobileNetV2版本

image-20230115193244173

特点

2.1Inverted Residuals(倒残差结构)

2.2Linear Bottlenecks

2.1Inverted Residuals(倒残差结构)

image-20230115193309553

倒残差结构使用的将低维数据转化为高维数据,这样在使用Relu6函数的时候信息损失的就不多了,最后输出为低维数据的时候,又需要使用线性激活函数

2.2Relu6激活函数

image-20230115193326696

ReLU激活函数对低维特征信息照成大量损失

image-20230115193420041

2.3倒残差结构图

image-20230115193652122

2.4MobileNetv2结构图

image-20230115193757721

首先经过一个卷积层,再连续经过多个倒残差结构(n是个数),1个1x1卷积层,一个平均池化下采样层,一个1x1的卷积层

训练效果

image-20230115193914841

代码说明

结合这两个结构图

image-20230115200127514

image-20230115200159955

理解代码

MObileNetV3

image-20230115202404827

  1. 更新Block(bneck)
  2. 使用NAS搜索参数(Neural Architecture Search
  3. 重新设计耗时层结构

相比v2速度更快

1.Block

  1. 加入SE机制
  2. 更新了激活函数

image-20230115202812326

​ 相比V21模型,就是再中间加入了SE模块

DW卷积核PW卷积

SE通道注意力

image-20230115205440546

SE主要是找出了feature map参数的权重,以便更好地调整参数

image-20230115205635637

关键在于最中间的池化,接FC1,FC2,最后又输出权重矩阵,分别和原特征矩阵相乘进行了更新

FC1的个数为平均池化后channel的四分之一

FC2的个数为原来的channel的个数,使用的是hard-sodmig

2.重新设计耗时层结构

image-20230115210120614

重新设计激活函数

image-20230115210611824

swish激活函数

因为其缺点所以作者使用了H-swish函数,将simog函数替换为Relu函数

3.mobileNet-large

image-20230115211411682

注意第一个 bleck并没有真实升维,所以在实现中并没有这个步骤

MobileNet-small

image-20230115211540999

4.代码解读

1._make_divisible:

2.ConvBNActivation:

3.SqueezeExcitation:

4.InvertedResidualConfig

5.InvertedResidual

各个代码各司其职,共同组成了最后的代码,很厉害!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥丁之眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值