深度学学习常用网络结构AlexNet、VGG、GoogleNet、ResNet、SENet

AlexNet:是最早期的比较普通的一个神经网络由5层卷积层和三层全连接层组成。
VGG:在这个基础上,加深了网络的深度,同时用 3 × 3 3 \times 3 的小卷积和代替了大卷积核,相比Alexnet,2个33的conv与 1个5 * 5的conv具有相同的感受野,但是参数更少,性能更好。
GoogleNet:主要是使用了inception的结构,采用不同大小的卷积核,意味着不同大小的感受野,将不同尺度特征的融合可以取得更好的学习效果,同时因为在inception中使用了1
1的卷积来降维后再卷积,大大减少了参数量,同时googlenet还有一个大大降低参数量的操作数,在网络的最后使用了全局均值池化来代替之前的全连接层。
ResNet:随着网络的逐步加深,性能反而开始下降,同时也出现了一些梯度消失、梯度爆炸的问题。ResNet提出了一种学习残差的方式,而不是直接学习网络层之间的输入输出来解决这个问题,

一、AlexNet

(一)成绩

多伦多大学alex团队ILSVRC-2012冠军网络

(二)网络结构

5层卷积 + 3层全连接

在这里插入图片描述

(三)网络特色
  1. 局部响应归一化(LRN:Local Response Normalization)
    当前通道当前点的像素值/(相邻 通道数/2 的不同特征图上对应的同一点,像素值的平方和)
    当该通道和邻近通道像素绝对值都比较大的时候,归一化后值变得更小。
    采用这种方法,在ImageNet数据集1000分类的测试上,top-1错误率降低了 1.4%,top-5错误率降低了 1.2%(其他网络上发现这种方法好像没多少用处)

  2. 重叠池化
    (1)常规池化
    在这里插入图片描述
    (2)重叠池化
    相邻池化窗口之间会有重叠区域
    在这里插入图片描述

训练过程中通常观察采用重叠池化的模型,发现它更难过拟合。

  1. 减少过拟合
    (1)数据增强
    在GPU训练模型时,用cpu 随机裁剪 + 翻转 + 旋转原始图像 + RGB替换,产生新的数据,GPU + CPU并行工作,没有占用额外的时间。
    (2)采用dropout
    随机忽略一部分神经元,(以0.5的概率对每个隐层神经元的输出设为0。那些“失活的”的神经元不再进行前向传播并且不参与反向传播)。思想是利用集成法,计算多个模型,综合考虑结果(MAX,MEAN,etc)。只不过实现方式在一个模型内部实现,而不是真的训练了多个模型。

二、VGG

Visual Geometry Group牛津大学计算机视觉组

(一)成绩

ILSVRC-2014亚军

  1. 单网络分类精度方面最优。
    在这里插入图片描述
  2. 多网络( 融合了VGG16和VGG19两个模型,相比于融合了7个模型的googlenet仅仅落后0.1%)
    在这里插入图片描述
(二)网络结构
  1. 网络配置
    评估有6个网络,层数依次加深
    在这里插入图片描述

  2. 网络示例图
    在这里插入图片描述

(三)网络特色
  1. 采用更小的卷积核,网络层数更深
    VGG相比于AlexNet的改动在于,VGG采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)
    VGG发现,同样感受野的情况下,小的conv filter优于具有大filter的网络,在网络B中进行实测,2个3*3的conv与 1个5 * 5的conv具有相同的感受野。
    但是前者性能高于后者7%。堆积的小卷积核优于采用大的卷积核, 因为每过1个小的卷积核,后面接着一个RELU非线性激活层。这可以学习到更复杂的模式。 而且代价还比较小(参数更少5x5 > 2 * 3x3)

  2. 采用Network In Network1*1结构
    传统网络一般是由:线性卷积池化层+全连接层堆叠起来。卷积层通过线性滤波器进行线性卷积运算,然后在接个非线性激活函数,传给下一层

NIN在原来的卷积层后面加一个11的卷积层,而不改变输出的size。每一个11卷积层后面都会跟上ReLU。所以,相当于网络变深了,可以学习到更复杂的模式.
在这里插入图片描述
全连接层相当于1*1卷积层
在这里插入图片描述

  1. ps
    (1)VGGNet的结构简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。验证了通过不断加深网络结构可以提升性能。
    (2)A-LRN验证了局部均一化作用不大
    "A与A_LRN网络测试结果"
    A与A_LRN网络测试结果在这里插入图片描述
    (3)网络参数过多,计算量大(并不是小卷积核的锅,3个全连接层占据了80%的参数)

三、GoogleNet

Inception系列论文

(一)网络成绩

ILSVRC-2014冠军
在这里插入图片描述

(二)网络结构

在这里插入图片描述

(三)网络特色
  1. inception结构
    采用不同大小的卷积核,意味着不同大小的感受野,将不同尺度特征的融合可以取得更好的学习效果。
    在这里插入图片描述
  2. 瓶颈层(实际上就是1x1卷积)
    这里假定Inception模块的输入为192个通道,它使用128个3x3卷积核和32个5x5卷积核。5x5卷积的计算量为25x32x192,但是随着网络变深,网络的通道数和卷积核数会增加,此时计算量就暴涨了。为了避免这个问题,在使用较大卷积核之前,先去降低输入的通道数。所以,Inception模块中,输入首先送入只有16个卷积核的1x1层卷积层,然后再送给5x5卷积层。这样整体计算量会减少为16x192+25x32x16。这种设计允许网络可以使用更大的通道数。(译者注:之所以称1x1卷积层为瓶颈层,你可以想象一下一个1x1卷积层拥有最少的通道数,这在Inception模块中就像一个瓶子的最窄处)
  3. 全局均值池化层
    GoogLeNet的另外一个特殊设计是最后的卷积层后使用全局均值池化层替换了全连接层,所谓全局池化就是在整个2D特征图上取均值。这大大减少了模型的总参数量。要知道在AlexNet中,全连接层参数占整个网络总参数的90%。使用一个更深更大的网络使得GoogLeNet移除全连接层之后还不影响准确度。
  4. shotcut直连
    改善了梯度消失问题。
    在这里插入图片描述

四、ResNet

(一)网络成绩

ResNet取得了5项第一,并又一次刷新了CNN模型在ImageNet上的历史:
在这里插入图片描述

(二)网络结构

在这里插入图片描述

(三)网络特色
  1. 残差模块
    ResNet使用两种残差单元,如图所示。左图对应的是浅层网络,而右图对应的是深层网络。对于短路连接,当输入和输出维度一致时,可以直接将输入加到输出上。但是当维度不一致时(对应的是维度增加一倍),这就不能直接相加。有两种策略:(1)采用zero-padding增加维度,此时一般要先做一个downsamp,可以采用strde=2的pooling,这样不会增加参数;(2)采用新的映射(projection shortcut),一般采用1x1的卷积,这样会增加参数,也会增加计算量。短路连接除了直接使用恒等映射,当然都可以采用projection shortcut。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ming6383/article/details/104752073