论文阅读笔记:VGG:Very Deep Convolutional Networks

VGG网络由牛津大学视觉几何组提出,通过堆叠小型3x3卷积核和2x2最大池化层,构建了16~19层深的卷积神经网络。相较于AlexNet,VGG使用更小的滤波器并引入1x1卷积核进行降维,减少了计算量,增强了网络表达能力。在网络结构方面,VGG采用了多个连续3x3卷积核代替单一的大尺寸卷积核,增加了非线性处理,提高了学习能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文阅读笔记:VGG:Very Deep Convolutional Networks

论文下载地址:Very Deep Convolutional Networks for Large-Scale Image Recognition

本文主要包含如下内容:

  论文来源于牛津大学 visual geometry group(VGG),撰写于2014年,主要探讨了深度对网络的重要性,并且构造了一个19层的深度神经网络,在ILSVRC 2014中定位获得了第一名,分类获得了第二名。


主要思想


  这篇论文的工作在ILSVRC 2014中的classification项目的比赛中取得了第2名的成绩,证明网络越深,网络学习能力越好,分类能力越强。

  相对于 Alex-net,论文主要使用了较小尺寸的滤波器,并且使用 1*1 卷积核进行降为操作,在减少计算量的同时引入了非线性,增强了网络的表达能力。


网络结构


  
  VGGNet 网络结构通过反复堆叠3´3的小型卷积核和2´2的最大池化层, 成功地构筑了16~19层深的卷积神经网络。

  其中,网络中使用了3*3卷积核:未使用较大的感受野,如11*117*7的卷积核,因为两个连续的3*3大小的卷积核与一个5*5大小的卷积核具有相同的局部空间(感受野),而连续的3*3大小的卷积核则和一个7*7大小的卷积核具有相同的局部空间。但相比使用一个7*7大小的卷积核,3个连续的3*3的卷积核进行了3次非线性处理,提高了网络的学习能力。另外,3*3的卷积核也降低了参数的数目,假设3x3的卷积核处理C通道的feature maps时,一共有3(3x3xCxC)=27CxC个参数,而7x7的卷积核则有7x7xCxC49CxC个参数;

  同时,网络中使用1*1卷积核:用以降维和升维:维度指的是通道数(厚度),而不改变图片的宽和高。

  网络中还加入非线性:卷积层之后经过激励层,1*1的卷积在前一层的学习表示上添加了非线性激励,提升网络的表达能力。

  VGG16
  可以应用Netscope查看网络具体参数。
  训练时,输入是大小为224*224的RGB图像,预处理只在训练集中的每个像素上减去RGB的均值。

  图像经过一系列卷积层处理,在卷积层中使用了非常小的感受野(receptive field):3*3,甚至有的地方使用1*1的卷积,这种1*1的卷积可以被看做是对输入通道(input channel)的线性变换。

  卷积步长(stride)设置为1个像素,3*3卷积层的填充(padding)设置为1个像素。池化层采用max-pooling,共有5层,在一部分卷积层后,max-pooling的窗口是2*2,步长是2。

  一系列卷积层之后跟着全连接层(fully-connected layers)。前两个全连接层均有4096个通道。第三个全连接层有1000个通道,用来分类。所有网络的全连接层配置相同。

  所有隐藏层都使用ReLuVGGNet不使用局部响应标准化(LRN),这种标准化并不能在ILSVRC数据集上提升性能,却导致更多的内存消耗和计算时间。


实验结果


  论文中比较了 VGG 网络和其他网络在ILSVRC 2014中的classification挑战赛的测试结果。
  

### VGG网络架构 VGG网络由牛津大学视觉几何组(Visual Geometry Group)开发,旨在解决大规模图像识别中的挑战[^1]。该网络的特点在于使用非常深的卷积层结构来提取特征。 #### 架构特点 - **多层堆叠**:VGG采用了多个连续的小尺寸(3×3)卷积核进行特征抽取,而不是采用较大尺寸的卷积核。 - **固定步幅和填充方式**:所有的卷积操作都保持相同的步幅(stride=1),并使用零填充使得输入输出具有相同的空间维度。 - **池化层配置**:在网络的不同阶段之后加入最大池化层以减少空间分辨率,从而降低参数数量并控制过拟合风险。 - **全连接层设计**:最后几层通常为全连接层,在分类任务中用于映射到类别标签上;然而现代实现往往省略这些密集层转而使用全局平均池化替代。 具体来说,最著名的两个版本分别是: - **VGG16**:包含13个卷积层以及3个全连接层; - **VGG19**:则进一步扩展到了16个卷积层加3个全连接层。 这种简单却有效的设计方案不仅提高了模型性能,同时也促进了后续研究者对于更深更复杂网络结构探索的热情。 ```python import torch.nn as nn class VGG(nn.Module): def __init__(self, num_classes=1000): super(VGG, self).__init__() # 定义卷积部分 self.features = nn.Sequential( *make_layers([64]*2 + [128]*2 + [256]*3 + [512]*3 + [512]*3)) # 定义分类器部分 (可选) self.classifier = nn.Linear(512*7*7, num_classes) def forward(self, x): out = self.features(x) out = out.view(out.size(0), -1) # 展平处理 out = self.classifier(out) return out def make_layers(cfg): layers = [] in_channels = 3 for v in cfg: if v == 'M': layers += [nn.MaxPool2d(kernel_size=2, stride=2)] else: conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1) layers += [conv2d, nn.ReLU(inplace=True)] in_channels = v return nn.Sequential(*layers) ``` ### 应用领域 自发布以来,VGG已被广泛应用于各种计算机视觉任务当中: - 图像分类与目标检测; - 实例分割; - 场景理解; 此外,VGG作为预训练基础模型也被用来迁移学习新数据集上的相似问题求解.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值