图像分类网络总结回顾(上)

文章目录

  • 前言
  • 一、AlexNet分类网络
  • 二、LeNet分类网络
  • 三、VGG分类网络
  • 四、GoogLeNet分类网络
    • 1. Inception结构
  • 五、ResNet分类网络
    • 1. residual结构
    • 2. BatchNormalization
  • 总结
  • 参考


前言

由于在寒假学习目标检测的时候,在yolo,rcnn,SSD等目标检测的学习过程中,其backbone是是用到了图像分类网络,因此就要系统的学习下相关的经典的图像分类网络。以便更好的理解学习目标检测,为课题提供强有力的支撑。
本次记录算是对这周学习网络的一个总结,主要针对各个网络有何亮点以如何实现的进行一个回顾。


一、AlexNet分类网络

AlexNet分类网络来自于文章《ImageNet Classification with Deep Convolutional Neural Networks》,是2012年的ImageNet竞赛中来自多伦多大学的Alex Krizhevsky等人取得冠军的一个模型整理后发表的文章。

该网络的亮点在于:

  1. 首次利用GPU进行网络加速训练
  2. 使用了ReLU激活函数,而不是传统的Sigmoid激活函数以及Tanh激活函数(使其梯度下降速度更快,因而训练模型所需的迭代次数大大降低)
  3. 使用的LRN局部响应归一化(Local Response Normalization)(在神经网络中,我们用激活函数将神经元的输出做一个非线性映射,但是tanh和sigmoid这些传统的激活函数的值域都是有范围的,但是ReLUctant激活函数得到的值域没有一个区间,所以要对ReLU得到的结果进行归一化,也就是LRN)
  4. 在全连接层的前两层中使用了Dropout随机失活神经元操作,以减少过拟合。

其网络层结构为
图像分类网络总结回顾(上)_第1张图片

二、LeNet分类网络

LeNet分类网络来自于LeCun在1998年发表的文章《Gradient-Based Learning Applied to Document Recognition》(基于梯度的学习应用于文档识别)
其网络结构为
图像分类网络总结回顾(上)_第2张图片

三、VGG分类网络

VGG分类网络在2014年由牛津大学著名研究组VGG(Oxford Visual Geometry Group)提出,该团队斩获2014年ImageNet挑战赛分类第二(第一是GoogLeNet),定位任务第一。来自于论文《VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION》

其网络中的亮点:

  1. 通过堆叠多个 3 × 3 3 \times3 3×3的卷积核来替代大尺度卷积核(减少所需参数),可以通过堆叠两个 3 × 3 3 \times3 3×3的卷积核代替 5 × 5 5 \times5 5×5的卷积核,堆叠三个 3 × 3 3 \times3 3×3的卷积核代替 7 × 7 7\times7 7×7的卷积核,拥有相同的感受野
  2. 基于ALexnet加深了网络深度
  3. 采用多尺度训练集和验证集训练或测试

网络架构为
图像分类网络总结回顾(上)_第3张图片
图像分类网络总结回顾(上)_第4张图片

四、GoogLeNet分类网络

GoogLeNet分类网络来自论文《Going deeper with convolutions》,其在2014年由Google团队提出,斩获当年ImageNEt竞赛ClassificationTask(分类任务)第一名

网络中的亮点:

  1. 引入了Inception结构(融合不同尺度的特征信息)
  2. 使用了 1 × 1 1 \times1 1×1的卷积核进行降维和映射处理
  3. 添加两个辅助分类器帮助训练(为了避免网络过深引起的浅层梯度消失问题)
  4. 丢弃全连接层,使用了平均池化层(大大减少模型参数)
    因此这个网络是轻量化模型网络,注重计算效率,这样一来,整个网络只需要5M的参数量,仅仅是AlexNet的十二分之一!

图像分类网络总结回顾(上)_第5张图片

1. Inception结构

Inception模块它的主要思想是设计一种效果好的局部网络拓扑结构(local network topology),也就是在网络中嵌套网络,最后把这些网络堆叠成一个网络,示意图大概是这样的:
图像分类网络总结回顾(上)_第6张图片

左边是初期版本,这里使用三个不同的patch size, 1 × 1 1 \times1 1×1 3 × 3 3\times3 3×3 5 × 5 5 \times5 5×5,主要是为了避免patch alignment问题和减少计算量。。由于池化层在卷积神经网络中的作用往往都是起关键作用的,所以Inception model里也加入了一个池化层。但这种设计不是必须的,只是为了更方便。
但是初级的版本有个很大的缺点就是参数量和计算量会很大,而且将三个卷积层和一个池化层的输出拼接后的feature map数量会变得很大,随着网络层数的增加,模型会变得很复杂,变得难以训练。以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为 1 × 1 × 192 × 64 + 3 × 3 × 192 × 128 + 5 × 5 × 192 × 32 1×1×192×64+3×3×192×128+5×5×192×32 1×1×192×64+3×3×192×128+5×5×192×32,而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了 1 × 1 × 192 × 64 + ( 1 × 1 × 192 × 96 + 3 × 3 × 96 × 128 ) + ( 1 × 1 × 192 × 16 + 5 × 5 × 16 × 32 ) 1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32) 1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量,左图pooling后feature map是不变的,再加卷积层得到的feature map,会使输出的feature map扩大到416,如果每个模块都这样,网络的输出会越来越大。而右图在pooling后面加了通道为32的1×1卷积,使得输出的feature map数降到了256。GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)。

这个是在深度方向上进行拼接

五、ResNet分类网络

ResNet分类网络在2015年由微软实验室提出,在ImageNet比赛classification任务上获得第一名,因为它“简单与实用”并存,之后很多方法都建立在ResNet50或者ResNet101的基础上完成的,检测,分割,识别等领域里得到广泛的应用。

网络中的亮点:

  1. 超深的网络结构(突破1000层)
  2. 提出residual模块
  3. 使用BatchNormalization加速训练(丢弃dropout)

其网络架构为
图像分类网络总结回顾(上)_第7张图片

1. residual结构

在上图中,有链接线的就是残差结构,由一系列的残差结构组成,最后来一个平均池化和全连接层组成 resnet网络结构
文章指出,随着网络层数的增加,梯度消失和梯度爆炸会越来越明显。因此可以使用残差结构解决退化问题,来加深网络来获得更好的结果。
图像分类网络总结回顾(上)_第8张图片
左边的残差结构适用于网络层数较浅的网络,也就是ResNet-34,右边的适用于ResNet-50/101/152.
这个是进行一个相加操作,不是拼接操作
图像分类网络总结回顾(上)_第9张图片

这里是对ResNet网络有一个详细的描述,比如在34-layer中, conv2_X有3层残差结构,conv3_X有4层残差结构等。
但是为什么有的是实线,有的是虚线呢?
图像分类网络总结回顾(上)_第10张图片
对于我们实线的残差结构来说,其输入的shape和输出的shape相同,可以直接相加。而虚线的残差结构不同,就拿上图来说,输入的是[56,56,64],而输出的是[28,28,128]。第二个不同点是 残差结构中的第一层的stride不同,实线是1,虚线是2,就是为了改变形状。
这里需要注意的是在50-layer,101-layer,152-layer中conv2_x的第一层也是虚线残差层,是仅调整特征矩阵的深度,高度和宽度不变。

2. BatchNormalization

BatchNormalization的目的是是我们的一批(batch)feature map满足均值为0,方差为1的分布规律

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

总结

本博文主要对一部分图像分类网络的亮点,以及主要结构进行了汇总,并没有将这些网络联系起来,等把剩下的经典图像分类网络学完之后,就要仔细思考下,网络之间有何联系?为什么要这样改进?以及是否还有改进的余地。争取写一篇论文综述。

参考

哔哩哔哩up主 霹雳吧啦Wz
AlexNet分类网络
LeNet分类网络
VGG分类网络
GoogLeNet分类网络
ResNet分类网络

你可能感兴趣的:(分类网络,卷积,神经网络,计算机视觉,深度学习)