【深度神经网络】三、VGG网络架构详解

前言

由于这学期时间紧急,没多少时间写博客。近期开始我将会陆续整理这学期的阅读的论文的相关笔记。今天带来的是VGG网络的论文笔记。VGG网络的论文的下载地址为:Very deep convolutional networks for large-scale image recognition


一、 VGG特点

首先我们来对VGG网络架构进行一个概括:

  1. 小卷积核:相比AlexNet,将卷积核全部替换为 3 × 3 3\times3 3×3,极少用了 1 × 1 1\times1 1×1
  2. 小池化层:相比AlexNe, 3 × 3 3\times3 3×3的池化核全部换为 2 × 2 2\times2 2×2的池化核;
  3. 层数更深:VGG16为例, 3 → 64 → 126 → 256 → 512 3\to 64\to 126\to 256\to 512 364126256512 ,卷积核专注于扩大通道数,3个通道的特征经过经过卷积层的提取扩散到了512个通道;
  4. 特征图更窄:VGG16为例, 224 → 112 → 56 → 28 → 14 → 7 224\to 112\to 56\to 28\to 14\to 7 2241125628147 ,池化层专注于缩小宽和高;
  5. 全连接转 1 × 1 1\times 1 1×1 卷积:测试阶段可以接收任意宽或高为的输入。

二、 VGG网络架构

VGG网络架构如下图所示。下图中给出了VGG11至VGG19模型模型配置,A、A-LRN是VGG11模型、B为VGG13模型、CD为VGG16模型、E为VGG19模型。输入为 224 × 224 224\times 224 224×224的RGB图像。conv代表卷积层,maxpool代表最大池化层,FC代表全连接层,softmax代表sofmax层。卷积层具体表示为convX-Y,X代表卷积核大小,Y代表卷积层输出深度,例如conv3-64代表 3 × 3 3\times3 3×3的卷积核,输出深度为64。FC-4096代表全连接层有4096个神经元。在VGG网络架构中,最大池化层尺寸都为 2 × 2 2\times2 2×2。A-LAN代表在VGG11模型中加入LRN(局部有响应正则化)。

在这里插入图片描述
VGG网络是一类网络的统称 ,下图是VGG网络模型参数的对比表,模型参数最多是AlexNet的2.4倍。
在这里插入图片描述

2.1 为什么要使用3*3小卷积核?

  1. 5 × 5 5\times5 5×5的卷积的视野与 2个 3 × 3 3\times3 3×3的卷积视野相同。 7 × 7 7\times7 7×7的卷积视野与 3个 3 × 3 3\times3 3×3 的卷积视野相同。以1层 7 × 7 7\times7 7×7的卷积换成 3层 3 × 3 3\times3 3×3的卷积为例进行说明:使用3层非线性来代替1层非线性,使得决策函数更具有可分性,增加了网络的非线型表达能力。
  2. 同时相对大卷积,多个小卷积可以提取出更大更深的卷积特征
  3. 同时假设 输入和输出特征图的通道数都是 C C C,那么1个 7 × 7 7\times7 7×7的卷积参数: 7 × 7 × C × C = 49 C 2 7\times 7\times C\times C=49{{C}^{2}} 7×7×C×C=49C2 ,3个 3 × 3 3\times3 3×3 的卷积参数大小: 3 × 3 × 3 × C × C = 27 C 2 3\times 3\times 3\times C\times C=27{{C}^{2}} 3×3×3×C×C=27C2。即利用多个小卷积替换一个大卷积可以减少模型参数数量。

2.2 为什么要使用 2 × 2 2\times2 2×2池化核?

AlexNet的最大池化核为 3 × 3 3\times3 3×3,步幅为 2 2 2。VGGNet最大池化核为 2 × 2 2\times2 2×2,步幅为 2 2 2小池化核带来的是更细节的信息捕获。

2.3 为什么要全连接层转化为 1 × 1 1\times1 1×1卷积?

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

以VGG16架构为例,经过若干卷积层和5个最大池化层之后,输出大小为 7 × 7 × 512 7\times 7\times 512 7×7×512,它与第一个FC层之间的权重矩阵为 ( 7 × 7 × 512 ) × 4096 (7\times 7 \times512) \times4096 (7×7×512)×4096。测试时,若继续使用FC,送入FC层的输入必须为一个 7 × 7 × 512 7\times 7\times 512 7×7×512向量,但是若使用卷积层,第一个FC层换成卷积核为 7 × 7 7\times7 7×7,深度为512的卷积层,剩下两个替换成 1 × 1 1\times1 1×1卷积,那么卷积核的深度即可以看成图像分类类别,每个在测试阶段,必须将每个通道进行取平均作为每种分类的概率,那么当输入图像尺寸大于 224 × 224 224\times224 224×224时,最后最大池化层的输出大于 7 × 7 7\times7 7×7,但是由于后面FC换成了的卷积层,那么也可以将其映射出为1000维向量作为分类概率。转换成 1 × 1 1\times1 1×1卷积的好处:参数总量不变,计算负担也相对减少,又消除输入的限制。

2.4 训练细节

训练采用SGD与动量优化,动量因子为0.9,小批量样本规模为256,L2正则化系数为0.0005,学习率为0.01。

图像预处理:图像减去RGB每个通道的均值。参数初始化:Net-A的权重初始化均值为0,方差为0.01的正态分布随机数, biases初始为0。对于B-E的模型参数,首先对Net-A进行训练,之后将Net-A的参数赋给B-E,其他不同的层采用Net-A中的随机初始化方式。


三 、实验

接下来我们主要来看下论文中所做的几组实验,主要分为单尺度实验、多尺度实验、随机裁剪实验和模型融合4组实验。

3.1 单尺度实验

实验结果截图下图所示。对比前两组实验说明LRN不能提高网络的性能,因此后面的网络不使用LRN。A-E各种网络测试结果表明:深度越深,网络的性能越好。Net-C采用了 1 × 1 1\times1 1×1卷积提取特征,尽管Net-C 比Net-B好,说明在Net-C中添加的 1 × 1 1\times1 1×1的卷积有用,但是比较Net-C(VGG11)和Net-D(VGG16),说明相对 1 × 1 1\times1 1×1的卷积, 3 × 3 3\times3 3×3的卷积能捕捉到空间信息。在单尺度测试时,在多尺度上训练的网络要比在单尺度上训练的网络性能好。
在这里插入图片描述

3.2 多尺度实验

多尺度实验结果如下图所示。与使用单尺度相比,测试阶段使用多尺度,验证集错误率明显降低。使用多尺度,Net-D(VGG16)和 Net-E(VGG19)能达到很好的效果。
在这里插入图片描述

3.3 随机裁剪实验

随机裁剪实验的实验结果如下图所示。Multi-crop代表对图像进行随机裁剪。Dense代表采用全卷积思想,测试时将FC转化为卷积层。实验结果显示:multi-crop要比dense的top-1好一些,二者结合效果更好。
在这里插入图片描述

3.4 模型融合实验

VGG网络模型融合后实验结果如下2张图所示。将前几组实验中的模型进行融合,最终夺取了2014ImageNet分类竞赛的亚军。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

daipuweiai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值