深度学习论文随记(二)---VGGNet模型解读

Very Deep Convolutional Networks forLarge-Scale Image Recognition

Author: K Simonyan , A Zisserman

Year: 2014

1、  导引

VGGNet是2014年ILSVRC竞赛的第二名,没错你没听错它是第二名,第一名是GoogLeNet(真不是我打错google,是谷歌为了纪念LeNet,所以用的大写L).为什么先讲VGG,因为它这个模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选算法。它的缺点在于,参数量有140M之多,需要更大的存储空间。但是这个模型很有研究价值。

为什么叫VGG?

是牛津大学 Visual Geometry Group(视觉几何组)的同志写的论文,所以叫VGG.

2、  模型解读

VGG中的16指的是conv和FC的总和。

这张图的意思是他们一共建了A, B, C, D, E, F  6个不同的网络进行效果的比对。

注:在你看这里的时候我已经假设你看懂了AlexNet,已经对神经网络的结构有了个大致的印象。

结构A:和AlexNet类似,卷积层分为了5个stage,全连接层还是3层。只不过卷积层用的都是3x3大小的filter,具体的细节我会在下文接着阐述。

结构A-LRN:保留AlexNet里面LRN操作,其他与结构A无区别。

结构B:在A的stage2和stage3分别增加一个3x3的卷积层,共有10个卷积层。

结构C:在B的基础上,stage3,stage4,stage5分别增加一个1x1的卷积层,有13个卷积层,总计16层。

结构D:在C的基础上,stage3,stage4,stage5分别增加一个3x3的卷积层,有13个卷积层,总计16层。

结构E:在D的基础上,stage3,stage4,stage5分别再增加一个3x3的卷积层,有16个卷积层,总计19层。

对比

·A与A-LRN比较:A-LRN结果没有A好,说明LRN作用不大。

·A与B, C, D, E比较,A是这当中layer最少的,相比之下A效果不如B,C,D,E,说明Layer越深越好;

·B与C比较:增加1x1filter,增加了额外的非线性提升效果;

·C与D比较:3x3 的filter(结构D)比1x1(结构C)的效果好

3 特点分析:(我们以最终的结构E来进行分析)

①可以看到共有5个池化层,所以可以把卷积部分视为5个部分,和AlexNet一样,只不过每一个部分他用了不止一层卷积层

所有卷积层都是同样大小的filter!尺寸3x3,卷积步长Stirde = 1,填充Padding = 1

为什么这么搞?

A、3x3是最小的能够捕获左、右、上、下和中心概念的尺寸;

B两个3x3的卷积层连在一起可视为5x5的filter三个连在一起可视为一个7x7

这是卷积的性质,受过#信号系统#这门课摧残的同学应该记忆犹新

C、多个3x3的卷积层比一个大尺寸的filter卷积层有更多的非线性,使得判决函数更加具有判断性。

D、多个3x3的卷积层笔一个大尺寸的filter具有更少的参数

卷积层变多了。结构E有16层卷积层,加上全连接层共19层。这也是对深度学习继续往深处走的一个推动。

实际上卷积层越多的话,图像的细节信息的就能得到更好的提取,可以想象成拿放大镜把细节放大再放大?我不知道我这个比喻是否恰当,但是便于理解。

4、  Multi-scale训练

首先对原始图片进行等比例缩放,使得短边要大于224,然后在图片上随机提取224x224窗口,进行训练。由于物体尺度变化多样,所以多尺度(Multi-scale)可以更好地识别物体。

方法1:在不同的尺度下,训练多个分类器:

参数S为短边长。训练S=256和S=384两个分类器,其中S=384的分类器用S=256的进行初始化,且将步长调为10e-3

方法2:直接训练一个分类器,每次数据输入的时候,每张图片被重新缩放,缩放的短边S随机从[256,512]中选择一个。

Multi-scale其实本身不是一个新概念,学过图像处理的同学都知道,图像处理中已经有这个概念了,我们学过图像金字塔,那就是一种多分辨率操作

只不过VGG网络第一次在神经网络的训练过程中提出也要来搞多尺寸。目的是为了提取更多的特征信息。像后来做分割的网络如DeepLab也采用了图像金字塔的操作。

转载自 https://blog.csdn.net/Teeyohuang/article/details/75214758

VGG网络结构(二)相关推荐

  1. 基于CIFAR100的VGG网络结构详解

    基于CIFAR100的VGG网络详解 码字不易,点赞收藏 1 数据集概况 1.1 CIFAR100 cifar100包含20个大类,共100类,train集50000张图片,test集10000张图片 ...

  2. 【学习笔记】VGG 网络结构

    跟着大佬学图像分类系列,→ 传送门 ← 本博客图像分类系列文章传送门: AlexNet VGG(当前) GoogleNet ResNet 前言 图像分类是学习目标检测的"量变"内容 ...

  3. VGG网络结构的搭建(pytorch以及百度飞桨)

    对应百度飞桨页面 VGG网络是在2014年由牛津大学著名研究组VGG (Visual Geometry Group) 提出. 下载花分类数据集 import requests import os im ...

  4. chainer-图像分类-VGG【附源码】

    文章目录 前言 一.VGG网络结构 二.代码实现 1.引入必须要的库库 2.模型构建 1.一些标准的模块进行设置 2.VGG网络结构的构建 3.结合之前构建的分类框架调用 三.训练效果展示 1.vgg ...

  5. chainer-骨干网络backbone-VGG代码重构【附源码】

    文章目录 前言 一.VGG网络结构 二.代码实现 1.引入必须要的库 2.模型构建 版本1(官方) 版本2(结合pytorch的进行修改) 三.模型调用 前言   使用chainer重构VGG模型,可 ...

  6. 【卷积神经网络结构专题】经典网络结构之VGG(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第三篇文章,前面我们先后介绍了LeNet和A ...

  7. 二值神经网络(Binary Neural Networks)最新综述

    作者|秦浩桐.龚睿昊.张祥国 单位|北京航空航天大学 研究方向|网络量化压缩 本文介绍了来自北京航空航天大学刘祥龙副教授研究团队的最新综述文章 Binary Neural Networks: A Su ...

  8. 计算机视觉:基于眼疾分类数据集iChallenge-PM图像分类经典模型剖析(LeNet,AlexNet,VGG,GoogLeNet,ResNet)

    计算机视觉:图像分类经典模型 LeNet AlexNet VGG GoogLeNet ResNet 图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉的核心,是物体检测.图像分割.物体跟 ...

  9. VGG网络讲解——小白也能懂

    目录 1.VGG网络简介 一.VGG概述 二.VGG结构简介 2.VGG的优点 3.VGG亮点所在 计算量 感受野 1.VGG网络简介 一.VGG概述 VGGNet是牛津大学视觉几何组(Visual ...

最新文章

  1. Linux frame buffer 编程 -- fb基本操作
  2. 决战9小时,产品上线的危机时刻
  3. Pod资源管理(pod容器分类,k8s添加harbor私库,上传下载私库)
  4. 数组名和取数组名的区别
  5. RNN循环神经网络(吴恩达《序列模型》笔记一)
  6. docker mysql57_docker安装mysql57
  7. java thread start0_Java: Thread类中start()和run()的区别
  8. 关于在vue中结合数组方法的this的指向问题
  9. Android 壁纸设置代码 详解
  10. ZooKeeper官方文档学习笔记02-ZooKeeper入门指南
  11. ffmpeg音频播放代码示例-avcodec_decode_audio4
  12. python不会英语不会数学怎么自学-学习Python数学英语基础重要吗?
  13. bzoj 2707: [SDOI2012]走迷宫(Trajan+高斯消元+Dp)
  14. 逻辑回归模型(Logistic Regression)及Python实现
  15. jquery计算两个日期天数差
  16. matlab 数学 应用论文,MATLAB在高等数学课程中的应用(图文)
  17. DEVC6.0使用教程
  18. windows下文件路径太深,无法删除解决办法
  19. 计算机快捷键任务管理器,任务管理器快捷键,小编教你电脑如何打开任务管理器...
  20. 图像预处理流程与方法

热门文章

  1. MySQL如何创建沙箱,沙箱环境搭建 - osc_y8w65yuq的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 简化java_JAVA之旅-简化java开发
  3. sqlite插入时间字段_sqlite 获取最后插入id
  4. oracle+内存错误,oracle使用内存的错误,ORA-27102: out of memory
  5. JDBC进行事务管理
  6. 如何用python做一个会聊天的女朋友_520来啦~教你用Python给自己造了一个女朋友!...
  7. php 判断同时存在英文跟数字,php判断输入是否是纯数字,英文,汉字的方法
  8. python菜单函数_Python 自学笔记- 列表及其内置函数
  9. php封装redis类,php封装redis操作类
  10. 一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...