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

2024-05-28 14:20

本文主要是介绍ResNet论文解读—Residual Learning Deep for lmage Recognition(2016),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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的基础网络后,更应该结合论文的全文或者翻译,在日后进一步的进行学习,相信会有不同的体会。

这篇关于ResNet论文解读—Residual Learning Deep for lmage Recognition(2016)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010811

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快