深度神经网络一般由卷积部分和全连接部分构成。卷积部分一般包含卷积(可以有多个不同尺寸的核级联组成)、池化、Dropout等,其中Dropout层必须放在池化之后。全连接部分一般最多包含2到3个全连接,最后通过Softmax得到分类结果,由于全连接层参数量大,现在倾向于尽可能的少用或者不用全连接层。神经网络的发展趋势是考虑使用更小的过滤器,如1*1,3*3等;网络的深度更深(2012年AlenNet8层,2014年VGG19层、GoogLeNet22层,2015年ResNet152层);减少全连接层的使用,以及越来越复杂的网络结构,如GoogLeNet引入的Inception模块结构。

VGGNet获得2014年ImageNet亚军,VGG是牛津大学 Visual Geometry Group(视觉几何组)的缩写,以研究机构命名。

VGG在AlexNet基础上做了改进,整个网络都使用了同样大小的3*3卷积核尺寸和2*2最大池化尺寸,网络结果简洁。一系列VGG模型的结构图:

VGG16包含16层,VGG19包含19层。一系列的VGG在最后三层的全连接层上完全一样,整体结构上都包含5组卷积层,卷积层之后跟一个MaxPool。所不同的是5组卷积层中包含的级联的卷积层越来越多。

AlexNet中每层卷积层中只包含一个卷积,卷积核的大小是7*7,。在VGGNet中每层卷积层中包含2~4个卷积操作,卷积核的大小是3*3,卷积步长是1,池化核是2*2,步长为2,。VGGNet最明显的改进就是降低了卷积核的尺寸,增加了卷积的层数。

使用多个较小卷积核的卷积层代替一个卷积核较大的卷积层,一方面可以减少参数,另一方面作者认为相当于进行了更多的非线性映射,增加了网络的拟合表达能力。
 
 
 
VGGNet的图片预处理

VGG的输入224*224的RGB图像,预处理就是每一个像素减去了均值。

VGG的多尺度训练
 
VGGNet使用了Multi-Scale的方法做数据增强,将原始图像缩放到不同尺寸S,然后再随机裁切224′224的图片,这样能增加很多数据量,对于防止模型过拟合有很不错的效果。实践中,作者令S在[256,512]这个区间内取值,使用Multi-Scale获得多个版本的数据,并将多个版本的数据合在一起进行训练。VGG作者在尝试使用LRN之后认为LRN的作用不大,还导致了内存消耗和计算时间增加。
 
虽然网络层数加深,但VGG在训练的过程中比AlexNet收敛的要快一些,主要因为:
  (1)使用小卷积核和更深的网络进行的正则化;
  (2)在特定的层使用了预训练得到的数据进行参数的初始化。对于较浅的网络,如网络A,可以直接使用随机数进行随机初始化,而对于比较深的网络,则使用前面已经训练好的较浅的网络中的参数值对其前几层的卷积层和最后的全连接层进行初始化。

VGGNet改进点总结
 
一、使用了更小的3*3卷积核,和更深的网络。两个3*3卷积核的堆叠相对于5*5卷积核的视野,三个3*3卷积核的堆叠相当于7*7卷积核的视野。这样一方面可以有更少的参数(3个堆叠的3*3结构只有7*7结构参数数量的(3*3*3)/(7*7)=55%);另一方面拥有更多的非线性变换,增加了CNN对特征的学习能力。
 
二、在VGGNet的卷积结构中,引入1*1的卷积核,在不影响输入输出维度的情况下,引入非线性变换,增加网络的表达能力,降低计算量。
 
三、训练时,先训练级别简单(层数较浅)的VGGNet的A级网络,然后使用A网络的权重来初始化后面的复杂模型,加快训练的收敛速度。
 
四、采用了Multi-Scale的方法来训练和预测。可以增加训练的数据量,防止模型过拟合,提升预测准确率

VGGNet网络结构相关推荐

  1. CNN基本步骤以及经典卷积(LeNet、AlexNet、VGGNet、InceptionNet 和 ResNet)网络讲解以及tensorflow代码实现

    课程来源:人工智能实践:Tensorflow笔记2 文章目录 前言 1.卷积神经网络的基本步骤 1.卷积神经网络计算convolution 2.感受野以及卷积核的选取 3.全零填充Padding 4. ...

  2. AlexNet VGGNet ResNet 对比 简介

    AlexNet 网络结构 多GPU Relu Dropout 层叠池化 图片的随机采样 其他 VGGNet 网络结构 3*3 卷积核 1*1 卷积核 LRN 其他 ResNet 退化问题 残差学习 残 ...

  3. VggNet 论文分析

    文章目录 题目: 论文总览 Part 1:论文导读 研究背景 研究成果 Part 2:论文精读 摘要 论文小标题 2. VGGNet 网络结构 3. Classification Framework ...

  4. 教你用TensorFlow实现VGGNet

    勿满足于眼前的小小成就.你要问自己,我这辈子只有这样吗. VGGNet 是牛津大学计算机视觉组( Visual Geometry Group〉和 Google DeepMind公司的研究员一起研发的的 ...

  5. VGGNet架构解析

    VGGNet架构解析 1.VGGNet简介 2.VGGNet模型结构 3.VGG16架构 3.1 模型结构 3.2 各block块参数说明 3.3 VGG16模型复现 References 参考论文: ...

  6. 一文精简介绍CNN基本结构

    简 介: 这是love1005lin在CSDN上2021-11-19发布的一篇深度学习的卷积神经网,内容整理的精简,移动,现在将其进行转载,并发布在公众号"TSINGHUAZHUOQING& ...

  7. 【深度学习之ResNet】——深度残差网络—ResNet总结

    目录 论文名称:Deep Residual Learning for Image Recognition 摘要: 1.引言 2.为什么会提出ResNet残差网络呢? 3.深度残差网络结构学习(Deep ...

  8. [深度学习-总结]Deep learning中8大模型介绍与比较(LeNet5,AlexNet,VGG,Inception,MobileNets,ResNet,DenseNet,Senet)

    深度学习 9中模型介绍与比较 0. CNN 结构演化 1. LeNet5 2. AlexNet 3. VGG 为什么使用2个3x3卷积核可以来代替5*5卷积核 4. 1*1卷积 5. Inceptio ...

  9. 《深度学习之PyTorch物体检测实战》—读书笔记

    随书代码 物体检测与PyTorch 深度学习 为了赋予计算机以人类的理解能力与逻辑思维,诞生了人工智能(Artificial Intelligence, AI)这一学科.在实现人工智能的众多算法中,机 ...

最新文章

  1. ue4 函数和宏区别_【UE4】通俗易懂 用蓝图来学习 C++ 基础知识
  2. mysql关系表控制_mysql表关系
  3. Jabba: hybrid error correction for long sequencing reads using maximal exact matches机译:Jabba:使用最大精
  4. 那些在学习iOS开发前就应该知道的事(part 1)
  5. 【转载】Qt Creator 添加自定义注释
  6. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
  7. js中json法创建对象(json里面的:相当于js里面的=)
  8. 在Winform中播放视频等【DotNet,C#】
  9. 一次MYSQL 服务器性能优化之旅
  10. golang协程测试
  11. windows进程管理问题
  12. 相机模型与标定(十二)--opencv圆形标志点检测算法
  13. AP 计算机 真知源自实践,盛誉源自读者;孜孜不倦,止于至善---林振营老师编著的中国第一套 AP计算机教材学生评价
  14. Stay hungry, stay foolish. 求知若饥,虚心若愚。
  15. 一个Qt调用百度翻译API进行文本翻译的程序记录,辅助ts文件进行翻译。
  16. 6月30日,入职感悟、未来规划、本周工作总结,记录印象深刻的BUG。
  17. ios多线程浅谈和使用
  18. 富芮坤蓝牙FR801xH开发环境搭建
  19. 从像素之间谈起:像素游戏的画面增强(上)
  20. 【转帖】大数据时代的文化与版权

热门文章

  1. dream on!!
  2. 互联网公司分布式系统架构演进之路
  3. html5 表格向下,HTML5 教程之HTML 表格
  4. 世界排名第 3 的滴滴裁员,开春求职必知的独角兽排行榜
  5. 基于WS协议的webSocket通信
  6. C/C++编程分享:C++ 实现太阳系行星项目系统
  7. 什么是推挽输出,开漏输出?
  8. information_schema.columns 学习
  9. MAC使用 SVN问题
  10. MySQL - 调优(一)