ResNet(CVPR2016)


文章目录

  • 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.mzph.cn/news/122188.shtml

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

相关文章

Day2-数组第二部分、双指针|LeetCode27、209、977、59|代码随想录

阅前声明:本人java基础不好,以后写的时候会加上一些java语法需要注意的地方,如果问题还请多多交流指正! 数组第二部分主要是针对双指针思想展开的。 双指针思想 设置两个指针,fast指针用来指向新数组的内容&#xff…

怎么突破反爬虫机制

在当今的数字化时代,网络爬虫已经成为了收集信息和数据的重要工具。然而,许多网站和平台都配备了反爬虫机制,以防止恶意攻击和过度访问。对于普通用户来说,如何突破这些反爬虫机制呢?本文将为你提供一些实用的技巧和建…

Nginx的进程结构实例演示

可以参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx 1.14.0。 nginx.conf文件中worker_processes 2;这条语句表明启动两个worker进程。 sudo /nginx/sbin/nginx -c /nginx/conf/nginx.conf开启nginx。 ps -ef | grep nginx看一下进程情况。 sudo /nginx/sbin/ng…

Git 拉取远程更新报错

报错内容如下: cannot lock ref refs/remotes/origin/bugfix/bug: refs/remotes/origin/bugfix 已存在,无法创建 refs/remotes/origin/bugfix/bug 来自 gitlab.zhangyue-inc.com:dejian_ios/iReaderDejian! [新分支] bugfix/bug -> ori…

Hive 视图和索引

本专栏案例数据集链接: https://download.csdn.net/download/shangjg03/88478038 1.视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图…

防关联浏览器推荐:MuLogin指纹浏览器安全登录多平台账号

在现今的数字时代,我们的生活离不开互联网。我们使用在线平台进行银行交易、购物、社交媒体互动和其他各种活动。为了保护个人隐私和账号安全,我们需要寻找一种安全且方便的方式来管理我们的在线账号。MuLogin指纹浏览器正是为了满足这些需求而设计的一款…

【Bond随你温故Kubernetes之】壹图复盘service与内部通信

最近跟朋友聊到了k8s 我: “环境给了就只管用呗,副本自动管理地妥妥的,有啥可以复盘的?“ 朋友: “容器的通讯与服务暴露还是有点东西的” 我: “嗯~~(抿嘴点…

matlab中字符串转换为数字(str2double函数)

str2double函数 将 str 中的文本转换为双精度值。str 包含表示实数或复数值的文本。str 可以是字符向量、字符向量元胞数组或字符串数组。如果 str 是字符向量或字符串标量,则 X 是数值标量。如果 str 是字符向量元胞数组或字符串数组,则 X 是与 str 具…

C语言每日一题(21)删除排序数组中的重复项

力扣 26.删除排序数组中的重复项 题目描述 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考…

设计模式之创建型模式

创建型模式与对象的创建有关。 创建型模式抽象了对象实例化的过程,这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。创建型模式有以下 工厂模式(Factory Method) 意图&#xf…

CompletableFuture常见方法以及使用

常用场景: 1.并行执行多个任务:CompletableFuture 可以用于并行执行多个任务,从而提高性能 2.并行执行多个任务:CompletableFuture 可以用于并行执行多个任务,从而提高性能 3.任务依赖和组合:Completabl…

计算机网络基础二

课程目标 了解 OSI 七层模型分层结构 了解 TCP/IP 协议簇四层模型分层结构 能够说出 TCP/IP 协议簇中 运输层、网络层和数据链路 层常见的 相关协议 能够说出 TCP/IP 的三次握手四次断开过程 了解 Vmware 的三种网络模式 能够使用客户端工具连接虚拟机 掌握主机名、 DNS…

Android S从桌面点击图标启动APP流程 (六)

系列文章 Android S从桌面点击图标启动APP流程 (一)Android S从桌面点击图标启动APP流程 (二) Android S从桌面点击图标启动APP流程 (三) Android S从桌面点击图标启动APP流程 (四) Android S从桌面点击图标启动APP流程 (五) Android 12的源码链接: android 1…

【OpenCV实现图像的算数运算,性能测试和优化,改变颜色空间】

文章目录 OpenCV功能概要图像的算数运算性能测试和优化改变颜色空间对象追踪 OpenCV功能概要 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,提供了丰富的图像处理和计算机视觉算法。它支持多种编程语言&…

js中数组的相关方法

引言: 数组(Array)是有序的元素序列。 [1]若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量 方法: push()…

数字化转型系列主题:战略咨询常用术语解释和样例说明

引言 做战略咨询的人经常提到一些术语 ”某企业的愿景,某企业的价值观,战略目标,举措,行动,挑战,...“, 这些术语对刚进入咨询行业的小白或其它行业的人,经常会分不清楚,弄的一头雾…

Java中的volatile关键字

volatile是什么? "volatile"是一个关键字,用于修饰变量。它的作用是告诉编译器该变量可能会在意料之外的时候被修改,因此编译器在对该变量进行优化时需要特别小心。 具体来说,当一个变量被声明为"volatile"…

dd命令用法学习,是一个功能强大的工具

dd 命令是一个功能强大的工具,它有许多参数可以用来控制其行为。以下是 dd 命令中常用的一些参数: - ifinputfile:指定输入文件的路径。 - ofoutputfile:指定输出文件的路径。 - bssize:设置每个块的大小。可以使用不同…

探索控制领域:从电视遥控器到自动驾驶【基础概念理解、应用实例】

当谈到控制学和控制系统时,你可能会联想到电视遥控器、自动驾驶汽车、飞机自动驾驶系统以及许多其他自动化系统。但控制学是一个更广泛的学科,它涵盖了各种领域,从工程到生物学,从经济学到环境科学。让我们深入了解控制学的基本概…

算法通过村第十七关-贪心|白银笔记|贪心高频问题

文章目录 前言区间问题判断区间是否重复合并区间插入区间 字符串分割加油站问题总结 前言 提示:如果生活把你的门关上了,那你就再打开,这就是门,门就是这样的。 --佚名 贪婪的思想不一定要理解的很透彻,但是贪婪的问题…