VGG16学习笔记

VGG16


一、摘要

  • VGG-16主要采用增加卷积层的方法来加深网络,结果发现网络深度越深,网络学习的效果越好,分类能力越强
  • 该文表明:使用非常小的卷积滤波器(3×3)增加网络深度,当深度增加到16-19层时,可以实现对现有技术的显著改,并且对于其他图像识别的数据集也有很好的推广能力。

二、ConvNet的配置

  • 输入图像:固定大小的224×224的RGB图像(预处理为对每个像素减去RGB均值)。
  • 卷积层:使用3×3的卷积滤波器,stride = 1,padding为same,卷积后的图像尺寸不变(ConvNet Configuration C中另用conv1,其中1×1的卷积滤波器可以看作输入通道的线性变换)。
  • 池化层:窗口为2×2stride = 2(池化后图像的尺寸减半),它们跟随在一些卷积层之后,但并不是所有卷积层之后都有池化层。
  •  全连接层:有三个全连接层FC,前两个有4096个通道,最后一个有1000个通道(每个类别占一个通道)。
  • softmax:实现多种类分类

                                      所有隐藏层之后,都配有ReLU(Rectified linear uint-修正线性单元)

VGG-16中的16指的是在这个网络中包含16个卷积层和全连接层。此外还有VGG-19,由于VGG-16和VGG-19的表现几乎误无差,且VGG-16的参数较VGG-19少,所以大多数人依然选取VGG-16


 

三、说明

①、卷积层使用3×3的滤波器,很容易看到两层3×3的卷积层(两层之间无池化层)的感受野和一层5×5的卷积层相同,三层3×3的卷积层有7×7的有效感受野。这种替换是合理有效的。

  • 每一层卷积层后会跟着非线性校正层ReLU。那么相较于单个非线性修正层,使用了三个的会使网络的决策更有判别性。
  • 这种替换减少了参数。假设输入卷积层的通道数均为C1,输出的特征图的通道数也为C2(也就是卷积滤波器的数量)。那么3×3的情况共有3×(3×3×C1×C2)=27C1C2 ; 7×7的情况有(7×7×C1×C2)=49C1C2

关于感受野的说明:通俗讲为输出特征图上的一个单元对应输入层上的区域大小

             

图1、感受野的解释(图文来源B站,文末给有链接,这个UP主讲的很好)

 

②、ConvNet-C使用了1×1的卷积滤波器,该卷积核的作用是什么?

  • 1×1的卷积核不影响特征图的感受野,但是会增加模型的非线性。
  • 1×1的卷积核本身是对每个通道做线性变换,起到非线性作用的是卷积层后紧跟的非线性激活函数。

③、网络深度对结果的影响

  • VGG16与谷歌的GoogleNet网络深度都很深。
  • 二者都采用了小卷积
  • VGG16只采用3×3的卷积核,而GoogleNet采用了1×1、3×3、5×5的卷积核,模型更为复杂。

 四、模型参数说明


五、VGG-16的网络结构

 

注意:FC1000层后没有ReLU激活函数,而是用softmax层激活。


 六、参考文献

  1. https://arxiv.org/abs/1409.1556(原文)
  2. https://blog.csdn.net/C_chuxin/article/details/82833070?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase#%C2%A0%C2%A0%E6%9C%AC%E6%96%87%E6%A6%82%E8%BF%B0(翻译)
  3. https://blog.csdn.net/whz1861/article/details/78111606(讲解)
  4. https://youtu.be/RNnKtNrsrmg(VGG16可视化)
  5. https://www.bilibili.com/video/BV1q7411T7Y6/?spm_id_from=333.788.videocard.15(B站UP详讲VGG16)
posted @ 2020-06-28 21:50  Peterxiazhen  阅读(1016)  评论(0编辑  收藏  举报