【DL论文精读笔记】ResNet
Abstract
利用残差学习架构释放深度
152层深度是VGG的8倍,且复杂度更低
ImageNet上的错误率3.57%
在ILSVRC和2015COCO竞赛,在多项任务拿到第一
3.1 Introduction
Figure 1:
普通深度神经网络的训练错误率和测试错误率,结果表明,层数越高,错误率越大
回答网络过深导致的梯度下降和梯度爆炸问题:通过归一初始化层和中间归一层来解决
普通网络随着层数加深导致准确率退化
底层映射为H(X),则我们堆叠的非线性层去拟合另一个映射F(X)=H(X)-X,则原始映射就变成F(X)+X
核心思想
3.2 Related Work
3.2.1残差表示
看不懂
3.2.2快速连接
文献[39,38,31,47]提出了对于中心层响应、梯度,传播误差,可以通过快速连接实现
“高速公路网络”提供了带有门控功能的快速连接
3.3.Deep Residual Learning
3.3.1 Residual Learning
普通网络深度加深所带来的错误率退化问题激发了重塑结构的想法,这个问题也表明,求解器在近似映射多个非线性层上存在困难
3.3.2 Identity Mapping by Shortcuts
看不懂
3.3.3 Network Architectures

构造了两种模型,34层普通网络以及34层残差网络
Plain Network
参考了VGG网络
卷积层大多数有3x3的卷积核,还有两个设计规则: (i) 对于同一个输出的特征图大小,该层有相同的滤波器数 (ii) 如果特征图大小减半,滤波器的数量加倍
最后是1000路的全连接层和softmax输出
模型比VGG有更少的滤波器和更低的复杂度
Residual Network
输入输出维度相同,则直接使用 identity shortcut
如果维度增加则(A)快速通道仍然执行identity mapping,用零填充来增加维度 (B)Eqn.(2)中的投影快捷方式用于匹配维度(通过1×1卷积完成)。对于这两种选项,当快速通道跨越两种大小的特征映射时,它们的步幅为2
Implementation
一些实现的细节
图片被重新调整大小短边随机采样在[256,480]范围
每个像素减均值
标准的增强,亮度、饱和度的东西调一调
批量大小256,学习率0.1,当错误率比较平的时候就除10(目前不用这种方法)
测试时给一张图片,在里面随机采样十个图片,然后预测十个子图,最后取平均
3.4. Experiments
3.4.1 ImageNet Classification
通过对18,34层的普通网络和残差网络进行实验对比,普通网络的34层比18层在ImageNet上的错误率高,而残差网络的实验结果则相反
当网 "不是太深"(这里是18层)时,目前的SGD求解器仍然能够找到普通网络的良好解决方案。在这种情况下,ResNet通过在早期阶段提供更快的收敛而缓解了优化
Identity vs. Projection Shortcuts
标识捷径 vs 投影捷径

比较三种不同的捷径结构
A:零填充捷径来增加维度 B:输出通道数改变才用投影 C:所有都用投影
注:输入和输出通道数不同的时候要投影,投影就是乘上一个1x1矩阵,不改变输入大小,只改变通道
结果表明都比普通网络要好
但是A/B/C之间的微小差异表明,投影捷径对于解决退化问题并不重要。所以我们在本文的其余部分不使用选项C,以减少内存/时间复杂性和模型大小。
Deeper Bottleneck Architectures
作者给出若设计大于50层更深的resnet的思路,就是引入Bottleneck(瓶颈)

设计思路:
当网络更深,可以学到更多的模式,通道数就会变大,计算复杂度会提高,64*4 = 256,解决该问题可以先用1x1的卷积将256维映射为64维,然后再映射回256维,

34层的resnet和50层的作对比,因为引入了Bottleneck结构,使得层数变深,通道数翻倍的情况下,FLOPs提升得也不是很多
更深的层设计:
101-layer and 152-layer ResNets:
与目前的sota模型比较:

3.4.2 CIFAR-10数据集上的训练分析
提出在训练集上训练,在测试集上评估的实验
采用简单的网络架构

Resnet在梯度消失上的作用:

红色部分为未加Resnet的梯度推导,层数越深则,按链式乘法法则会导致梯度越来越小
蓝色部分为Resnet的梯度推导,加上了g(X)则避免了上述问题
【DL论文精读笔记】ResNet的更多相关文章
- GoogLeNetv4 论文研读笔记
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 原文链接 摘要 向传统体系结构中引入 ...
- 【深度学习 论文篇 02-1 】YOLOv1论文精读
原论文链接:https://gitee.com/shaoxuxu/DeepLearning_PaperNotes/blob/master/YOLOv1.pdf 笔记版论文链接:https://gite ...
- tensorflow学习笔记——ResNet
自2012年AlexNet提出以来,图像分类.目标检测等一系列领域都被卷积神经网络CNN统治着.接下来的时间里,人们不断设计新的深度学习网络模型来获得更好的训练效果.一般而言,许多网络结构的改进(例如 ...
- 论文学习笔记 - 高光谱 和 LiDAR 融合分类合集
A³CLNN: Spatial, Spectral and Multiscale Attention ConvLSTM Neural Network for Multisource Remote Se ...
- Visualizing and Understanding Convolutional Networks论文复现笔记
目录 Visualizing and Understanding Convolutional Networks 论文复现笔记 Abstract Introduction Approach Visual ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- GoogLeNetv3 论文研读笔记
Rethinking the Inception Architecture for Computer Vision 原文链接 摘要 卷积网络是目前最新的计算机视觉解决方案的核心,对于大多数任务而言,虽 ...
随机推荐
- .NET 7 RC1 正式发布
从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月14日发布了 .NET 7 RC 1:https://devblogs.microsoft.com/dotnet/a ...
- [Python]-tqdm模块-给for循环加上进度条
import tqdm 使用tqdm模块,可以在漫长的for循环加上一个进度条,显示当前进度百分比. 将tqdm写在迭代器之外即可:tqdm(iterator) for i in tqdm(range ...
- 无线配置多一个路由器作为家庭wifi的无线热点?
以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/ 手头上有个 MERCURY 的破旧路由器,怎么配置它,让它作为 ...
- 前端必读2.0:如何在React 中使用SpreadJS导入和导出 Excel 文件
最近我们公司接到一个客户的需求,要求为正在开发的项目加个功能.项目的前端使用的是React,客户想添加具备Excel 导入/导出功能的电子表格模块. 经过几个小时的原型构建后,技术团队确认所有客户需求 ...
- Stream流式计算
Stream流式计算 集合/数据库用来进行数据的存储 而计算则交给流 /** * 现有5个用户,用一行代码 ,一分钟按以下条件筛选出指定用户 *1.ID必须是偶数 *2.年龄必须大于22 *3.用户名 ...
- 在 Traefik 中使用 Kubernetes Gateway API
文章转载自:https://mp.weixin.qq.com/s/QYy8ETBB-xqU0IMI7YuTWw Gateway API(之前叫 Service API)是由 SIG-NETWORK 社 ...
- 第六章:Django 综合篇 - 5:自定义django-admin命令
我们可以通过manage.py编写和注册自定义的命令. 自定义的管理命令对于独立脚本非常有用,特别是那些使用Linux的crontab服务,或者Windows的调度任务执行的脚本.比如,你有个需求,需 ...
- Kibana:如何让用户匿名访问 Kibana 中的 Dashboard
文章转载自:https://elasticstack.blog.csdn.net/article/details/118152293 有一个很好的 Dashboard,我们想分析这个 Dashboar ...
- 修改 Docker容器 自动启动/不自动启动,挂载路径,存储位置
有时候创建容器时忘了添加参数 --restart=always,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker conta ...
- 实战---在Portainer中编排docker-compose.yml文件
选择要部署容器的主机上,不用事先安装配置docker-compose 官方示例文档地址,2.0版本的:https://docs.docker.com/compose/compose-file/comp ...