阅读笔记:Very Deep Convolutional Networks for Large-Scale Image Recognition
摘要:
在这篇论文我们主要研究卷积神级网络的深度对大范围图像识别效果的影响,我们发现增加神经网络层数增加到16-19层时我们的实验结果有很大的提高。这使得我们在2014年的ImageNet Challenge中取得了定位第一和分类第二的成绩。
动机:
卷积神经网络可能因为有了大量的公开图像库而取得了巨大的成功,一些图像识别比赛比如ILSVRC为图像识别系统提供了测试。卷积神经网络在计算机视觉领域更多的是变成了一个商品,很多提升卷积神经网络的准确性的尝试被提了出来,本文提出的一个尝试是增加神经网络的深度。
主要观点:
一、卷积模型
网络的输入是固定尺寸的224×224的RGB图像,唯一的预处理是每个像素减去RGB均值。这篇论文采用3×3的卷积核,步长为1,一系列卷积层后跟着一个池化层,以此反复。这里3×3的卷积核相比于7×7的卷积核有两个好处:1.包含三个ReLu层而不是一个(增加了非线性)2.使用了更少的参数。
二、训练模型
这里除了对图形采样方法不同外,其他训练过程和AlexNet一样。使用mini-batch gradient descent训练,Batch size为256,momentum为0.9,使用L2正则化,正则化系数为5×10^-4,在前两层全连接层设置dropout为0.5。初始学习率为0.01,然后当验证集上侧误差不变时,学习率除以10。权重初始化很重要,不好的初始化可能会导致网络停止学习。为了解决这个问题,我们首先训练浅层的A网络(A网络的权重随机初始化),然后训练更深层的网络时,我们使用A网络的权重参数来初始化深层网络的前4层卷积层和后3层全连接层,其余层的权重随机初始化。权重随机初始化采用0均值,方差为0.01的正态分布,偏置初始化为0。但是后来发现,不使用浅层预训练的参数,而使用随机初始化也可以。
这里对图像的训练比较重要,有两种方法:
1.固定S(训练图像)的大小,称为单尺度训练(single-scale training)。实验中,使用两种大小的S尺度进行训练,S=256和S=384。我们首先使用S=256训练网络,然后为了加速训练S=384的网络,我们使用S=256的网络的参数进行初始化,初始学习率为0.001。
2.多尺度训练(multi-scale training),即让S在[Smin, Smax]范围之内进行随机采样,然后将训练图像重新调整大小为S。由于图像中的物体大小是不同的,因此把这个考虑在内是很有用处的。这种方法也可以看成通过尺度抖动(scale jittering)来增强训练数据集。为了加快训练速度,我们在单尺度S=384模型的基础上进行fine-tuning。
三、测试模型
测试阶段,我们对于一张图, 重新定义它的规模大小,使得最短的边大于等于224,然后可以把这个图简称多个224×224的模型,分别测试,对最后测试结果取平均值。
四、评估方法
1.单尺度评估:当S为固定大小时,测试图像大小为Q=S;当S ∈ [Smin, Smax]时,Q = 0.5(Smin +Smax)
2.多尺度评估:下面评估在测试阶段使用尺度抖动带来的影响。它包括在一个测试图像(对应于不同的Q值)的几个重新缩放的版本上运行一个模型,然后平均所得到的类的后验概率。考虑到如果训练图像和测试图像如果尺度差别大的话,会导致性能的下降,因此对于固定大小的S,测试时使用3种接近S的尺寸Q={S-32,S,S+32}。对于S ∈ [Smin; Smax]的情况Q={Smin,0.5(Smin+Smax),Smax}。
3.MULTI-CROP EVALUATION
4.模型融合
五、结果
深度越深,实验结果越好,多尺度测试比单尺度测试结果要好,大量crops的测试结果可以进一步提高正确率,多模型融合也可以提高正确率。
阅读笔记:Very Deep Convolutional Networks for Large-Scale Image Recognition的更多相关文章
- 《DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks》研读笔记
<DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks>研读笔记 论文标题:DSLR-Quality ...
- 论文笔记:(2019CVPR)PointConv: Deep Convolutional Networks on 3D Point Clouds
目录 摘要 一.前言 1.1直接获取3D数据的传感器 1.2为什么用3D数据 1.3目前遇到的困难 1.4现有的解决方法及存在的问题 二.本文idea 2.1 idea来源 2.2 初始思路 2.3 ...
- Very Deep Convolutional Networks for Large-Scale Image Recognition
Very Deep Convolutional Networks for Large-Scale Image Recognition 转载请注明:http://blog.csdn.net/stdcou ...
- 目标检测--Spatial pyramid pooling in deep convolutional networks for visual recognition(PAMI, 2015)
Spatial pyramid pooling in deep convolutional networks for visual recognition 作者: Kaiming He, Xiangy ...
- VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan[‡] & Andrew Zi ...
- SPPNet论文翻译-空间金字塔池化Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
http://www.dengfanxin.cn/?p=403 原文地址 我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作.SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加 ...
- Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...
- 2014-VGG-《Very deep convolutional networks for large-scale image recognition》翻译
2014-VGG-<Very deep convolutional networks for large-scale image recognition>翻译 原文:http://xues ...
- 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...
- [论文阅读笔记] Structural Deep Network Embedding
[论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...
随机推荐
- java反射-Method中的invoke方法的用法-以及函数式接口和lambda表达式
作者最近研究框架底层代码过程中感觉自己基础不太牢固,于是写了一点案例,以防日后忘记 接口类:Animals 1 public interface Animals { 2 3 public void e ...
- Spring中的@Valid 和 @Validated注解你用对了吗
1.概述 本文我们将重点介绍Spring中 @Valid和@Validated注解的区别 . 验证用户输入是否正确是我们应用程序中的常见功能.Spring提供了@Valid和@Validated两个注 ...
- Python 中的面向接口编程
前言 "面向接口编程"写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性.维护性谁都不能拒绝 ...
- 【ASM】asm中添加 diskgroup
环境:rhel5 Oracle10g rac 背景:在esxi中添加了一个20g的共享磁盘准备存放归档日志用 一.准备环境 1.添加共享磁盘并且格式化 #fdisk -l查看磁盘已经添加完成 #fdi ...
- 【EXPDP】导出全部表的时候,选择不导出某个表
导出的时候指定某一张表不导出的话,一般都用的是数据泵的expdp来操作 具体方法是: expdp test/test dumpfile=test.dmp directory=test_dir excl ...
- 攻防世界 - Web(三)
PHP2: 1.进入页面,进行抓包或后台扫描都没有什么发现,然后网上查一波wp,发现是关于.phps文件,进入index.phps,弹出一段代码,查看源代码, <?php if("ad ...
- 误删除SAP ECC中的profile文件
环境:ECC6.0 EHP4 FOR ORACLE ON WINDWS X64下 今天在RZ10配置系统参数文件的时候,不小心错删除了instance profile文件,这下惨了,这是操作系统层级 ...
- Podinfo,迷你的 Go 微服务模板
项目介绍 Podinfo 是一个用 Go 制作的小型 web 应用程序,它展示了在 Kubernetes 中运行微服务的最佳实践. 它已实现的技术指标(截选自官方 README.md ): 里面每一 ...
- LSM(Log Structured Merge Trees ) 笔记
目录 一.大幅度制约存储介质吞吐量的原因 二.传统数据库的实现机制 三.LSM Tree的历史由来 四.提高写吞吐量的思路 4.1 一种方式是数据来后,直接顺序落盘 4.2 另一种方式,是保证落盘的数 ...
- pytest fixtures装饰器的使用
一.pytest中可以使用@pytest.fixture 装饰器来装饰一个方法,被装饰方法的方法名可以作为一个参数传入到测试方法中.可以使用这种方式来完成测试之前的初始化,也可以返回数据给测试函数. ...