ResNet《Deep Residual Learning for Image Recognition》

ResNet论文学习

  • 引言
  • Deep Residual Learning 深度残差学习
    • 网络结构
  • 总结
  • 代码复现

引言

深度网络自然地以端到端的多层方式集成低/中/高级特征和分类器,特征的“级别”可通过堆叠层的数量来丰富

随着网络层数加深,提取的特征越强,但是

网络层数越深就一定性能越好吗?答案是否定的

深层网络存在的问题

  • 梯度消失/梯度爆炸
    这个问题已经通过 normalized initialization 和 intermediate normalization layers 得到了很大程度的解决,这使得具有数十层的网络能够开始收敛随机梯度下降(SGD)与反向传播

  • 网络退化
    随着网络层数的增加,准确率趋于饱和,然后迅速下降。这说明,并不是所有的网络结构都同样容易优化。

为了解释这一现象,作者考虑了一个较浅的网络结构及其对应的更深版本,后者在前者的基础上增加了更多的层。

理论上,对于这个更深的网络,可以构造一个解:新增加的层执行 identity mapping (即直接将输入传递到输出),而其他层则复制自较浅网络中已经学习到的层(就是把较浅的网络搬过来)。这样构造出的解应该能使得更深的网络不会比其较浅的对应网络有更高的训练误差。

然而,实验显示,目前使用的优化算法似乎无法找到与这个构造解相当好或更好的解,或者在合理的时间内无法找到这样的解。这意味着,尽管理论上更深的网络不应该有更差的性能,但在实际优化过程中却遇到了困难。这也是引入残差学习(ResNet)的初衷之一,即通过学习残差来缓解这种优化难题。

为了解决深度神经网络训练中的退化问题,作者提出了深度残差学习框架。

在这个框架中,不再期望网络的几层直接拟合一个 underlying mapping,而是让这些层去拟合一个残差映射(residual mapping)。

具体而言,

假设 underlying mapping 是 H ( x ) \mathcal{H}(x) H(x),那么让堆叠的非线性层去拟合另一个映射 F : = H ( x ) − x \mathcal{F}:=\mathcal{H}(x)-x F:=H(x)x,那么原始的映射就变成了 F ( x ) + x \mathcal{F}(x)+x F(x)+x

假设优化残差映射 (residual mapping) 比优化原始的、未引用的映射更容易。

在这里插入图片描述

图中展示了残差学习的一个基本构建块。右侧的分支直接将输入 x x x 通过一个“快捷连接”传递到输出,这就是所谓的恒等映射(identity mapping)。

F ( x ) \mathcal{F}(x) F(x) 表示的是一个由 权重层和非线性激活函数(例如ReLU)组成的映射,

其目的是学习输入 x x x 和输出 H ( x ) \mathcal{H}(x) H(x) 之间的残差,即 F ( x ) : = H ( x ) − x \mathcal{F}(x) := \mathcal{H}(x) - x F(x):=H(x)x

图中所示的构建块的输出是通过将 F ( x ) \mathcal{F}(x) F(x) x x x 相加得到的,即 F ( x ) + x \mathcal{F}(x) + x F(x)+x,这里的 F ( x ) \mathcal{F}(x) F(x) 是通过两个权重层和非线性激活函数ReLU构成的子网络来学习的。

这样设计的好处是,如果 F ( x ) \mathcal{F}(x) F(x) 的理想输出是0,即不存在残差,那么 shortcut connection 可以使得恒等映射成为可能,即直接输出 x x x,这对于网络训练的稳定性和加速有很大帮助。

Deep Residual Learning 深度残差学习

网络结构

请添加图片描述

总结

残差连接最核心的地方是 Identity Mapping by Shortcuts

就是说 resnet 是结合了 identify mappingshortcut connection

shortcut connection 是那些跳过一个或多个层的连接。在本文中, shortcut connection 只是执行 identify mapping,其输出被添加到堆叠层的输出中。

identify mapping 连接既不增加额外的参数,也不增加计算复杂度。整个网络仍然可以通过反向传播的SGD进行端到端训练。

下面这个残差块中,旁边的分支首先是一个 shortcut connection,而在这个 shortcut connection 之上,执行了 identify mapping 将输入恒等映射到输出端,并与 underlying mapping 进行相加
在这里插入图片描述

代码复现

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

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

相关文章

表情识别数据集

表情视频数据集 在许多的研究中,研究者通常会把人脸表情识别区分为静态的人脸表情识别(static facial emotion recognition)和动态的人脸表情识别(dynamic facial emotion recognition)。前者希望通过单张图片辨别人的表情从而达到识别人情绪的目的,而后者希望感知视频/…

进程的概念 | PCB | Linux下的task_struct | 父子进程和子进程

在讲进程之前首先就是需要去回顾一下我们之前学的操作系统是干嘛的,首先操作系统是一个软件,它是对上提供一个良好高效,稳定的环境的,这是相对于用户来说的,对下是为了进行更好的软硬件管理的,所以操作系统…

TinyEMU源码分析之虚拟机初始化

TinyEMU源码分析之虚拟机初始化 1 初始化结构参数2 配置RAM地址空间3 初始化设备4 拷贝BIOS和Kernel5 手动写入5条指令6 体验第一条指令的执行 本文属于《 TinyEMU模拟器基础系列教程》之一,欢迎查看其它文章。 本文中使用的代码,均为伪代码&#xff0c…

vue2使用webSocket双向通讯

基于webSocket实现双向通信,使用webworker保持心跳。 由于浏览器的资源管理策略会暂停或限制某些资源的消耗,导致前端心跳包任务时效,后端接收不到webSocket心跳主动断开,因此需要使用webworker保持心跳 引入webworker npm insta…

关于安卓调用文件浏览器(一)打开并复制

背景 最近在做一个硬件产品,安卓应用开发。PM抽风,要求从app打开文件浏览器,跳转到指定目录,然后可以实现文件复制粘贴操作。 思考 从应用开发的角度看,从app打开系统文件浏览器并且选择文件,这是很常见…

.NET Framework 服务实现监控可观测性最佳实践

环境信息 系统环境:Windows Server开发语言:.NET Framework > 4.6.1APM探针包:ddtrace 准备工作 安装 Datakit 主机部署: 主机安装 - 观测云文档 打开采集 APM 采集器 Windows 主机配置 # 到如下路径,把ddtr…

广东省30m二级分类土地利用数据(矢量)

广东省,地处中国大陆最南部,属于东亚季风区,从北向南分别为中亚热带、南亚热带和热带气候,是中国光、热和水资源最丰富的地区之一。主要河系为珠江的西江、东江、北江和三角洲水系以及韩江水系。广东省面积为17.977万平方公里&…

vue+element 前端实现增删查改+分页,不调用后端

前端实现增删查改分页&#xff0c;不调用后端。 大概就是对数组内的数据进行增删查改分页 没调什么样式&#xff0c;不想写后端&#xff0c;当做练习 <template><div><!-- 查询 --><el-form :inline"true" :model"formQuery">&l…

高性能 MySQL 第四版(GPT 重译)(一)

前言 由 Oracle 维护的官方文档为您提供了安装、配置和与 MySQL 交互所需的知识。本书作为该文档的伴侣&#xff0c;帮助您了解如何最好地利用 MySQL 作为强大的数据平台来满足您的用例需求。 本版还扩展了合规性和安全性在操作数据库足迹中的日益重要作用。隐私法律和数据主…

使用Java版工程行业管理系统源码,提升工程项目的综合管理能力

工程项目管理涉及众多环节和角色&#xff0c;如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统&#xff0c;该系统支持前后端分离&#xff0c;功能全面&#xff0c;可满足不同角色的需求。从项目进度图表到施工地图&#xff0c;再到…

Java------数据结构之栈与队列(简单讲解)

本篇碎碎念&#xff1a;时隔n个月&#xff0c;继续写博客&#xff0c;假期落下的进度&#xff0c;在开学后努力追赶&#xff0c;假期不努力&#xff0c;开学徒伤悲啊&#xff0c;此时此刻真想对自己说一句&#xff0c;活该啊~~~~ 欠下的链表练习题讲解会在下次更新~~~~ 今日份励…

Ubuntu20.04 安装fcitx5输入法

序 ubuntu 20.04.3下fcitx5 需要从flatpak安装&#xff0c;&#xff08;由于qt版本&#xff0c;fcitx5-config只能安装在20.10上&#xff09;&#xff0c;中间出了各种问题&#xff0c;最后发现以下解决方案最好&#xff1a; 安装flatpak (建议使用官方ppa,版本较新) 1 2 3 …

视频素材库网站下载的地方在哪里?

视频素材库网站下载的地方在哪里&#xff1f;这是很多短视频创作者都会遇到的问题。别着急&#xff0c;今天我就来给大家介绍几个视频素材库网站下载的好去处&#xff0c;让你的视频创作更加轻松有趣&#xff01; 蛙学网&#xff1a;视频素材库网站下载的一定要选择蛙学网啦&am…

C++利用开散列哈希表封装unordered_set,unordered_map

C利用开散列哈希表封装unordered_set,unordered_map 一.前言1.开散列的哈希表完整代码 二.模板参数1.HashNode的改造2.封装unordered_set和unordered_map的第一步1.unordered_set2.unordered_map 3.HashTable 三.string的哈希函数的模板特化四.迭代器类1.operator运算符重载1.动…

【计算机考研】杭电 vs 浙工大 怎么选?

想求稳上岸的话&#xff0c;其他几所学校也可以考虑&#xff0c;以留在本地工作的角度考虑&#xff0c;这几所学校都能满足你的需求。 如果之后想谋求一份好工作&#xff0c;肯定优先杭电是比较稳的&#xff0c;当然复习的时候也得加把劲。 这个也可以酌情考虑&#xff0c;报…

C# 设置AutoScroll为true没效果的原因分析和解决办法

C#中添加tabControl 分页&#xff0c;将autoscroll设置为true发现缩小窗口没有滚动条效果。该问题出现后&#xff0c;检索发现也有很多人询问了该问题&#xff0c;但是都没有给出解决方案。 原因是内部button的属性Anchor设置为top、left、right、bottom导致的缩小界面窗口也没…

为什么Hashtable不允许插入nuIl键和null值?

1、典型回答 浅层次的来回答这个问题的答案是&#xff0c;JDK 源码不支持 Hashtable 插入 value 值为 null&#xff0c;如以下 JDK 源码所示&#xff1a; 也就是 JDK 源码规定了&#xff0c;如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常。 并且看上面的 JDK …

【Ubuntu】FTP站点搭建

配置顺序 前提条件&#xff1a;确保软件仓库可以正常使用&#xff0c;确保已正常配置IP地址 1.安装FTP服务 2.编辑FTP配置文件 3.设置开机自启 4.创建用户 5.配置用户限制名单 6.重启服务 7.查看运行状态 8.测试在同一局域网下的Windows查看文件 1.安装FTP服务 sudo apt insta…

【STM32嵌入式系统设计与开发】——8usart(串口通讯实验)

这里写目录标题 一、任务描述二、任务实施1、ActiveBeep工程文件夹创建2、函数编辑&#xff08;1&#xff09;主函数编辑&#xff08;2&#xff09;USART1初始化函数(usart1_init())&#xff08;3&#xff09;USART数据发送函数&#xff08; USART1_Send_Data&#xff08;&…

Tempo Talents | 创新专业建设方案,赋能高校4+N大数据学科人才培养

数字经济成为国家战略&#xff0c;是新一轮的经济发展引擎&#xff0c;数字人才、复合型人才成为发展的关键和核心要素。各级政府、区域开始以区域产业为导向&#xff0c;培育、聚集产业所需的数智化人才。 高校作为人才培养的重要基地&#xff0c;也发挥着不可或缺的作用。他…