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的更多相关文章

  1. GoogLeNetv4 论文研读笔记

    Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 原文链接 摘要 向传统体系结构中引入 ...

  2. 【深度学习 论文篇 02-1 】YOLOv1论文精读

    原论文链接:https://gitee.com/shaoxuxu/DeepLearning_PaperNotes/blob/master/YOLOv1.pdf 笔记版论文链接:https://gite ...

  3. tensorflow学习笔记——ResNet

    自2012年AlexNet提出以来,图像分类.目标检测等一系列领域都被卷积神经网络CNN统治着.接下来的时间里,人们不断设计新的深度学习网络模型来获得更好的训练效果.一般而言,许多网络结构的改进(例如 ...

  4. 论文学习笔记 - 高光谱 和 LiDAR 融合分类合集

    A³CLNN: Spatial, Spectral and Multiscale Attention ConvLSTM Neural Network for Multisource Remote Se ...

  5. Visualizing and Understanding Convolutional Networks论文复现笔记

    目录 Visualizing and Understanding Convolutional Networks 论文复现笔记 Abstract Introduction Approach Visual ...

  6. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  7. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  8. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  9. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  10. GoogLeNetv3 论文研读笔记

    Rethinking the Inception Architecture for Computer Vision 原文链接 摘要 卷积网络是目前最新的计算机视觉解决方案的核心,对于大多数任务而言,虽 ...

随机推荐

  1. KingbaseES R6 集群备库网卡down测试案例

    数据库版本: test=# select version(); version ------------------------------------------------------------ ...

  2. 记录一下~~~Linux配置定时任务备份数据库dmp文件

    1.创建备份目录: mkdir -p /dcits/sx_xmz/sx_data_bak chown -R oracle18c:oinstall /dcits/sx_xmz/sx_data_bak 2 ...

  3. [Python]-tqdm模块-给for循环加上进度条

    import tqdm 使用tqdm模块,可以在漫长的for循环加上一个进度条,显示当前进度百分比. 将tqdm写在迭代器之外即可:tqdm(iterator) for i in tqdm(range ...

  4. JUC在深入面试题——三种方式实现线程等待和唤醒(wait/notify,await/signal,LockSupport的park/unpark)

    一.前言 在多线程的场景下,我们会经常使用加锁,来保证线程安全.如果锁用的不好,就会陷入死锁,我们以前可以使用Object的wait/notify来解决死锁问题.也可以使用Condition的awai ...

  5. aspnetcore6.0源代码编译调试

    虽然编译源码折腾了几个时间(卡在restore),最后还是跑起来了aspnetcore6.0mvc源码项目,下面说步骤,前提是网络能连外,对于不能连外的懒得折腾. 第一步 电脑找个地克隆下GitHub ...

  6. 连接FastDFS出现超时问题的解决办法

    1.使用Java语言写的web项目,jeecg框架连接FastDFS,需要修改的信息如下: # WEB-INF/classes/fdfs_client.conf connect_timeout=300 ...

  7. k8s上安装安装 Ingress Controller &卸载

    在 master 节点上执行 nginx-ingress.yaml文件内容 # 如果打算用于生产环境,请参考 https://github.com/nginxinc/kubernetes-ingres ...

  8. Ubuntu22.04 安装配置VNC Server

    如果转载, 请注明出处 https://www.cnblogs.com/milton/p/16730512.html Ubuntu22.40下VNC和远程桌面的区别 使用远程桌面时, 用户必须在hos ...

  9. Qemu/Limbo/KVM镜像:Ubuntu Mate 22.04+Wine 7.8

    链接: https://pan.baidu.com/s/1cf2c_ylu7-SUaYl8ddztog 提取码: b9mi 密码 空格 手机推荐使用termux里面的Qemu运行,速度最快. 镜像特征 ...

  10. PHP全栈开发(六):PHP与HTML页面交互

    之前我们在HTML表单学习这篇文章里面创建了一个HTML页面下的表单. 这个表单是用户用来输入数据的 具体代码如下 <!DOCTYPE html> <html> <hea ...