1033 字
5 分钟
卷积神经网络:VGGnet

VGGnet 结构
其对输入图像(224 x 224 x 3)的逐层处理过程为:
- 两次卷积+ReLU。两次卷积都使用了64个3x3的卷积核,且输出特征图的尺寸都为224 x 224 x 64(即高和宽不变,但通道数变为64);而后进行最大化池化处理:池化核的尺寸为 2x2,其效果为图像尺寸减半,因此输出特征图的尺寸变为112 x 112 x 64;
- 两次卷积+ReLU。两次卷积都使用128个3x3的卷积核,输出特征图的尺寸变为112 x 112 x 128;而后最大化池化处理:池化核的尺寸为2x2,其效果为图像尺寸减半,因此输出特征图 的尺寸变为56 x 56 x 128;
- 三次卷积+ReLU。三次卷积都使用256个3x3的卷积核作,输出特征图的尺寸变为56 x 56 x 256;而后最大化池化处理,尺寸再次减半变为28 x 28 x 256;
- 三次卷积+ReLU。三次卷积都使用512个3x3的卷积核,输出特征图的尺寸变为28 x 28 x 512; 而后最大化池化处理,尺寸再次减半变为14 x 14 x 512;
- 三次卷积+ReLU。三次卷积都使用512个3x3的卷积核,尺寸变为14 x 14 x 512;而后最大化 池化处理,尺寸再次减半变为7 x 7 x 512;
- 三次全连接+ReLU。前两层的输出特征图尺寸为1 x 1 x 4096,最后一层的输出特征图尺寸为 1 x 1 x 1000;
- Softmax层。得到输入图像在1000个类别上的预测概率。
VGG vs AlexNet
1. 卷积核大小和卷积层数量(深度)
- AlexNet使用了不同大小的卷积核(11x11, 5x5, 3x3)
- VGGnet则统一使用了3x3的卷积核。
- AlexNet:共 8层(5个卷积层 + 3个全连接层)。
- VGG:深度大幅提升至 16~19层(VGG-16 / VGG-19),全部由连续的 3×3 卷积层堆叠而成。
优势:
-
VGG通过增加卷积子层数来达到同样的性能。这种设置相当于进行更多的非线性映射,以增加网络的拟合能力。
-
在 相同感受野 (7×7 相当于 3个(3×3);5×5 相当于 2个(3×3)。)下,堆叠的小卷积核参数量更少
-
VGG 用实验证明了“深度比宽度更重要”,增加层数可以显著提升特征抽象能力,这一发现直接启发了后来的 ResNet。
2. 通道数变化:逐步翻倍
-
AlexNet:通道数跳跃较大(如从3直接到96)。
-
VGG:池化后通道数规整地翻倍(如 64 → 128 → 256 → 512)
通道数的增加,可以理解为通过更多的不同方式提取特征。
3. 池化层(Pooling)的大小及位置
池化核:
- AlexNet的3x3池化核
- VGGNet采用2x2的池化核。
位置:
- AlexNet:在卷积层后进行池化,池化最早出现在第一层卷积之后
- VGGNet:在连续的卷积层堆叠后再进行池化,让卷积层在较大的特征图上充分提取特征后再压缩。
4. 对归一化(Normalization)的态度
-
AlexNet:使用了局部响应归一化(LRN)。
-
VGG:“归一化没有效果”(LRN在VGG的深度结构中没有带来性能提升),因此VGG放弃了LRN,转而依赖网络初始化和结构本身。
5. 初始化策略的重要性
-
AlexNet:初始化问题不太突出。
-
VGG:由于网络太深,VGG特别依赖良好的权重初始化(如 Xavier初始化 和后来的 Kaiming/何恺明初始化),否则深层网络难以收敛。
6. 全连接层转为卷积层(测试阶段)
VGGNet在测试阶段将模型的最后三个全连接层(如图示)转换为三个卷积层进行处理。这样做可以使得在测试阶段输入的图像尺寸与训练阶段不同。例如VGGNet在训练阶段的默认输入图像为宽和高为224 x224的图像。而测试阶段则可以输入其它尺寸的图像。
卷积神经网络:VGGnet
https://biscuit0613.github.io/posts/ml/cnn-vggnet/