卷积神经网络之 - VGGNet
本文建议阅读时间 20min
VGGNet 是由牛津大学视觉几何小组(Visual Geometry Group, VGG)提出的一种深层卷积网络结构,他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分类任务的亚军(冠军由 GoogLeNet 以 6.65% 的错误率夺得)和 25.32% 的错误率夺得定位任务(Localization)的第一名(GoogLeNet 错误率为 26.44%)
论文地址:https://arxiv.org/abs/1409.1556
网络结构
在《Very Deep Convolutional Networks for Large-Scale Image Recognition》论文中,作者给出了 6 个 VGG 模型,对应不同的网络结构和深度,具体结构如下:
设计要点
预处理过程:图片每个像素中减去在训练集上的图片计算 RGB 均值
所有隐藏层都配备了 ReLU 激活
全局使用 3×3 小卷积,可以有效的减少参数,2 个 3×3 卷积可以替代一个 5×5 卷积,参数量变成 5×5 卷积的 (2×3×3)/(5×5)=0.72 倍,3 个 3×3 卷积可以替换 1 个 7×7 卷积,参数量是 7×7 卷积的 (3×3×3)/(7×7)=0.6 倍。这样的连接方式使得网络参数量更小,而且多层的激活函数令网络对特征的学习能力更强。多个 3*3 的卷积核比一个较大尺寸的卷积核有更多层的非线性函数,增加了非线性表达,使判决函数更具有判决性。
结合 1×1 卷积层是增加决策函数非线性而不影响卷积层感受野的一种方式。
训练设置:批量大小设为 256,动量为 0.9。训练通过权重衰减(L2 惩罚乘子设定为 5×10^−4)进行正则化,前两个全连接层采取 dropout 正则化(dropout 比率设定为 0.5)。学习率初始设定为 10−2,然后当验证集准确率停止改善时,学习率以 10 倍的比率进行减小。学习率总共降低 3 次,学习在 37 万次迭代后停止(74 个 epochs)。
为了进一步增强训练集,裁剪图像经过了随机水平翻转和随机 RGB 颜色偏移
全连接转卷积(测试阶段),使用不同的尺度进行测试
结果分析
单尺度的测试结果
网络的性能随着网络的加深而提高。
应该注意到 B,C,D 这个网络的性能。C 网络好于 B 网络,说明额外添加的非线性激活函数,确实是有好处的;但是,D 网络好于 C 网络,这说明也可以使用非平凡的感受野( non-trivial receptive fields)来捕获更多的信息更有用。
当网络层数达到 19 层时,使用 VGG 架构的错误率就不再随着层数加深而提高了。更深的网络应该需要更多的数据集。
论文还将网络 B 与具有 5×5 卷积层的浅层网络进行了比较,浅层网络可以通过用单个 5×5 卷积层替换 B 中每对 3×3 卷积层得到。测量的浅层网络 top-1 错误率比网络 B 的 top-1 错误率(在中心裁剪图像上)高 7%,这证实了具有小滤波器的深层网络优于具有较大滤波器的浅层网络。
多尺度评估,测试图像的尺度抖动对性能的影响
在单尺度上评估 ConvNet 模型后,我们现在评估测试时尺度抖动的影响。它包括在一张测试图像的几个归一化版本上运行模型(对应于不同的 Q 值),然后对所得到的类别后进行平均。考虑到训练和测试尺度之间的巨大差异会导致性能下降,用固定 S 训练的模型在三个测试图像尺度上进行了评估,接近于训练的尺度:Q = {S−32, S, S+32}。同时,训练时的尺度抖动允许网络在测试时应用于更广的尺度范围,所以用变量 S ∈ [Smin; Smax] 训练的模型在更大的尺寸范围 Q = {Smin, 0.5 (Smin + Smax), Smax} 上进行评估。
稠密和多裁剪图像评估
Dense(密集评估),即指全连接层替换为卷积层(第一 FC 层转换到 7×7 卷积层,最后两个 FC 层转换到 1×1 卷积层),最后得出一个预测的 score map,再对结果求平均。
multi-crop,即对图像进行多样本的随机裁剪,将得到多张裁剪得到的图像输入到网络中,最终对所有结果平均
模型特性
整个网络都使用卷积核尺寸为 3×3 和最大池化尺寸 2×2。
VGGNet 在训练时有一个小技巧,先训练浅层的的简单网络 VGG11,再复用 VGG11 的权重来初始化 VGG13,如此反复训练并初始化 VGG19,能够使训练时收敛的速度更快。
在训练过程中使用多尺度的变换对原始数据做数据增强,使得模型不易过拟合。
参考:
https://www.bbsmax.com/A/o75Nv7M95W/
https://www.cnblogs.com/bigcindy/p/10688835.html
备注:公众号菜单包含了整理了一本AI小抄,非常适合在通勤路上用学习。往期精彩回顾
那些年做的学术公益-你不是一个人在战斗适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(第一部分)备注:加入本站微信群或者qq群,请回复“加群”加入知识星球(4500+用户,ID:92416895),请回复“知识星球”喜欢文章,点个在看
卷积神经网络之 - VGGNet相关推荐
- 深度学习经典卷积神经网络之VGGNet
论文地址:https://arxiv.org/abs/1409.1556 VGGNet是牛津大学计算机视觉组(VisualGeometry Group)和GoogleDeepMind公司的研究员一起研 ...
- python使用卷积神经网络(CNN,VGGNET)识别猫狗
权重文件请点赞关注收藏后私信博主要 卷积神经网络的知识此处不再赘述 如不有疑问可以参考这篇文章CNN卷积神经网络 接下来的代码使用VGGNET模型去识别不同图片的特征,我们将使用ImageNet数据集 ...
- 【动手学深度学习】之 现代卷积神经网络 AlexNet VGGNet NIN 习题解答
动手学深度学习 7.1 AlexNet 试着增加迭代轮数.对比LeNet的结果有什么不同?为什么? 增加迭代次数,LeNet的准确率比AlexNet低,因为复杂的网络有着更强的学习能力. LeNet ...
- 深度学习之卷积神经网络 VGGNet
2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发出了新的深度卷积神经网络:VGGNet,并取得了ILSVRC2014比 ...
- 经典卷积神经网络的学习(二)—— VGGNet
1. 简介 VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发的深度卷积神经网络,其主要探索了卷积神经网络的深度 ...
- 卷积神经网络的网络结构——VGGNet
######<Very Deep Convolutional Networks for Large-scale Image Recognition> 2014,牛津大学计算机视觉组(Vis ...
- TensorFlow实战:经典卷积神经网络(AlexNet、VGGNet)
下面表格是两个网络的简单比较: 特点 AlexNet VGGNet 论文贡献 介绍完整CNN架构模型(近些年的许多CNN模型都是依据此模型变种来的)和多种训练技巧 CNN模型复兴的开山之作 使用GPU ...
- TensorFlow实战:Chapter-4(CNN-2-经典卷积神经网络(AlexNet、VGGNet))
引言 AlexNet AlexNet 简介 AlexNet的特点 AlexNet论文分析 引言 介绍 数据集 网络架构 注解 注解 减少过拟合 训练细节 结果 讨论 参考文献略 AlexNet在Ten ...
- 从LeNet到GoogLeNet:逐层详解,看卷积神经网络的进化
「免费学习 60+ 节公开课:投票页面,点击讲师头像」 作者 | MrCharles 来源 | CSDN原力计划获奖作品 (*点击阅读原文,查看作者更多文章) 前言 深度学习的兴起使卷积神经网络在计算 ...
最新文章
- 第四周项目五-用递归方法求解(输出Fibnacci序列的第20个数)
- K-近邻(KNN)算法
- Spring boot显示登录用户
- 【译】How to create your own Question-Answering system easily with python
- 2D Perlin噪点
- python实现以及所有排序大总结【转】
- LINUX系统管理与应用
- php variables,浅析PHP原理之变量(Variables inside PHP)
- java铲车_深入研究Java类装载机制
- List(JDK1.7)(2)
- JNI 概述 (翻译)
- 新鲜出炉的自主协同操作系统研讨会纪要
- c# 类的序列化,以及嵌套问题
- python优化包_Python中优化NumPy包使用性能的教程
- 做Meta分析要用哪些软件?Meta分析软件盘点,含软件安装包!
- tf卡工具android,SD/TF卡专用格式化工具
- 在android studio开发中,关于绘制GifView异常,硬件加速问题的解决办法
- JAVA垃圾回收器与垃圾回收算法
- 物联网安全硬件修改系列-硬改
- 【论文泛读】ChineseBERT:融合字形与拼音信息的中文预训练模型
热门文章
- 《程序是怎样跑起来的》第一章
- PHP中call user func()和call_user_func_array()调用自定义函数小结
- 浅析SQL Server数据库中的伪列以及伪列的含义
- hdu_2243_考研路茫茫——单词情结(AC自动机+矩阵)
- 转-iOS开发系列--地图与定位
- ggplot2绘图入门系列之二:图层控制与直方图
- POJ 3207 Ikki's Story IV - Panda's Trick (POJ 六道2-SAT之一)
- 让win7提速几倍的10个方法
- 解决通过 Visual Studio 打不开 ui 文件的问题
- 软件工程导论个人项目 -- 中小学数学卷子自动生成程序