快速理解VGG网络


简介

VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和谷歌 DeepMind 一起研究出来的深度卷积神经网络,因而冠名为 VGG。VGG是一种被广泛使用的卷积神经网络结构,其在在2014年的 ImageNet 大规模视觉识别挑战(ILSVRC -2014)中获得了亚军,不是VGG不够强,而是对手太强,因为当年获得冠军的是GoogLeNet。

通常人们说的VGG是指VGG-16(13层卷积层+ 3层全连接层)。虽然其屈居亚军,但是由于其规律的设计、简洁可堆叠的卷积块,且在其他数据集上都有着很好的表现,从而被人们广泛使用,从这点上还是超过了GoogLenet。 VGG和之前的AlexNet相比,深度更深,参数更多(1.38亿),效果和可移植性更好。

一些有用的链接

  1. 文章地址:https://arxiv.org/abs/1409.1556

网络结构

VGGNet以下6种不同结构,我们以通常所说的VGG-16(即下图D列)为例,展示其结构示意图
VGG

那么对于VGG16 来讲他的网络结构款加图就应该是下面这样的:
VGG16
可见,整个网络有5个vgg-block块和5个maxpool层逐个相连,然后进入FC层,直到最后1000路softmax输出。

VGG的特点

  • vgg-block内的卷积层都是同结构的
  • 池化层都得上一层的卷积层特征缩减一半
  • 深度较深,参数量够大
  • 较小的filter size/kernel size

1.vgg-block内的卷积层都是同结构的。意味着输入和输出的尺寸一样,且卷积层可以堆叠复用,其中的实现是通过统一的size为3×3的kernel size + stride1 + padding(same)实现。 下面来看一下VGG16中其中一个单元的示意图:这个就是VGG-16中的一个vgg-block块
VGG-16中的一个vgg-block块

2.maxpool层将前一层(vgg-block层)的特征缩减一半 使得尺寸缩减的很规整,从224-112-56-28-14-7。其中是通过pool size2 + stride2实现
3.深度较深,参数量够大 较深的网络层数使得训练得到的模型分类效果优秀,但是较大的参数对训练和模型保存提出了更大的资源要求。
4.较小的filter size/kernel size,这里全局的kernel size都为3×3,相比以前的网络模型来说,尺寸足够小。

数据增强方面

VGG网络中,数据增强使用的是Multi-Scale。
这里的Multi-Scale主要是将图像放大到随机的大小,然后再裁剪到224*224 的图像。

Layer层的设计(VGG16)

多种VGG网络设计都很统一,都有相同的224×224×3的input+5个maxpool层+3层fc全连接层,区别在于中间的Vgg-block块的设计不同。 下面我们以D列中的VGG-16为例展示具体的layer设计:block和block之间通过maxpool的stride=2,pool size=2进行减半池化;block内部,为了保持卷积层间的shape一致,kernel size统一尺寸为3×3。

第1层输入层: 输入为224×224×3 三通道的图像。

第2层vgg block层: 输入为224×224×3,经过64个kernel size为3×3×3的filter,stride = 1,padding=same卷积后得到shape为224×224×64的block层&#

  • 21
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值