ResNet(CVPR2016)

news2024/11/29 20:36:17


文章目录

  • Abstract
  • Introduction
  • Related Work
    • Residual Representations
    • Shortcut Connections
  • Deep Residual Learning
    • Residual Learning
    • Identity Mapping by Shortcuts
  • Experiment
  • Conclusion

原文链接

Abstract

深层的神经网络更难训练,我们提出了一个残差学习框架,以简化比以前使用的网络深度大得多的网络的训练。我们明确地将层重新表述为参考层输入的学习残差函数,而不是学习未参考的函数。我们提供了全面的经验证据,表明这些残余网络更容易优化,并且可以从相当大的深度提高精度,解决了层数变深误差在训练集测试集都增大问题

Introduction

深度卷积神经网络[22,21]在图像分类方面取得了一系列突破[21,49,39]。深度网络自然地以端到端的多层方式集成低/中/高层特征[49]和分类器,并且特征的“级别”可以通过堆叠层的数量(深度)来丰富。
最近的证据表明网络深度至关重要,在深度的重要性的驱使下,一个问题出现了:学习更好的网络就像堆叠更多的层一样简单吗?回答这个问题的一个障碍是臭名昭著的梯度消失/爆炸问题[14,1,8],它从一开始就阻碍了收敛。这个问题已经通过规范化初始化[23,8,36,12]和中间规范化层在很大程度上得到了解决

当更深的网络能够开始收敛时,一个退化问题就暴露出来了:随着网络深度的增加,精度趋于饱和(这可能不足为奇),然后迅速退化。出乎意料的是,这种退化并不是由过拟合引起的,在适当深度的模型上添加更多的层会导致更高的训练误差,这一点在[10,41]中有报道,我们的实验也充分验证了这一点。图1是一个典型的例子
在本文中,我们通过引入深度残差学习框架来解决退化问题
形式上,将期望的底层映射表示为H(x),我们让堆叠的非线性层适合F(x)= H(x) - x的另一个映射,原始映射被重新映射为F(x)+x

F(x)+x的表达式可以通过具有“快捷连接”的前馈神经网络来实现,在我们的例子中,快捷连接只是执行身份映射,它们的输出被添加到堆叠层的输出中(图2)。身份快捷连接既不增加额外的参数,也不增加计算复杂性,整个网络仍然可以通过反向传播的SGD进行端到端训练,并且可以使用通用库(例如Caffe[19])轻松实现,而无需修改求解器。

我们发现:1)我们的极深残差网络很容易优化,但对应的“普通”网络(简单地堆叠层)在深度增加时表现出更高的训练误差;2)我们的深度残差网络可以很容易地从深度的大大增加中获得精度的提高,产生的结果比以前的网络要好得多

进行了一系列实验,取得了非常好的结果。。。极深表征在其他识别任务上也有出色的泛化性能,并使我们在ILSVRC & COCO 2015竞赛中进一步在ImageNet检测、ImageNet定位、COCO检测和COCO分割方面获得第一名

Related Work

Residual Representations

VLAD、Multigrid等方法表明,良好的重新配方或预处理可以简化优化过程

Shortcut Connections

与我们的研究同时进行的还有“highway network”[41,42],它们具有门控功能,提供了快捷连接
这些门是数据依赖的,有参数,而我们的身份快捷方式是无参数的
我们的公式总是学习残差函数;我们的身份快捷键永远不会关闭,所有的信息总是通过附加的残余函数来学习

Deep Residual Learning

Residual Learning

把H(x)看作是由几个堆叠层(不一定是整个网络)拟合的底层映射,其中x表示这些层的第一层的输入。如果假设多个非线性层可以渐近逼近复杂函数,那么等价假设它们可以渐近逼近残差函数,即H(x)−x(假设输入和输出具有相同的维数)
因此,我们不是期望堆叠层近似于H(x),而是明确地让这些层近似于残差函数F(x):= H(x) - x。因此,原始函数变为F(x)+x。尽管这两种形式都应该能够渐进地逼近所需的函数(如假设的那样),但学习的难易程度可能不同

正如我们在引言中讨论的那样,如果添加的层可以被构造为身份映射,那么较深的模型应该具有不大于其较浅的对应部分的训练误差。通过残差学习的重新表述,如果恒等映射是最优的,求解器可以简单地将多个非线性层的权值向零驱动,从而逼近恒等映射

Identity Mapping by Shortcuts

我们对每几个堆叠层采用残差学习,构建块如图2所示。在本文中,我们认为构建块定义为

x和y是所考虑的层的输入和输出向量。函数F(x,{W i})表示待学习的残差映射,W是权重
对于图2中有两层的例子,F = W2σ(W1x),其中σ表示Relu,为了简化表达式,省略了偏差,操作F + x是通过一个快捷连接和元素加法来执行的。我们采用加法后的第二个非线性(即σ(y),见图2)

x和F的维数在Eqn(1)中必须相等。如果不相等(例如,当改变输入/输出通道时),我们可以通过快捷连接执行线性投影Ws来匹配维度:
我们还注意到,尽管为了简单起见,上面的符号是关于全连接层的,但它们适用于卷积层。函数F(x,{W i})可以表示多个卷积层,逐个通道地在两个特征映射上执行逐个元素的加法

Experiment

在ImageNet数据集上,我们评估了深度高达152层的残差网络,是VGG网络[40]深度的8倍,但仍然具有较低的复杂性。这些残差网络的集合在imagenet测试集上的误差达到3.57%,这一结果是对ILSVRC 2015分类任务的第一次验证,我们还介绍了100层和1000层的CIFAR-10分析。表征的深度对于许多视觉识别任务至关重要,仅由于我们的极深表示,我们在COCO对象检测数据集上获得了28%的相对改进

Conclusion


x是原来训练好的参数,我们现在期望的是H(x),不用ResNet的话,模型会直接学习H(x),但ResNet会学习残差函数F(x),
F(x)=H(x)-x,即ResNet学习的是训练的与真实的差距,也可以理解为ResNet在学习模型与真实值之间的差距。
原始做法是不断优化H(x),而ResNet是不断优化F(x)即训练与真实之间的差距,最终输出的是F(x)+x,即根据identity mapping的思想,x不变,而差距越来越小,因此网络越深不会导致训练结果越来越差

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

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

相关文章

数据结构与算法--复杂度

目录 1.算法效率 1.1 如何衡量一个算法的好坏 1.2 算法的复杂度 1.3 复杂度在校招中的考察 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.3常见时间复杂度计算举例 3.空间复杂度 4. 常见复杂度对比 1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的…

VirtualBox网络配置

1. 进入虚拟机所在系统的网络设置 2. 网卡1连接方式选择为仅主机网络,界面名称选择自带的网卡 3.自带网卡的配置方式,通常已经配置好了,保持dhcp开启即可 4.网卡2选择nat转换即可,无需添加其他配置 5.启动虚拟机所在系统&#xff…

数组OJ题汇总(一)

本专栏内容为:leetcode刷题专栏,记录了leetcode热门题目以及重难点题目的详细记录 💓博主csdn个人主页:小小unicorn ⏩专栏分类:Leetcode 🚚代码仓库:小小unicorn的代码仓库🚚 &…

MSQL系列(十) Mysql实战-Join驱动表和被驱动表区分

Mysql实战-Join驱动表和被驱动表区分 前面我们讲解了Mysql的查询连接Join的算法原理, 我发现大家都知道小表驱动大表,要让小表作为驱动表, 现在有2个问题 查询多表, 到底哪个是驱动表?哪个是被驱动表, 如何区分?索引如何优化,到底是加在驱动表上,还是被驱动表上? 今天我们…

[Leetcode] 0108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 题目描述 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1&#xff1a…

【Android内存优化】内存泄露优化之强引用变弱引用完全详解

内存泄露背景 什么是内存泄露 内存空间使用完毕后无法被释放的现象,对于还保持着引用, 该内存不能再被分配使用,逻辑上却已经不会再用到的对象,垃圾回收器不会回收它们。 所以逻辑不再使用的对象,需要释放强引用,以便GC进行回收。 JVM 工作原理 JVM 垃圾回收原理,点…

vlc打开网络流(如rtmp),并查看媒体信息(如编码格式等编码信息)

打开vlc 选择媒体,打开网络串流 输入rtmp地址,点击播放 选择工具-编解码信息 可以查看节目的编码信息什么的

HBuilderX代码变量名称翻译插件

对于许多开发者而言,怎么规范的命名变量是一个非常痛苦的事,而在HBuilderX中有一个的插件可以快速的帮助你完成中文转带格式的变量名,格式可以选择小驼峰、大驼峰、下划线、常量、CSS类名等。 以下为添加此插件的步骤 1、打开插件安装 选择…

Android 类似淘宝的吸顶特效 NestedScrollView+RecycleView

运行图 布局的设计 要实现上面的效果需要搞定NestedScrollView和RecycleView的滑动冲突。有人要问RecycleView为何要滑动自动撑大不就好了么?这个问题其实对于有限的资源加载来说是很好的解决方案,但是如果涉及到的是图文结合的并且有大批量的数据的时候…

牛客题霸 -- HJ52 计算字符串的编辑距离

解题步骤&#xff1a; 参考代码&#xff1a; int main() {string s1;string s2;while (cin >> s1 >> s2){int ms1.size();int ns2.size();//增加空白字符&#xff0c;修正下标的映射关系s1 s1;s2 s2;//多卡一行&#xff0c;多开一列vector<vector<int&…

从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享

说在前面 平时写文章或写代码的时候&#xff0c;都少不了需要将本地图片转成在线图片链接&#xff0c;大家都是使用什么工具进行转换的呢&#xff1f;相信很多人都有自己的图床工具&#xff0c;今天来给大家介绍一下&#xff0c;怎么基于Gitee和Electron来开发一个便捷的图床工…

22、Python -- 创建对象和使用对象

目录 构造方法类的作用创建对象操作对象的实例变量操作对象的实例方法增加方法调用方法添加方法删除方法 方法与实例变量总结 构造方法 创建对象 操作实例变量 操作方法 构造方法 构造方法是一个特殊的实例方法&#xff0c;方法名为__init__ 创建对象时&#xff0c;自动调用构…

【手把手教vue会员管理系统】篇四之登录界面

一、登录界面路由配置 1.将view目录下的about、home组件删除&#xff0c;再新建login文件夹&#xff0c;在login文件夹下新建index.vue组件&#xff0c;并添加如下图所示的代码&#xff1a; 2.将App.vue更改成下图所示&#xff0c;删掉不必要的代码。 3.在router的index.js文件…

哈希算法:如何防止数据库中的用户信息被脱库?

文章来源于极客时间前google工程师−王争专栏。 2011年CSDN“脱库”事件&#xff0c;CSDN网站被黑客攻击&#xff0c;超过600万用户的注册邮箱和密码明文被泄露&#xff0c;很多网友对CSDN明文保存用户密码行为产生了不满。如果你是CSDN的一名工程师&#xff0c;你会如何存储用…

项目资源管理案例题

本文来自江山老师高项文档 规划资源管理 没有规划资源管理 资源管理计划项目经理一人制定&#xff0c;没有全员参与 资源管理计划内容不全面&#xff0c;有遗漏 质量工程师编写资源管理计划是不对的 资源管理计划应该各干系人参与&#xff0c;而且还需要经过评审 估算活…

基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理MATLAB程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文献&#xff1a; 基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理_董雷 仿真平台&#xff1a; MATLABcplex 主要内容&#xff1a; 主要为多虚拟电厂/微网的优化调度策略&#xff0c;模型…

实用篇-Nacos配置管理

Nacos不仅具有注册中心的功能&#xff0c;还具有注册管理的功能 一、Nacos实现配置管理 可以使用统一配置管理&#xff0c;来配置更改热更新&#xff0c;整体结构如下 前提条件: 你已经把上面的 实用篇-Nacos注册中心 学完了&#xff0c;并且项目也跟着做了。我们下面会使用到…

Python 接口自动化 —— requests框架

1.前言 Python内置的urllib模块&#xff0c;也可以用于访问网络资源。但是&#xff0c;它用起来比较麻烦&#xff0c;而且&#xff0c;缺少很多实用的高级功能。因此我们使用 requests 模块进行进行接口测试。 requests官方文档资料地址&#xff1a;http://cn.python-request…

操作系统:进程与线程(二)同步与互斥B

一战成硕 2.3.5 管程2.3.6 经典同步问题 2.3.5 管程 管程的特性保证了进程互斥&#xff0c;无需程序员自己实现互斥&#xff0c;降低了死锁发生的可能。 管程的定义 管程是一种高级的同步机制。 定义描述举例 条件变量 2.3.6 经典同步问题 生产者消费者问题 缓冲区没满&a…

会说话,得天下!演讲与口才训练必修课

会说话&#xff0c;得天下&#xff01;演讲与口才训练必修课 口才是现代职场上一项非常重要的素质。有了好的口才&#xff0c;不仅可以很好地展示自己的思想和见解&#xff0c;还可以影响他人并获得支持&#xff0c;这对个人职业发展十分重要。所以&#xff0c;学习如何进行出…