ResNet论文解读—Residual Learning Deep for lmage Recognition(2016)

news2024/11/17 12:55:54

ResNet论文解读—Residual Learning Deep for lmage Recognition(2016)

研究背景

图像识别中的深度残差学习网络(MSRA:微软亚洲研究院)

认识数据集:ImageNet的大规模图像识别挑战赛

LSVRC-2015:ImageNet Large Scale Visual Recoanition Challenge(15年的相关比赛)

ILSVRC:大规模图像识别挑战赛

ImageNet Large Scale Visual RecognitionChallenge是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展。

比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scenearsing)

竞赛中脱颖而出大量经典模型:alexnet, vgg,googlenet, resnet, densenet等

相关的研究

与之相关的一篇论文:Highway Network:首个成功训练成百上千层(100及900层)的卷积神经网络

思路:借鉴LSTM,引入门控单元,将传统前向传播增加一条计算路径。

研究的成果

霸榜各大比赛仅采用ResNet结构,无额外的技巧夺得五个冠军,且与第二名拉开差距ImageNet分类、定位、检测、COCO检测、分割。

研究的意义

  1. 简洁高效的ResNet受到工业界宠爱,自提出以来已经成为工业界最受欢迎的卷积神经网络结构
  2. 近代卷积神经网络发展史的又一里程碑,突破千层网络,跳层连接成为标配

在这里插入图片描述

论文解读

摘要

Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers—8× deeper than VGG nets [40] but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers. The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of our submissions to ILSVRC & COCO 2015 competitions1 , where we also won the 1stplaces on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.

摘要的核心总结:

  1. 提出问题:深度卷积网络难训练
  2. 本文方法:残差学习框架可以让深层网络更容易训练
  3. 本文优点:ResNet易优化,并随着层数增加精度也能提升
  4. 本文成果:ResNet比VGG深8倍,但是计算复杂度更低,在ILSVRC-2015获得3.57%的top-error
  5. 本文其它工作:CIFAR-10上训练1000层的ResNet
  6. 本文其它成果:在coco目标检测任务中提升28%的精度,并基于ResNet夺得ILSVRC的检测、定位COCO的检测和分割四大任务的冠军

论文的结构

  1. Introduction
  2. RelatedWork
  3. DeepResidual Learning
  • 3.1 Residual Learning
  • 3.2 Identity Mapping by Shortcuts
  • 3.3 NetworkArchitectures
  • 3.4lmplementation
  1. Experiment
  • 4.1 ImageNetClassification
  • 4.2CIFAR-10andAnalysis
  • 4.3.Object Detection on PASCAL and MSCoCo

图1.CIFAR-10上对比浅层网络和深层网络的精度(plainnetwork)
在这里插入图片描述

核心的图示:残差学习模块的图示:

在这里插入图片描述

其他部分的图表在论文的解读部分在进一步的进行介绍。

残差结构

残差结构(residual learning)

首先残差学习:是指让网络层拟合H(x)-x,而非H(×)

注:整个buildingblock仍l日拟合H(x),Block_out =H(×)

而对于残差学习来说:Residual learning:Block out=H (x)=F (x)+x

在这里插入图片描述

根据上面的图像提出问题:

  1. 为什么拟合的是F(x)

提供buildingblock更容易学到恒等映射(identity mapping)的可能

  1. 为什么拟合F(x)就使得buildingblock容易学到恒等映射?

当网络层的输出为0时会得到,H(x)=x的恒等映射让深层网络不至于比浅层网络差,解决了网络退化的问题(图表反映的问题)。

网络退化(degradation problem)

越深的网络拟合能力越强,因此越深的网络训练误差应该越低,但实际相反。

原因:并非过拟合,而是网络优化困难

在这里插入图片描述
在论文的原文中也给出了解答:

Unexpectedly,such degradation is not caused by overfitting, and adding more layers to a suitably deep model leads to higher training error, as reported in [10, 41] and thoroughly verified by our experiments. Fig. 1 shows a typical example.

因为网络难以优化而存在网络的退化问题,32层的网络的训练效果,并没有18层网络的训练效果更好。

之后提出的一个问题是:如何让32层的网络,可以达到18层网络的训练效果呢?

在这里插入图片描述

即图中的连接都为恒等映射,相当于直线时两者之间就可以等价。从而也就自然的引出了之前的残差结构与residual learning==shortcut connection的概念。

在这里插入图片描述

残差结构的运算过程

F ( x ) = W 2 ⋅ ReLu ⁡ ( W 1 ⋅ x ) H ( x ) = F ( x ) + x = W 2 ⋅ ReLu ⁡ ( W 1 ⋅ x ) + x \begin{array}{l} F(x)=W_{2} \cdot \operatorname{ReLu}\left(W_{1} \cdot \mathrm{x}\right) \\ \mathrm{H}(x)=F(x)+x=W_{2} \cdot \operatorname{ReLu}\left(W_{1} \cdot \mathrm{x}\right)+x \end{array} F(x)=W2ReLu(W1x)H(x)=F(x)+x=W2ReLu(W1x)+x

若F(x)为0,则H(x)=x,网络实现恒等映射 在X相加的过程中要满足的时维度相同的概念。(逐元素相加)

在这里插入图片描述

shortcut connection 特指的是残差学习的连接方式,论文中也提出了几种连接的策略

Identity与F(x)结合形式探讨:

  1. A-全零填充:维度增加的部分采用零来填充
  2. B-网络层映射:当维度发生变化时,通过网络层映射(例如:1*1卷积)特征图至相同维度
  3. C-所有Short cut均通过网络层映射(例如:1*1卷积)

通常使用的是策略二:在动手学深度学习的实验中使用的是策略三:
在这里插入图片描述

残差结构优势

说明残差结构为什么能训练上千层的网络?

Shortcut mapping有利于梯度传播(H(x)=F(x)+x)

∂ H ∂ x = ∂ F ∂ x + ∂ x ∂ x = ∂ F ∂ x + 1 \frac{\partial H}{\partial x}=\frac{\partial F}{\partial x}+\frac{\partial x}{\partial x}=\frac{\partial F}{\partial x}+1 xH=xF+xx=xF+1

恒等映射使得梯度畅通无阻的从后向前传播这使得ResNet结构可拓展到上干层(1202层)

适合梯度的反向传播

ResNet网络结构

在这里插入图片描述
我们对于resnet18来说,第一个网络层的步骤与之前分析的Googlenet相同,输入是224x224 x3的输入,经过7x7的卷积核,得到112x112的一个输出

F o = ⌊ F in  − k + 2 p s ⌋ + 1 F_{o}=\left\lfloor\frac{F_{\text {in }}-k+2 p}{s}\right\rfloor+1 Fo=sFin k+2p+1

首先进行7x7的步长为2的卷积运算(padding=3做减半运算

=(224-7+6)/2 +1=112

第二次池化的padding=1做减半运算
=(112+2-1)/2 +1 =56

  1. 头部迅速降低分辨率
  2. 4阶段残差结构堆叠
  3. 池化+FC层输出

根据论文中restnet的结构,论文中也给出了两种常见的堆叠方式。如下图所示

在这里插入图片描述

即为restnet18/34与之后的50/101/152的结构

  • 第一个1*1下降1/4通道数(降低通道数减少运算)
  • 第二个1*1提升4倍通道数(保证逐个元素相加)

预热训练

We further explore n = 18 that leads to a 110-layer
ResNet. In this case, we find that the initial learning rate
of 0.1 is slightly too large to start converging 5. So we use 0.01 to warm up the training until the training error is below80% (about 400 iterations), and then go back to 0.1 and continue training. The rest of the learning schedule is as done previously. This 110-layer network converges well (Fig. 6,middle).

避免一开始较大学习率导致模型的不稳定,因而一开始训练时用较小的学习率训练一个epochs,然后恢复正常学习率

实验结果与分析

实验1:验证residuallearning可解决网络退化问题,可训练更深网络

在这里插入图片描述
在这里插入图片描述

实验2:横纵对比,shortcut策略(ABC)及层数

在这里插入图片描述

实验3:成功训练干层神经网络Cifar-10数据集上成功训练1202层卷积网络

在这里插入图片描述

总结:以上就是对ResNet论文的解读,在学习完成CV的基础网络后,更应该结合论文的全文或者翻译,在日后进一步的进行学习,相信会有不同的体会。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 中资源文件夹RES/RAW和ASSETS的使用区别

文章目录 1、res/raw 文件夹1.1、特点1.2、使用方法1.3、示例: 2. assets 文件夹2.1、特点2.2、使用方法2.3、示例: 3、使用场景3.1、res/raw 使用场景3.2、assets 使用场景 4、比较与选择5、文件夹选择的建议6、 示例代码总结6.1、res/raw 示例6.2、ass…

Raven2掠夺者2渡鸦2账号需要验证怎么解决 超简单验证账号教程

《渡鸦2》是一款源自韩国的创新力作,作为《Raven》系列的最新续篇,这款游戏在MMORPG手游领域内再度扩展了其标志性的暗黑奇幻宇宙,融入了大量革新的游戏设计与丰富内容。定档于2024年5月29日开启公测的《渡鸦2》,正处在紧张刺激的…

2024年物理化学与工程技术发展国际会议(ICPCETD 2024)

全称:2024年物理化学与工程技术发展国际会议(ICPCETD 2024) 会议网址:http://www.icpcetd.com 会议时间: 2024.06.30 截稿时间:2024.06.21 会议地点: 上海 投稿邮箱:icpcetd_info163.com 投稿标题:ArticleT…

【UE C++】 虚幻引擎C++开发需要掌握的C++和U++的基础知识有哪些?

目录 0 引言1 关键的 C 知识2 Unreal Engine 相关知识3 学习建议 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:【UE C】 虚幻引擎C开发需要掌握的C和U的基础知识有哪些?❣️ 寄语&…

代码随想录算法训练营第五十三天||1143.最长公共子序列、1035.不相交的线、53. 最大子序和

文章目录 一、1143.最长公共子序列 思路 二、1035.不相交的线 思路 三.53. 最大子序和 思路 一、1143.最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原…

VPN的详细理解

VPN(Virtual Private Network,虚拟私人网络)是一种在公共网络上建立加密通道的技术,通过这种技术可以使远程用户访问公司内部网络资源时,实现安全的连接和数据传输。以下是对VPN的详细介绍: 选择代理浏览器…

node_相关知识点

Node.js采用谷歌的V8引擎,是一个服务器端的、非阻断式I/O的、事件驱动的JavaScript运行环境,可优化应用程序的传输量和规模。传统服务器多线程(一个请求一个线程)易阻塞。 一、线程、进程: 进程:进程负责…

今天想看点干货?Constraintlayout等你好久啦!

大家好,我是小布丁。 从今天开始要开一个新坑啦,我会系统地把我学到的Android基础知识分享出来,我也想过这样是否有必要,毕竟分享的都是一些很基础的内容,但是很多人也和我一样正处于Android小白阶段,我能…

RedHat9 | DNS剖析-配置转发DNS服务器

一、实验环境 1、转发DNS服务器 转发服务器(Forwarding Server)接受查询请求,但不直接提供DNS解析,而是将所有查询请求发送到另外一台DNS服务器,查询到结果后保存在本地缓存中。如果没有指定转发服务器,D…

PyCharm基本配置内容

如何更换 Python 解释器 输入一段代码点击运行后,画面下方有一个路径如图中框中所示: 上面的路径为虚拟路径,可以改为我们自己设置的路径 点击设置,选择settings 选择Project:y002———》Python Interpreter&#…

MySQL 重启之后无法写入数据了?

数据库交接后因 persist_only 级别的参数设置引发的故障分析。 作者:不吃芫荽,爱可生华东交付服务部 DBA 成员,主要负责 MySQL 故障处理及相关技术支持。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系…

解密Prompt系列15. LLM Agent之数据库应用设计:DIN C3 SQL-Palm BIRD

上一章我们主要讲搜索引擎和LLM的应用设计,这一章我们来唠唠大模型和DB数据库之间的交互方案。有很多数据平台已经接入,可以先去玩玩再来看下面的实现方案,推荐 [sql translate]:简单,文本到SQL,SQL到文本…

【PID算法详解】

PID算法 PID算法介绍用途pid数学表达式及其含义P算法D算法I算法 PID总结数学公式转换代码设计实际运用PID代码实现 PID算法介绍 PID控制器是一种广泛应用于工业控制系统的反馈控制器,它通过比例(Proportional)、积分(Integral&am…

LeetCode199二叉树的右视图

题目描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 解析 这一题的关键其实就是找到怎么去得到当前是哪一层级,可以利用队列对二叉树进行层次遍历,但…

4款让人骄傲的国产软件,功能过于强大,却被误认为是外国佬研发

说到国产软件,许多人可能会有“流氓软件、弹屏广告多、隐藏消费套路”等负面印象。 这种偏见导致一些功能强大、用户友好的国产软件被误认为是外国人开发的。 1、格式工厂 格式工厂是一个很实用的国产格式转换工具,它完全免费且没有广告,不…

Dropzone 4 for Mac:一拖即达,文件处理更高效!

在繁忙的工作中,你是否曾因频繁切换应用程序和文件夹而烦恼?Dropzone 4 for Mac,这款强大的文件拖拽操作工具,将彻底改变你的工作方式! 只需简单地将文件、文本或图片拖放到Dropzone图标上,即可快速执行各种…

一文搞定jdk8升级到jdk11

一、背景 为什么要升级JDK11 性能 JDK11的G1的GC性能高很多,对比JDK8无论是性能还是内存占比都有很大的提升,业内各项数据指标也都表明JDK11的G1在应对突发流量的下的效果惊人; 版本兼容 Spring Boot 2.7.x及以后的版本将不再支持Java 8作为…

Python开发 —— 对象type、object、class

1. "Python中一切皆为对象"的理解 在Python中,一切皆为对象的意思是指:无论是数字、字符串、函数、类、模块等任何数据类型,都可以被看做是一个对象。每个对象都具有自己的属性和方法,可以被操作和调用。 例如&#xff…

IP地址SSL证书应用场景以及如何申请?

一:IP地址SSL证书主要应用于以下几种场景: 1.API接口保护:许多云服务和企业内部系统使用IP地址直接作为服务的访问点,特别是在API接口的调用中。IP地址SSL证书可以为这些API接口提供必要的安全加密,确保数据在传输过程…

DreamPose: Fashion Image-to-Video Synthesis via Stable Diffusion

UW&UCB&Google&NVIDIA ICCV23https://github.com/johannakarras/DreamPose?tabreadme-ov-file 问题引入 输入参考图片 x 0 x_0 x0​和pose序列 { p 1 , ⋯ , p N } \{p_1,\cdots,p_N\} {p1​,⋯,pN​},输出对应视频 { x 1 ′ , ⋯ , x N ′ } \{x_1,…