笔记:基本的分类网络

1.LeNet

在这里插入图片描述

2.AlexNet

在这里插入图片描述
卷积->池化->卷积->池化->卷积->卷积->卷积->池化->全连接->全连接->全连接
在这里插入图片描述

3.VGG

VGG-16最常用(13个卷积层和3和全连接层)
VGG是2014年由牛津大学著名研究组VGG(Visual Geometry Group)提出,在ImageNet竞赛中Localization Task(定位任务)第一名和classification Task(分类任务)第二名,共有1000个类别
![在这里插在这里插入图片描述
在这里插入图片描述

4.GoogLeNet

GoogLeNet是2014年由Google团队提出,ImageNet竞赛中classification Task(分类任务)第一名(与VGG同一年被提出)
在这里插入图片描述
inception:按深度拼接(每个分支的高和宽必须相同)
在这里插入图片描述
1*1的卷积核作用:降维(在深度上降维),减少参数

辅助分类器:(防止反向传播梯度消失)
在这里插入图片描述
在这里插入图片描述

5.ResNet

ResNet是2015年微软实验室提出,获得当年ImageNet竞赛中分类任务第一名,目标检测第一名,获得COCO数据集中目标检测第一名,图像分割第一名。
在这里插入图片描述
网络加深面临的问题:
1)梯度消失与梯度爆炸
2)退化问题

在浅层**(18或34层)中使用左边的残差结构,在深层(50,101,或152层)**中使用右边的残差结构,主要是利用1*1的卷积层来改变深度,减少参数

一共5种残差层数,18层和34层为浅层,50、101和152层为深层
在这里插入图片描述
对于浅层的残差结构而言,实线与虚线的残差结构对比:虚线的残差结构需要把输入特征矩阵的宽、高及深度都进行变化
所以,conv3_x,conv4_x与conv5_x的第一层残差结构都是虚线残差结构,需要输入特征矩阵的宽、高及深度都进行变化成当前层所需要的宽、高及深度。
在这里插入图片描述
对于深层的残差结构而言,实线与虚线的残差结构对比:虚线的残差结构需要把输入特征矩阵的宽、高及深度都进行变化
对于深层的残差结构而言,通过卷积和最大池化层后得到的[56,56,64],而实际残差结构所期望的输入为[56,56,256],所以conv2_x中的第一层为许仙的残差结构来调整特征矩阵的深度,宽、高不变
conv3_x,conv4_x与conv5_x的第一层残差结构都是虚线残差结构,需要输入特征矩阵的宽、高及深度都进行变化成当前层所需要的宽、高及深度。
在这里插入图片描述

6.ResNeXt

组卷积:
在这里插入图片描述
在这里插入图片描述

7.MobileNet

MobileNet是轻量级网络,运用在移动设备和嵌入式设备上
在这里插入图片描述
论文中的两个亮点:
1)Depthwise Convolution,简称DW卷积,减少参数数量和运算量
2)增加了两个超参数,一个是控制卷积层卷积核个数的超参数,二是控制图像输入大小的超参数。两个超参数是人为设定的,并非学习到的
在这里插入图片描述
DW卷积:DW卷积的卷积核深度为1,卷积核个数与输入特征矩阵的维度相同,则每个卷积核与每张图片分别做卷积
在这里插入图片描述
深度可分的卷积(Depthwise Separable Conv):在得到DW的feature map时,再通过PW卷积,一共是两部分构成
PW卷积其实和普通的卷积核相似,只是卷积核大小为1而已
DW+PW卷积:相当于普通卷积中的改变大小与改变深度分开了
在这里插入图片描述
在这里插入图片描述

MobileNetV1: 与VGG相似,不断地串行堆叠
第一个参数a:控制卷积核个数的倍率(控制卷积过程中卷积核的个数)
第二个参数B:图像分辨率的参数
在这里插入图片描述
MobileNetV2
在这里插入图片描述
残差结构中,采用是Relu激活函数
倒残差结构中,采用是Relu6激活函数
在这里插入图片描述
在这里插入图片描述
Linear Bottlenecks针对的是到残差结构的最后一个11卷积层,使用线性的激活函数,而非ReLU激活函数
原因是:ReLU激活函数对低维特征信息造成大量的损失,对高维特征信息造成的损失很小
在倒残差结构中,两边细中间粗的结构,在其输出时,就是低维的特征向量了,就要使用线性的激活函数代替ReLU激活函数,来避免信息损失
在这里插入图片描述
倒残差结构的结构图:
并不是倒残差结构都有捷径分支,在stride=2时是没有捷径分支的,在stride=1且输入与输出的shape相同时是才有捷径分支的
在这里插入图片描述
MobileNetV2的网络结构参数:
一个block是由一系列bottleneck堆叠而成,其中k为分类个数,在imagenet中k=1000;最后一层1
1的卷积相当于全连接层

在这里插入图片描述
MobileNetV3
对倒残差结构进行简单的改动
在这里插入图片描述
关于block的更新:
1.加入了SE模块(注意力机制)
2.更新激活函数
这里的NL表示非线性激活函数,不同层的激活函数不一样,就没有给出明确的激活函数
注意11的降维的卷积层中没有使用激活函数(或使用线性激活y=x)
在这里插入图片描述
注意力机制(SE模块):
对每个channel进行池化处理,得到channel长度的一维向量,再通过两个全连接层(注意第一个全连接的结点个数是它输入的结点个数的1/4,第一个全连接的结点个数是等于池化后的节点个数)
输出的向量可理解为是对输入进SE模块的特征矩阵的每一个channel分析出了一个权重关系,比较重要的channel就赋予更大的权重,不那么重要的就赋予比较小的权重
H-sig:表示hard-sigmoid函数
在这里插入图片描述
重新设计耗时层结构:
1.减少第一个卷积层的卷积核个数(v2版的第一个卷积层的卷积核个数是32,现在在v3版中改为16)
2.精简Last Stage(在使用NAS搜索出来的网络结构的最后一部分为Original Last Stage,是非常耗时的,作者对其精简,提出Efficient Last Stage)
在这里插入图片描述
重新设计激活函数:
swish激活函数确实能提高网络的准确率,但是有两个缺点:
1)计算、求导复杂
2)对量化过程不友好(特别是对移动端的设备,为了加速都会进行量化操作)
于是作者提出h-swish激活函数(对推理速度上是有一定帮助的,对量化过程也很友好)
先看一下sigmoid激活函数与h-sigmoid激活函数,是比较接近的,很多场景下会用h-sigmoid激活函数去替代sigmoid激活函数
于是h-swish[x]=x * h-sigmoid[x]
在这里插入图片描述
MobileNetV3-Large的网络结构:
注意第一个bneck模块中,并没有进行升维,故在第一个bneck模块中并不会使用1
1的升维卷积层,直接使用DW卷积
exp_size表示此bneck模块中的1*1的升维卷积层的卷积核个数(即升的维数)
在这里插入图片描述
来自于https://space.bilibili.com/18161609/channel/index的笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值