阅读笔记: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) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...
随机推荐
- Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT SDK 配置详解
系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...
- log4net配置及使用
log4net简介 log4net库是Apache log4j框架在Microsoft.NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. log4net详解 ...
- mysql错误:java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more tha ...
- 【Java基础】面向对象上
面向对象上 这一章主要涉及 Java 类及类的成员,包括属性.方法.构造器:代码块.内部类. 面向过程与面向对象 面向过程(Procedure Oriented Programming,POP)与面向 ...
- (十一)time模块
三种时间表示 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"ty ...
- java 利用异或^进行加密
package com.zcj.eg001; import java.nio.charset.Charset; import org.junit.Test; public class Encrypti ...
- [USACO13DEC]牛奶调度Milk Scheduling
原题链接https://www.lydsy.com/JudgeOnline/problem.php?id=4096 容易想到的一个测略就是,优先考虑结束时间小的牛.所以我们对所有牛按照结束时间排序.然 ...
- 【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
欢迎使用 Blazor!Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI. 共享使用 .NET 编写的 ...
- C++导言与入门
写在开始 计算机编程语言: Remember that a program is just a sequence of instructions telling a computer what to ...
- C# socket 阻止模式与非阻止模式应用实例
问题概述 最近在处理一些TCP客户端的项目,服务端是C语言开发的socket. 实际项目开始的时候使用默认的阻塞模式并未发现异常.代码如下 1 public class SocketService 2 ...