11.4 VGGNet
在 VGG Net 之前,AlexNet 等模型已经展示了深度网络在大规模图像分类任务中的潜力。然而,这些网络在卷积核大小、池化层和激活函数的设计上缺乏统一策略。VGGNet提出:通过使用多个连续的小卷积核(3×3)替代大卷积核(如 5×5 或 7×7),可以在保证感受野不变的前提下,提高网络的深度和表达能力,同时减少参数量。
11.4.1 VGGNet网络架构
3×3卷积核的优势
两个3×3的卷积核产生的特征图上的每个特征的感受野是5×5,它和单独使用一个5×5卷积核是一样的。但是3×3卷积核额外有两个好处:
参数量更少,假如输入维度为,输出维度为,则两个3×3卷积核的参数量为,等于。一个5×5卷积核的参数量为,等于。
网络层数更深,更容易提取高级特征。之前我们说过深度神经网络通过多层网络,可以逐层在之前层提取的特征基础上组合出更高级的特征,来提升网络表现,这一点也适用于卷积神经网络。
VGG Net 的核心思想是:
统一使用 3×3 卷积核:叠加两个 3×3 卷积层等价于一个 5×5 卷积层;叠加三个 3×3 等价于一个 7×7,且非线性增强。
网络深度可变:提出了 VGG-11、VGG-13、VGG-16、VGG-19 四种不同深度的变体,数字代表卷积或全连接层数量之和。
卷积层通过Padding来实现输入和输出特征图大小一致,只通过最大池化层来减少特征图尺寸。
统一的池化设计:在每个卷积块之后使用 2×2 最大池化层,下采样一半分辨率。
三层全连接:在卷积特征提取后,使用三层全连接,最后通过 Softmax 输出分类概率。
层数 | 类型 | 输出尺寸 | 说明 |
---|---|---|---|
1 | Conv3-64 | 224×224×64 | 卷积核:3×3,步长=1,填充=1 |
2 | Conv3-64 | 224×224×64 | 同上 |
3 | MaxPool | 112×112×64 | 核:2×2,步长=2 |
4-5 | Conv3-128 | 112×112×128 | 两层 3×3 卷积 |
6 | MaxPool | 56×56×128 | 2×2 最大池化 |
7-9 | Conv3-256 | 56×56×256 | 三层 3×3 卷积 |
10 | MaxPool | 28×28×256 | 2×2 最大池化 |
11-13 | Conv3-512 | 28×28×512 | 三层 3×3 卷积 |
14 | MaxPool | 14×14×512 | 2×2 最大池化 |
15-17 | Conv3-512 | 14×14×512 | 三层 3×3 卷积 |
18 | MaxPool | 7×7×512 | 2×2 最大池化 |
19 | FC-4096 | 4096 | 全连接 |
20 | FC-4096 | 4096 | 全连接 |
21 | FC-1000 | 1000 | 类别数,根据数据集而定 |
22 | Softmax | 1000 | 分类输出 |
11.4.2 VGGNet的意义
在 2014 年的 ImageNet 挑战中,VGG-19 在验证集上达到 24.8% 的 Top-1 错误率和 7.5% 的 Top-5 错误率,成绩优越。此后,VGG 系列迅速成为计算机视觉领域的基准模型之一。
VGGNet标准化了卷积核(3×3)和池化层(2×2 最大池化层)。这种简洁统一的设计,基本成为了之后卷积神经网络的标准配置。