热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VGG入门

转载自深度学习之基础模型-VGGVGG论文给出了一个非常振奋人心的结论:卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用。记得在AlexN

转载自深度学习之基础模型-VGG

VGG论文给出了一个非常振奋人心的结论:卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用。记得在AlexNet论文中,也做了最后指出了网络深度的对最终的分类结果有很大的作用。这篇论文则更加直接的论证了这一结论。

作者Karen Simonyan & Andrew Zisserman来自Visual Geometry Group, Department of Engineering Science, University of Oxford


网络结构

这里写图片描述
[图片来源]

论文指出:


  • VGG不仅在ILSVRC的分类和检测任务中取得了the state-of-the-art的精度
  • 在其他数据集上也具有很好的推广能力

结构Architecture


名称说明
输入图像大小224x224
预处理减去均值
卷积核3x3,1x1
padding1 for 3x3
Max-pooling2x2 s-2
激活函数ReLU

说明:

*1x1卷积核:降维,增加非线性性*3x3卷积核:多个卷积核叠加,增加空间感受野,减少参数

论文中,作者指出,虽然LRN(Local Response Normalisation)在AlexNet对最终结果起到了作用,但在VGG网络中没有效果,并且该操作会增加内存和计算,从而作者在更深的网络结构中,没有使用该操作。

VGG网络结构
这里写图片描述

VGG网络参数
这里写图片描述

Q1: 为什么3个3x3的卷积可以代替7x7的卷积?


  • 3个3x3的卷积,使用了3个非线性激活函数,增加了非线性表达能力,使得分割平面更具有可分性
  • 减少参数个数。对于C个通道的卷积核,7x7含有参数72C2,参数大大减少

Q2: 1x1卷积核的作用


  • 在不影响感受野的情况下,增加模型的非线性性
  • 1x1卷机相当于线性变换,非线性激活函数起到非线性作用

Q3: 网络深度对结果的影响(同年google也独立发布了深度为22层的网络GoogleNet)


  • VGG与GoogleNet模型都很深
  • 都采用了小卷积
  • VGG只采用3x3,而GoogleNet采用1x1, 3x3, 5x5,模型更加复杂(模型开始采用了很大的卷积核,来降低后面卷机层的计算)

模型框架

VGG采用了min-batch gradient descent去优化multinomial logistic regression objective


名称说明
batch size256
momentum0.9
learn rate102)
max iterations370K/74epochs

正则化方法:


  • 增加了对权重的正则化,5104||W||L2
  • 对FC全连接层进行dropout正则化,dropout ratio = 0.5

说明:虽然模型的参数和深度相比AlexNetyou 了很大的增加,但是模型的训练迭代次数却要求更少:a)正则化+小卷积核,b)特定层的预初始化

初始化策略:


  • 首先,随机初始化网络结构A(A的深度较浅)
  • 利用A的网络参数,给其他的模型进行初始化(初始化前4层卷积+全连接层,其他的层采用正态分布随机初始化,mean=0,var=102, biases = 0)最后证明,即使随机初始化所有的层,模型也能训练的很好

训练输入:
采用随机裁剪的方式,获取固定大小224x224的输入图像。并且采用了随机水平镜像和随机平移图像通道来丰富数据。

Training image size: 令S为图像的最小边,如果最小边S=224,那么做完224x224区域随机裁剪后,每张裁剪图,只能覆盖原图的一小部分内容。
注:因为训练数据的输入为224x224,从而图像的最小边S,不应该小于224

数据生成方式:首先对图像进行放缩变换,将图像的最小边缩放到S大小,然后


  • 方法1: 在S=224和S=384的尺度下,对图像进行224x224区域随机裁剪
  • 方法2: 令S随机的在[Smin,Smax])

预测方式:作者考虑了两种预测方式:


  • 方法1: multi-crop,即对图像进行多样本的随机裁剪,然后通过网络预测每一个样本的结构,最终对所有结果平均
  • 方法2: densely, 利用FCN的思想,将原图直接送到网络进行预测,将最后的全连接层改为1x1的卷积,这样最后可以得出一个预测的score map,再对结果求平均

上述两种方法分析:


  • Szegedy et al.在2014年得出multi-crops相对于FCN效果要好
  • multi-crops相当于对于dense evaluatio的补充,原因在于,两者在边界的处理方式不同:multi-crop相当于padding补充0值,而dense evaluation相当于padding补充了相邻的像素值,并且增大了感受野
  • multi-crop存在重复计算带来的效率的问题

While we believe that in practice the increased computation time of
multiple crops does not justify the potential gains in accuracy.
最终,作者认为相对于multi-crop的在精度上的提高并不能弥补其在计算量上的消耗,但作者最后还是对比了这两种方法的效果



效果分析


单尺度

这里写图片描述
结论:


  • 模型E(VGG19)的效果最好,即网络越深,效果越好
  • 同一种模型,随机scale jittering的效果好于固定S大小的256,384两种尺度,即scale jittering数据增强能更准确的提取图像多尺度信息

多尺度

这里写图片描述

结论:


  • 对比单尺度预测,多尺度综合预测,能够提升预测的精度
  • 同单尺度预测,多尺度预测也证明了scale jittering的作用

多尺度裁剪

这里写图片描述

结论:


  • 数据生成方式multi-crop效果略优于dense,但作者上文也提高,精度的提高不足以弥补计算上的损失
  • multi-crop于dense方法结合的效果最后,也证明了作者的猜想:multi-crop和dense两种方法互为补充

模型融合

这里写图片描述

结论:


  • 通过多种模型融合输出最终的预测结果,能达到the state-of-the-art的效果

对比

这里写图片描述
结论:


  • 与其他模型对比发现,VGG也能达到非常好的效果。

总结

作者指出,VGG模型不仅能够在大规模数据集上的分类效果很好,其在其他数据集上的推广能力也非常出色。


参考文献

[1].https://arxiv.org/pdf/1409.1556.pdf
[2].http://blog.csdn.net/wangsidadehao/article/details/54311282
[3].http://www.360doc.com/content/17/0624/10/10408243_666125650.shtml
[4].https://www.cs.toronto.edu/~frossard/post/vgg16/
[5].http://www.jianshu.com/p/9c6d90e4f20e


推荐阅读
  • 论文阅读:《Bag of Tricks for LongTailed Visual Recognition with Deep Convolutional Neural Networks》
    基于深度卷积神经网络的长尾视觉识别技巧包摘要近年来,挑战性长尾分布上的视觉识别技术取得了很大的进展,主要基于各种复杂的范式(如元学习)。除了这些复杂 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • FIN7后门工具伪装成白帽工具进行传播
    fin7,后门,工具,伪装,成,白, ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
author-avatar
丁扣其
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有