VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition -2015

研究背景

大规模图像识别的深度卷积神经网络 VGG(牛津大学视觉几何组)

认识数据集:ImageNet的大规模图像识别挑战赛

LSVRC-2014:ImageNet Large Scale Visual Recoanition Challenge(14年的相关比赛)

相关研究借鉴:

AlexNet ZFNet OverFeat

研究成果

  • ILSVRC定位冠军,分类亚军

  • 开源VGG16,VGG19

  • 开启小卷积核,深度卷积模型时代3*3卷积核成为主流模型

LSVRC: ImageNet Large Scale Visual Recognition Challenge 是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展。

比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)

竞赛中脱颖而出大量经典模型:
alexnet,vgg,googlenet ,resnet,densenet等

  1. AlexNet:ILSVRC-2012分类冠军,里程碑的CNN模型
  2. ZFNet:ILSVRC-2013分类冠军方法,对AlexNet改进
  3. OverFeat:ILSVRC-2013定位冠军,集分类、定位和检测于一体的卷积网络方法(即将全连接层替换为1x1的卷积层)

论文精读

摘要

In this work we investigate the effect of the convolutional network depth on its accuracy in the large-scale image recognition setting. Our main contribution is a thorough evaluation of networks of increasing depth using an architecture with very small (3×3) convolution filters, which shows that a significant improvement on the prior-art configurations can be achieved by pushing the depth to 16–19 weight layers. These findings were the basis of our ImageNet Challenge 2014 submission, where our team secured the first and the second places in the localisation and classification tracks respectively. We also show that our representations
generalise well to other datasets, where they achieve state-of-the-art results. We have made our two best-performing ConvNet models publicly available to facilitate further research on the use of deep visual representations in computer vision.

摘要进行解读

  1. 本文主题:在大规模图像识别任务中,探究卷积网络深度对分类准确率的影响
  2. 主要工作:研究3*3卷积核增加网络模型深度的卷积网络的识别性能,同时将模型加深到16-19层
  3. 本文成绩:VGG在ILSVRC-2014获得了定位任务冠军和分类任务亚军
  4. 泛化能力:VGG不仅在ILSVRC获得好成绩,在别的数据集中表现依旧优异
  5. 开源贡献:开源两个最优模型,以加速计算机视觉中深度特征表示的进一步研究

快速泛读论文确定小标题的结构

  1. Introduction
  2. ConvNet Configurations
  • 2.1 Architecture
  • 2.2 Configuratoins
  • 2.3 Discussion
  1. Classification Framework
  • 3.1 Training
  • 3.2Testing
  • 3.3ImplementationDetails
  1. Classification Experiments
  • 4.1 Singlescaleevaluation
  • 4.2 Multi-Scale evaluation
  • 4.3 Multi-Cropevaluation
  • 4.4 ConvNetFusion
  • 4.5 Comparison with the state of the art
  1. Conclusion

在这里插入图片描述

根据图表结构:论文中提出了A A-LRN B C D E等五种VGG网络对应的论文结构。

VGG网络结构

模型结构

During training, the input to our ConvNets is a fixed-size 224 × 224 RGB image. The only preprocessing we do is subtracting the mean RGB value, computed on the training set, from each pixel.
The image is passed through a stack of convolutional (conv.) layers, where we use filters with a very small receptive field: 3 × 3 (which is the smallest size to capture the notion of left/right, up/down,center). In one of the configurations we also utilise 1 × 1 convolution filters, which can be seen as a linear transformation of the input channels (followed by non-linearity). The convolution stride is fixed to 1 pixel; the spatial padding of conv. layer input is such that the spatial resolution is preserved after convolution, i.e. the padding is 1 pixel for 3 × 3 conv. layers. Spatial pooling is carried out by five max-pooling layers, which follow some of the conv. layers (not all the conv. layers are followed by max-pooling). Max-pooling is performed over a 2 × 2 pixel window, with stride 2.
A stack of convolutional layers (which has a different depth in different architectures) is followed by three Fully-Connected (FC) layers: the first two have 4096 channels each, the third performs 1000- way ILSVRC classification and thus contains 1000 channels (one for each class). The final layer is the soft-max layer. The configuration of the fully connected layers is the same in all networks. All hidden layers are equipped with the rectification (ReLU (Krizhevsky et al., 2012)) non-linearity. We note that none of our networks (except for one) contain Local Response Normalisation (LRN) normalisation (Krizhevsky et al., 2012): as will be shown in Sect. 4, such normalisation does not improve the performance on the ILSVRC dataset, but leads to increased memory consumption and computation time. Where applicable, the parameters for the LRN layer are those of (Krizhevsky et al., 2012).

论文的原文中提到了整个VGG网络的输入是224 x 224的RGB三通道的彩色图片。使用了大小为3x3的卷积核(也尝试的使用了1x1的卷积核)同时使用了2x2的最大池化,步长为2同时不在使用LRN这种方法

11 weight layers in the network A(8 conv. and 3 FC layers) to 19 weight layers in the network E (16 conv. and 3 FC layers).

VGG11由8个卷积层和3个全连接层组成,VGG19由16个卷积层和3个全连接层组成

整个全连接层与AlexNet相同都是4096 x 4096 x1000,最后通过softmax函数完成1000分类、

整个VGG全部采用3x3的卷积

在这里插入图片描述
对A(VGG11)的过程和共性进行解读
在这里插入图片描述

首先论文中使用的是:224x224x3的一个输入,我们设置的是3x3的卷积核,论文中的作者进行了padding填充(1)保持经过卷积之后的图片大小不变。(conv-64)因此经过了第一层的卷积之后,得到了224x224x64的输出。

而最大池化的步骤2x2且步长为2
F o = ⌊ F in  − k + 2 p s ⌋ + 1 F_{o}=\left\lfloor\frac{F_{\text {in }}-k+2 p}{s}\right\rfloor+1 Fo=sFin k+2p+1

按照公式进行计算:
(224-2)/2 +1=112 因此输出是112x112的大小,在512之前,每次的通道数翻倍。

卷积不改变图片的大小,池化使得图片的大小减半,通道数翻倍

共性

  1. 5个maxpool
  2. maxpool后,特征图通道数翻倍直至512
  3. 3个FC层进行分类输出
  4. maxpool之间采用多个卷积层堆叠,对特征进行提取和抽象

参数计算

在这里插入图片描述
说明了网络的层数变化,对参数的变化影响不大

在这里插入图片描述
F i × ( K s × K s ) × K n + K n F_{i} \times\left(K_{\mathrm{s}} \times K_{\mathrm{s}}\right) \times K_{n}+K_{n} Fi×(Ks×Ks)×Kn+Kn

模型演变

A:11层卷积(VGG11)
A-LRN:基于A增加一个LRN
B:第1,2个block中增加1个卷积33卷积
C:第3,4,5个block分别增加1个1
1卷积
表明增加非线性有益于指标提升
D:第3,4,5个block的11卷积替换为33(VGG16)
E:第3,4,5个block再分别增加1个3*3卷积

其中最为常用的结构就是A中的VGG11和D中的VGG16

VGG的特点

  1. 堆叠3x3的卷积核

增大感受野2个33堆叠等价于1个553个33堆叠等价于1个77
在这里插入图片描述
增加非线性激活函数,增加特征抽象能力
减少训练参数
可看成7 * 7卷积核的正则化,强迫7 * 7分解为3 * 3

假设输入,输出通道均为C个通道
一个77卷积核所需参数量:7 * 7 C * C=49C2
三个33卷积核所需参数量:3(3 * 3* C *C)=27C2
参数减少比:(49-27)/49~44%

之后的数据处理过程和测试过程的相关的内容,放到之后在进行下一次的解读,通过这一次主要要理解的是VGG的网络结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648733.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS队列之向队列发送消息

本篇文章记录我学习FreeRTOS队列相关的知识,主要是关于向队列发送消息的部分。 一、函数原型 创建好队列以后就可以向队列发送消息了,FreeRTOS提供了8个向队列发送消息的API函数。 1、函数xQueueSend()、xQueueSendToBack()和xQueueSendToFront() 这三个函数都是用于…

windows11下,使用工具验证下载的iso文件完整性

windows11下,要验证下载的iso文件是否正常,可以使用工具生成md5值,再与下载源提供的md5值进行比较,相同,说明下载的正常。 命令如下: certutil -hashfile iso文件名 md5 如下面的例子,生成d…

java nio FileChannel堆内堆外数据读写全流程分析及使用(附详细流程图)

这里是小奏,觉得文章不错可以关注公众号小奏技术 背景 java nio中文件读写不管是普通文件读写,还是基于mmap实现零拷贝,都离不开FileChannel这个类。 随便打开RocketMQ 源码搜索FileChannel 就可以看到使用频率 kafka也是 所以在java中文件读写FileCh…

高奇琦:从大国协调到全球性机制:人工智能大模型全球治理路径探析

内容提要 人工智能大模型全球治理的关键是对大模型进行科学分类。大模型可以分为超大模型和一般模型。对于超大模型的治理,可以参考核武器治理的思路,重点是实现超大模型的有限发展和不扩散。对于一般模型而言,要在安全可控的基础上发挥其对…

昂达固态硬盘数据恢复方法:全面解析与操作指南

在数字化时代,数据已经成为我们生活和工作中不可或缺的一部分。而固态硬盘(SSD)由于其读写速度快、抗震性强等优点,慢慢取代了传统的机械硬盘,成为我们存储数据的主要选择。然而,即便再先进的存储设备&…

OrangePi AIpro初体验之图片视频检测案例真实测评

OrangePi AIpro简介 OrangePi AIpro官网 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB两种版本。可以实现图像、视频等多种数据分析与推理…

网页提示“非私密连接”是为什么?

网页提示“非私密连接”(英文提示可能是 "Your connection is not private" 或 "Your connection is not secure")主要是因为浏览器无法验证你正试图访问的网站的SSL/TLS证书,或者是证书存在问题,从而无法建立…

【机器学习】机器学习在信息安全领域中的典型应用

🚀🚀🚀传送门 🔒机器学习在信息安全领域中的典型应用📕利用机器学习检测恶意行为并阻断攻击🌈使用机器学习分析移动终端安全状况⭐借助机器学习提高信息安全分析水平🎬依靠机器学习自动完成重复…

javaEE—图书管理系统(基础代码版)

前言: 本篇博客是集合了javaEE所学的知识构建的一个基础框架,讲述着面向对象的过程是如何做到多对象交互协作完成框架的构建的。利用了数组,接口,类和对象,抽象类,Object类等知识来完成。 后续会加入数据…

钕铁硼表面磷化处理

大家都知道烧结钕铁硼易氧化、易腐蚀,日久将造成磁性能的衰减甚至丧失,所以使用前必须进行严格的防腐处理。在之前的文章中已经向大家介绍过与烧结钕铁硼表面处理相关的知识和电镀的工艺流程,除了电镀之外,钕铁硼表面处理还可采用…

zstd库数据压缩与解压缩

在 Visual Studio 2019 中使用 C 的 zstd 库进行数据压缩与解压缩 在今天的博客中,我们将探讨如何在 Visual Studio 2019 中使用 zstd 库进行高效的数据压缩和解压缩。zstd(也称为 Zstandard 或 zstd)是由 Facebook 开发的开源压缩库&#x…

数据结构中树的一些基本概念

前言:带你认识二叉树从基本概念开始,步步深入。 目录 树的概念和其中比较重要的基本概念 对概念的深度解析: 树的结构应该如何实现呢? 树的分类: 完全二叉树与满二叉树: 树的概念和其中比较重要的基本…

嵌入式进阶——数码管

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

Java SE基础知识(11)

知识梳理: 记不住就看API帮助文档中的pattern类 开发过程中,正则表达式一般不自己写,安装插件any-rule 选择自己想要的正则表达式格式,稍作修改即可

科学提效|AI融入零售业,未来零售的创新之旅

零售业正经历着由人工智能(AI)引领的转型浪潮。AI在零售和消费品(CPG)行业的应用前景广阔,它正以多种创新方式重塑行业的运作模式。且随着技术的不断进步,AI在零售业的应用将变得更加广泛和深入。AI不仅能够…

解锁Facebook的神秘密码:探索社交媒体的奥秘

在当今数字时代,社交媒体已经渗透到我们生活的方方面面。Facebook,作为这个领域中最为瞩目的平台之一,不仅连接着全球数十亿用户,还承载着庞大的信息流和交流网络。然而,Facebook的背后是一个充满着技术和隐私的世界&a…

汇凯金业:纸黄金和实物黄金的价格有什么区别

纸黄金和实物黄金的价格主要受到全球黄金市场行情的影响,二者的基础价格并无太大差异,但在具体交易时,可能会存在一些价格上的区别,这些差异主要来自以下几个方面: 交易费用与管理费:纸黄金交易通常需要支…

Jenkins配置(插件/角色/凭证)

目录 传送门前言一、Jenkins插件管理1、更换为国内下载源2、中文汉化插件下载(不推荐)3、低版本Jenkins爆红插件安装4、低版本Jenkins插件持续报错解决办法 二、Jenkins用户角色三、Jenkins凭证管理(svn/git)1、Username with pas…

k8s集群安装后CoreDNS 启动报错plugin/forward: no nameservers found

安装k8s过程中遇到的问题: 基本信息 系统版本:ubuntu 22.04 故障现象: coredns 报错:plugin/forward: no nameservers found 故障排查: #检查coredns的配置,发现有一条转发到/etc/resolv.conf的配置…

重生奇迹mu增加敏捷的装备

穿龙炎。 1、游戏破坏方面。可以降低"敏捷"的武器,如果你是低敏捷穿龙炎,我推荐你拿它,穿龙炎配的,同时,它的攻击,我感觉是最稳定的。 2、好看方面。通常大家都穿它都是因为好看,但是很多高手也穿他,为什么?因为穿它好配点,高敏捷你可以穿,低敏捷你也可以穿它,视武…