数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览
预训练模型
数据推荐
网址导航
我的网址导航
程序员必备网站
CNN经典算法VGGNet介绍
标签:
#卷积神经网络#
#深度学习#
时间:2019/05/28 21:05:44
作者:小木
本文是深度学习经典算法解读的一部分:https://www.datalearner.com/blog/1051558603213207 来源论文:[Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014).](https://arxiv.org/pdf/1409.1556.pdf%20http://arxiv.org/abs/1409.1556) VGGNet(Visual Geometry Group)是2014年又一个经典的卷积神经网络。VGGNet最主要的目标是试图回答“如何设计网络结构”的问题。随着AlexNet提出,很多人开始利用卷积神经网络来解决图像识别的问题。一般的做法都是重复几层卷积网络,每个卷积网络之后接一些池化层,最后再加上几个全连接层。而VGGNet的提出,给这些结构设计带来了一些标准参考。 [TOC] #### 一、VGGNet的出发点 在VGGNet的论文中,作者主要探究了卷积网络深度的影响。其最主要的贡献是使用较小的卷积核,但较深的网络层次来提升深度学习的效果。在此之前,有很多研究者利用如较小的receptive window size和步长等技巧来提升网络效果。而在这边文章中,作者的主要目标是探索深度学习深度的影响。作者固定了网络中其他的参数,通过缓慢的增加网络的深度来探索网络的效果。 先前的网络使用的接受野都是较大的。例如AlexNet的第一层使用的是11x11、步长为4的卷积核扫描。而VGGNet全部使用很小的3x3、步长为1的卷积核来扫描输入。可以看到,如果将两个这样的卷积核堆起来,和5x5的卷积核效果一样,如果是三个堆叠,其效果等同于7x7。 这里解释一下,“堆叠”的意思是先用3x3扫描一次,再用3x3对结果继续扫描一次。所以,加入输入的长为n,那么3x3扫描一次的结果是(n-3)/1+1 = n-2,再扫描一次就是(n-2-3)/1+1=n-4。如果卷积核是5x5,那么扫描一次n的输入就是(n-5)/1+1 = n-4。其结果是一样的。VGGNet思想就是用更小更深的卷积核代替大的卷积核。 关于卷积核维度计算参考:[深度学习卷积操作的维度计算](https://www.datalearner.com/blog/1051547987606439) 作者是这样解释为什么使用3个3x3卷积核堆叠代替一个7x7的卷积核的:首先,使用更深的层可以使得函数具有更好的分辨能力;其次,通过这样做也可以减少参数。例如,假设输入是C个通道的3x3的矩阵,那么堆叠3次3x3的卷积网络的参数是$3(3^2C^2)=27C^2$,而使用一个7x7的卷积核的参数是$7^2C^2=49C^2$。 在之前的论文中,也有人使用了较小的卷积核,但是他们的网络都比VGGNet的网络深度浅。 #### 二、VGGNet的网络结构 VGGNet的网络结构如下:

从上图可以看到,A-E的网络深度都是越来越深的,其主要的区别在于网络深度。卷积层参数的含义是"conv(receptive filed size)-(number of channels)"。作者使用的激活函数是ReLU,表中为了简洁没有列出来了。表2列出了所有网络的参数数量。 #### 三、VGGNet的特点 相比较而言,VGGNet的参数数量还是太多了,所以比较难以处理。但是,VGGNet提供了简单统一的网络结构标准,即所有的卷积核大小都是3x3的。而且manxpooling都是每2(也有3次的)次卷积之后进行一次,卷积核的数量在每次maxpooling之后都翻一倍。此外,
VGGNet最重要的贡献是证明了分类任务可以通过使用小的卷积核增加CNN的深度来提高精度。
。同时,作者公开了VGGNet的权重配置,它的预训练结果被用来处理很多任务。也作为特征抽取的基准被很多研究对比使用。 #### 四、VGGNet预训练模型及代码资源 VGGNet被用来作为预训练也是广为人知的,下面列举几个预训练的模型。 Keras:https://gist.github.com/baraldilorenzo/07d7802847aaad0a35d3 Tensorflow: http://download.tensorflow.org/models/vgg_19_2016_08_28.tar.gz PyTorch各种版本:https://chsasank.github.io/vision/_modules/torchvision/models/vgg.html VGGNet代码:https://gist.github.com/baraldilorenzo/07d7802847aaad0a35d3
相关博客
最热博客