深度学习VGG16模型核心模块拆解

时间:2023-09-21 20:15:32

原文连接:https://blog.csdn.net/qq_40027052/article/details/79015827

注:这篇文章是上面连接作者的文章。在此仅作学习记录作用。

如今深度学习发展火热,但很多优秀的文章都是基于经典文章,经典文章的一句一词都值得推敲很分析。此外,深度学习虽然一直被人诟病缺乏足够令人信服的理论,但不代表我们不能感性分析,下面我们将对2014年夺得ImageNet的定位第一和分类第二的VGG网络进行分析,在此过程中更多的是对这篇经典文章的感性分析,希望和大家共同交流产生共鸣。

论文下载地址:https://arxiv.org/pdf/1409.1556.pdf

开篇首先引用一段来自知乎对同年GoogleNet和VGG的描述:

  “GoogLeNet和VGG的Classification模型从原理上并没有与传统的CNN模型有太大不同。大家所用的Pipeline也都是:训练的时候各种数据Augmentation(裁剪,不同大小,调亮度,饱和度,对比度,偏色),裁剪送入CNN模型,Softmax,Backprop。测试的时候,尽量吧测试数据又各种Augmenting(裁剪,不同大小),把测试数据各种Augmenting后在训练的不同模型上的结果再继续Averaging出最后的结果”

需要注意的是,在VGGNet的6组实验中,后面的4个网络均使用了pre-trained model A的某些层来做参数初始化。虽然作者没有提出该方法带来的性能增益,但是我认为是很大的。不过既然是开篇,先来看看VGG的特点:

  • 小卷积核。作者将卷积核全部替换为3x3(极少用了1x1);
  • 小池化核。相比AlexNet的3x3的池化核,VGG全部为2x2的池化核;
  • 层数更深特征图更宽。基于前两点外,由于卷积核专注于扩大通道数、池化专注于缩小宽和高,使得模型构架上更深和更宽的同时,计算量的增加放缓;
  • 全连接转卷积。网络