VGG16学习笔记

VGG16学习笔记

论文:https://arxiv.org/abs/1409.1556

网络结构

VGG卷积神经网络是牛津大学在2014年提出来的模型。当这个模型被提出时,由于它的简洁性和实用性,马上成为了当时最流行的卷积神经网络模型。它在图像分类和目标检测任务中都表现出非常好的结果。在2014年的ILSVRC比赛中,VGG 在Top-5中取得了92.3%的正确率。

VGG中根据卷积核大小卷积层数目的不同,可分为A,A-LRN, B, C, D, E共6个配置(ConvNet Configuration),其中以D, E两种配置较为常用,分别称为VGG16和VGG19。

VGG16学习笔记
VGG16结构:
  • 13个卷积层(Convolutional Layer),分别用conv3-XXX表示。
  • 3个全连接层(Fully connected Layer),分别用FC-XXXX表示。
  • 5个池化层(Pool layer),分别用maxpool表示。

​ 其中,卷积层和全连接层具有权重系数,因此也被称为权重层,总数目为13+3=16,这即是VGG16中16的来源。(池化层不涉及权重,因此不属于权重层,不被计数)。

卷积计算
VGG16学习笔记
  1. 输入图像尺寸为224x224x3,经64个通道为3的3x3的卷积核,步长为1,padding=same填充,卷积两次,再经ReLU**,输出的尺寸大小为224x224x64。

  2. 经max pooling(最大化池化),滤波器为2x2,步长为2,图像尺寸减半,池化后的尺寸变为112x112x64。

  3. 经128个3x3的卷积核,两次卷积,ReLU**,尺寸变为112x112x128。

  4. max pooling池化,尺寸变为56x56x128。

  5. 经256个3x3的卷积核,三次卷积,ReLU**,尺寸变为56x56x256。

  6. max pooling池化,尺寸变为28x28x256。

  7. 经512个3x3的卷积核,三次卷积,ReLU**,尺寸变为28x28x512。

  8. max pooling池化,尺寸变为14x14x512。

  9. 经512个3x3的卷积核,三次卷积,ReLU,尺寸变为14x14x512。

  10. max pooling池化,尺寸变为7x7x512。

  11. 然后Flatten(),将数据拉平成向量,变成一维51277=25088。

  12. 再经过两层1x1x4096,一层1x1x1000的全连接层(共三层),经ReLU**。

  13. 最后通过softmax输出1000个预测结果。

权重参数

​ 权重参数包括卷积核权重全连接层权重

VGG16学习笔记

​ 图中蓝色是计算权重参数数量的部分;红色是计算所需存储容量的部分。VGG16具有如此之大的参数数目,可以预期它具有很高的拟合能力;但同时缺点也很明显:

  • 即训练时间过长,调参难度大。
  • 需要的存储容量大,不利于部署。例如存储VGG16权重值文件的大小为500多MB,不利于安装到嵌入式系统中。

VGG16特点

  • VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复堆叠3×3的小型卷积核和2×2的最大池化层,VGGNet成功地构筑了16-19层深的卷积神经网络;

  • VGGNet结构简洁,整个网络都使用了同样大小的卷积核尺寸(3×3)和最大池化尺寸(2×2)

  • 拥有5段卷积,每段内有2-3个卷积层,每段段尾连接一个最大池化层,用来缩小图片

  • 使用非常多的3*3卷积串联:

    • 2个3 * 3卷积串联 == 1个5 * 5的卷积
    • 3个3 * 3卷积串联 == 1个7 * 7的卷积
    • 优点:卷积串联比单独使用一个较大的卷积核,拥有更少的参数量,同时会比单独一个卷积层拥有更多的非线性变换。
  • 层数加粗样式更深特征图更宽:基于前两点外,由于卷积核专注于扩大通道数、池化专注于缩小宽和高,使得模型架构上更深更宽的同时,计算量缓慢的增加。

  • 全连接转卷积 :网络测试阶段将训练阶段的三个全连接替换为三个卷积,测试重用训练时的参数,使得测试得到的全卷积网络因为没有全连接的限制,因而可以接收任意宽或高为的输入。