VGG Net--《VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION》阅读翻译

本文探讨了卷积网络深度对大型图像识别准确率的影响。通过增加网络深度至16-19层,并使用3x3小卷积核,显著提高了识别精度。此研究成果在2014年ImageNet挑战赛中取得优异成绩,并已公开两个最佳模型以促进深度学习领域的进一步研究。

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

摘要

   此论文主要是为了研究卷积网络的深度对大型图像识别中准确率的影响。我们的主要贡献是通过使用3x3这种小卷积核的结构来增加深度,当把深度增加至16-19层时表现出对现有技术的很大改善。这些发现是我们2014年ImageNet挑战赛提交的基础,我们的团队分别获得了本地化和分类赛的第一名和第二名。我们的成果在其他数据集也表现很好,能达到先进的水平。我们已经公开了两个表现最好的卷积网络模型,以推动在计算机视觉在深度视觉更深层次的研究。

1、引言

   卷积网络最近在大型图片和视频识别中取得了很大的成功,这可能得益于大型的开源图片库,例如ImageNet,和高性能计算系统,例如GPU和大规模分布式集成器。尤其,ImageNet大规模视觉识别挑战赛(ILSVRC),对深度视觉识别架构的发展起到了很大的作用,它为几代大型图像识别系统提供了实验平台,从高维浅层特征编码(2011年ILSVRC冠军)到深层卷积网络(2012年ILSVRC冠军)。

    随着卷积网络在计算机视觉领域越来越流行,一下试验者尝试对Krizhevsky等人在2012年提出的原始架构进行修改,以达到更高的准确率。例如,在2013年ILSVRC比赛中最好的改进方案是在第一层的卷积层中使用更小的视野窗大小和更小的步长。另一个改进是在整个图像和多尺度上更密集的训练网络。这篇文章我们阐述了卷积网络架构中另一个重要的方面—深度。最后,我们固定了网络结构中的其他参数,通过增加更多的卷积层来稳定的增加了网络的深度,可行性是因为我们在所有的层中都增加了非常小的卷积核(3x3)。

    最后,我们提出了非常精确的ConvNet结构,它不仅在 ILSVRC classification 和 localisation tasks中取得了迄今最高的准确率,而且也适用于其他图像识别的数据集上。在这些数据集中本文的方法即使是使用相对简单的框架(例如,由没有经过微调的线性SVM分类的深度特征)的一部分,也表现出了非常优秀的性能。我们公布了两个表现最佳的模型,以供

    本文的剩余部分是这样布局的:在第2部分,我们描述了ConvNet的结构。第3部分,展现了图像识别中训练和评估的细节。第4部分,关于ILSVRC分类任务的配置比较。第5部分,总结全文。附录A中描述和评估了我们ILSVRC-2014目标定位系统。附录B讨论了对其他数据集的深层特征的泛化能力。附录C包含了主要论文修订的列表。

2、配置

    在本节中,首先描述了本ConvNet配置的一般布局(2.1节),然后详细介绍了评估中使用的具体配置(2.2节),在2.3节中,讨论了此设计选择并将其与最先进的最比较。

2.1 架构

    在训练中,ConvNet输入的是固定的224x224大小的RGB图像。唯一的预处理:每个像素值减去训练集上计算的平均RGB值。

在这些配置中,使用非常小的3x3的卷积核。在其中一个配置中,使用的是1x1的卷积核(1x1的卷积核对输入通道进行线性变换,下层是非线性变换)。

    (先把论文好好看完,稍后再整理)

### 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、付费专栏及课程。

余额充值