VGG实战先导 📅 2026/7/1 2:28:43 1.论文论文标题Very Deep Convolutional Networks for Large-Scale Image Recognition作者Karen Simonyan Andrew Zisserman (牛津大学视觉几何组VGG)在这篇论文里明确提出了VGGNet系列模型他从核心思想动机创新点以及实验来讨论模型。1.1 核心思想和动机在VGGNet提出之前虽然AlexNet已经展示了深度卷积网络的强大能力但学界对于“如何设计网络架构”以及“深度到底能带来多大提升”并没有清晰的认识。 为了做到这一点作者摒弃了当时流行的较大卷积核在整个网络中统一使用非常小的 3x3 卷积核。这使得在不改变其他架构参数的情况下可以稳定地增加卷积层数从而构建从11层到19层的深度网络。1.2 创新点作者提出用多个3x3卷积核堆叠来替代一个较大卷积核这样的优势在于更强的判别能力。三个3x3堆叠包含三个非线性ReLU层而一个7x7只有一个这使得决策函数更具判别性。参数更少。假设输入输出通道数均为C三个3x3层的参数为3 * (3*3*C*C) 27C^2而一个7x7层的参数为7*7*C*C 49C^2。参数减少了约81%起到了隐式正则化的作用。1.3实验以及实验结论实验结果图表论文通过大量实验得出了几个关键结论深度显著提升性能从11层的A到19层的ETop-1错误率从29.6%降至25.5%证明了深度增加带来准确率提升。LRN无效对比A和A-LRNLRN并未带来提升因此在深网络中不用LRN。1x1卷积有效但有局限C配置含1x1比B好证明增加非线性有帮助但D配置全3x3比C更好证明利用空间上下文非平凡感受野至关重要。尺度抖动是关键多尺度训练S多尺度测试显著降低了误差。2.VGG原理2.1 VGG网络结构这里以VGG-16为例VGG-16由13个卷积层3个全连接层共16个带权重的层组成。VGG中卷积层是通过 block块状形式相连的,block内的卷积层结构相 同block外block之间通过maxpool连接。VGG-block内的卷积层都是同结构的意味着输入和输出的尺寸一样且卷积层可以堆叠复用其中的实现是通过统 一的size为3×3的kernel size stride1 padding1实现。maxpool层将前一层(VGG-block层)的特征缩减一半使得尺寸缩减的很规整从224-112-56-28-14-7。其中是通 过pool size2 stride2实现。VGG特点 vgg-block内的卷积层都是同结构的 池化层都得上一层的卷积层特征缩减一半 深度较深参数量够大 较小的filter size/kernel size。2.2 VGG网络参数第一个block1输入为224×224×3卷积核数量为64个卷积核的尺寸大小为3×3×3步幅为1stride1 填充为1padding1卷积后得到shape为 224×224×64的特征图输出。 2输入为224×224×64卷积核数量为64个卷积核的尺寸大小为3×3×64步幅为1填充为1卷积后得到shape为 224×224×64的特征图输出。3输入为224×224×64池化核为2×2步幅为2后得到尺寸为112×112×64的池化层的特征图输出。第二个block1输入为112×112×64卷积核数量为128个 卷积核的尺寸大小为3×3×64步幅为1填充为1卷积后得到shape 为112×112×128的特征图输出。2输入为112×112×128卷积核数量为128个 卷积核的尺寸大小为3×3×128步幅为1填充为1卷积后得到shape为112×112×128的特征图输出。3输入为112×112×128池化核为2×2步幅 为2stride2后得到尺寸为56×56×128的池化层的特征图输出。第三个block1输入为56×56×128卷积核数量为256个卷积核的尺寸大小为3×3×128步幅为1填充为1卷积后得到shape为56×56×256的 特征图输出。2输入为56×56×256卷积核数量为256个卷积核的尺寸大小为3×3×256步幅为1填充为1卷积后得到shape为56×56×256的特征图输出。3输入为56×56×256卷积核数量为256个卷积核的尺寸大小为3×3×256步幅为1填充为1卷积后得到shape为56×56×256的特征图输出。4输入为56×56×256池化核为2×2步幅为2 后得到尺寸为28×28×256的池化层的特征图输出。第四个block1输入为28×28×256卷积核数量为512个卷积核的尺寸大小为3×3×256步幅为1填充为 1卷积后得到shape为28×28×512的特征图输出。2输入为28×28×512卷积核数量为512个卷积核的尺寸大小为3×3×512步幅为1填充为 1卷积后得到shape为28×28×512的特征图输出。3输入为28×28×512卷积核数量为512个卷积核 的尺寸大小为3×3×512步幅为1填充为 1卷积后得到shape为28×28×512的特征图输出。4输入为28×28×512池化核为2×2步幅为2后得到尺寸为14×14×512的池化层的特征图输出。第五个block1输入为14×14×512卷积核数量为512个卷积核的尺寸大小为3×3×512步幅为1填充为1 卷积后得到shape为14×14×512的特征图输出。2输入为14×14×512卷积核数量为512个卷积核的尺寸大 小为3×3×512步幅为1填充为1 卷积后得到shape为14×14×512的特征图输出。3输入为14×14×512卷积核数量为512个卷积核的尺寸大 小为3×3×512步幅为1填充为1 卷积后得到shape为14×14×512的特征图输出。4输入为14×14×512池化核为2×2步幅为2后得到尺寸为7×7×512的池化层的特征图输出。该层后面还隐藏了flatten操作通过展平得到7×7×51225088个参数后与之后的全连接层相连。第13层全连接层第1~3层神经元个数分别为409640961000。其中前两层在使用relu后还使用了Dropout对神经元随机失活最后一层全连接层用softmax输出1000个分类。