VGG论文学习

编程入门 行业动态 更新时间:2024-10-18 02:26:40

VGG<a href=https://www.elefans.com/category/jswz/34/1770125.html style=论文学习"/>

VGG论文学习

《Very Deep Convolutional Networks for Large-scale Image Recongnition》
基于卷积神经网络的图形分类(经典网络)

  • 作者:Karen Simonyan&Andrew Zisserman
  • 单位:牛津大学(Visual Geometry Group)
  • 发表会议及时间:arXiv 2015

论文研究背景:

自从2012年AlexNet将深度学习的方法应用到lmageNet的图像分类比赛中并取得state of the art的惊人结果后,大家都竞相效仿并在此基础上做了大量尝试和改进

  1. 小卷积核
    在第一个卷积层用了更小的卷积核和卷积stride(Zeiler&Fergus,2013;Sermanet et al,2014)
  2. 多尺度
    训练和测试使用整张图的不同尺度(Sermanet et al,2014;Howard,2014)。

Vgg作者不仅将上面的两种方法应用到自己的网络设计和训练测试阶段,同时还考虑了网络深度对结果的影响。
从中我们可以得到启示:总结前人的工作,加入自己独特的想法,也是发论文的一个方向。


论文研究成果:

在2014年在ILSVRC比赛上获得了分类项目的第二名(第一是GoogLeNet),和定位项目的第一名。同时模型对其他数据集有很好的泛化能力。

VGG由于其结构简单,提取特征能力强,所以应用场景广泛
例如:
快速风格迁移算法
目标检测的backbone,提取特征(fater rcnn,ssd等)
gan网络内容特征提取,进行内容计算(内容损失是gan网络损失的一部分)


单尺度测试结果对比

多尺度测试结果对比



论文结论:

  1. 在一定范围内,通过增加深度能有效地提升网络性能;

  2. 最佳模型:VGG16,从头到尾只有3x3卷积与2×2池化,简洁优美;

  3. 多个小卷积核比单个大卷积核性能好(与alxnet对比可知);

  4. AlexNet曾经用到的LRN层并没有带来性能的提升,因此在其它组的网络中均没再出现LRN层;

  5. 尺度抖动scale jittering(多尺度训练,多尺度测试)有利于网络性能的提升。


感受野概念

感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点跟原图上有关系的点的区域。

感受野概念为什么重要?

感受野被称作是CNN中最重要的概念之一,目标检测流行的算法比如SSD,Faster Rcnn等中prior box和Anchor box的设计都是以感受野为依据做的设计。

具体可参考这篇博客:彻底搞懂感受野的含义与计算


论文结构

摘要

本文研究了在大规模图片识别中,卷积神经网络的深度对准确率(accuracy)的影响。我们的主要贡献是通过非常小的3x3卷积核的神经网络架构全面评估了增加深度对网络的影响,结果表明16-19层的网络可以使现有设置的网络性能得到显著提高。这项发现是我们在2014年的ImageNet比赛中提交方案的基础,我们的团队分别在定位和分类中获得了第一和第二的成绩。我们还证明了此模型可以泛化到其他数据集上,并达到当前最佳水平。我们已经公布了两个性能最佳的卷积神经网络模型,以便深度视觉在计算机视觉中的进一步研究。

VGG网络结构


训练数据处理

各向同性的缩放训练图像最小边

以S=256为例

  1. 将图片进行等比变化,最小边长度为256
  2. 对等比变化后的图像随机截取224*224的图像块
  3. 对裁剪的图像块进行随机水平翻转与RGB颜色转换


多尺度数据


超参数设置

  • 批量大小:batchsize=256
  • 权重衰减:weight decay=5*10-4
  • 学习率:learning rate=0.01 衰减因子为0.1
  • 动量:momentum=0.9(优化方式为带动量的SGD)
  • 迭代步数:370K
  • 轮数:epoches=75
  • 卷积核初始化方式:均值为0方差为1的高斯分布(深层网络使用浅层网络权重初始化)
  • 偏置初始化方式:初始化为0
  • 全连接层初始化方式:高斯分布(std=0.005),bias常数初始化(0.1)

网络特点

  1. 小卷积核
    VGG使用多个小卷积核(3x3)的卷积层代替大的卷积核,一方面可以减少参数,另一方面相当于进行了更多的非线性映射,以增加网络的拟合/表达能力。
  2. 小池化核
    相比AlexNet的3x3的池化核,VGG全部采用2x2的池化核。
  3. 层数更深
    vgg常用结构层数为16层,19层(仅计算conv,fc层),Alexnet有为8层(5个conv,3个fc)。
  4. 全连接转卷积
    网络测试阶段将训练阶段的三个全连接替换为三个卷积,测试重用训练时的参数,使得测试得到的全卷积网络因为没有全连接的限制,因而可以接收任意宽或高为输入。

pytorch代码实现参考这篇博客:pytorch中VGG网络的源码解读

更多推荐

VGG论文学习

本文发布于:2023-06-20 12:56:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/801862.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:论文   VGG

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!