背景

相较于AlxNet,使用更小卷积核(层数加深,参数减少)。

来源:VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选算法。它的缺点在于,参数量有140M之多,需要更大的存储空间。

先来看看VGG这篇论文《Very Deep Convolutional Networks for
Large-Scale Image Recognition》

论文中几个模型主要以几下几种方案A、B、C、D、E。目前主要还是采用VGG16和VGG19也就是下图中的分别红框和绿框部分。

将resnet与vit结合 resnet和vgg区别_深度学习

下面是VGG16:

其中包含13层卷积(卷积核均为3*3,步长为1,填充为1)、5个池化层(kernal_size=2,步长为2)、3个全连接层。其示意图如下:

将resnet与vit结合 resnet和vgg区别_深度学习_02

其中VGG19比VGG16多了三层卷积层,其余相同。

下面是VGG16_bn:

其中包含13层卷积(卷积核均为3*3,步长为1,填充为1)、13层dropout层、5个池化层(kernal_size=2,步长为2)、3个全连接层。下面是网络示意图:

将resnet与vit结合 resnet和vgg区别_卷积核_03

将resnet与vit结合 resnet和vgg区别_深度学习_04


将resnet与vit结合 resnet和vgg区别_深度学习_05


将resnet与vit结合 resnet和vgg区别_将resnet与vit结合_06

与VGG16不同点在于,在每一层卷积之后添加了dropout层,用于防止过拟合。其中VGG19_bn比VGG16_bn多了三层卷积层,其余相同。

VGG相较于AlxNet的改进点:

  1. 所有的卷积层使用的都是3*3的卷积核。使用多个较小卷积核的卷积层代替一个卷积核较大的卷积层,一方面可以减少参数,另一方面相当于进行了更多的非线性映射,可以增加网络的拟合 / 表达能力。
  2. 使用max pooling,但并不是所有的卷积层后面都跟着pooling层,一共只有5个max pooling层。kernel大小是2*2,步长为2,也就是说,和AlexNet不同,VGGNet使用的是不重叠的pooling。
  3. 没有使用AlexNet中的LRN技术。这是因为后面的实验中证明了使用LRN对性能并没有提升作用,反而增加内存和时间消耗。