前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ResNet那些事~

ResNet那些事~

原创
作者头像
yzh
修改于 2020-08-10 02:45:56
修改于 2020-08-10 02:45:56
1.2K0
举报
文章被收录于专栏:YZh学习记录YZh学习记录

resnet 解决的是什么问题?

增加网络的深度可以很好的提高网络的性能,深的网络一般都比浅的的网络效果好,一个比较好的例子就是VGG,该网络就是在AlexNex的基础上通过增加网络深度大幅度提高了网络性能。

但事实真的是这样的吗?不然,通过实验我们发现,当网络层数达到一定的数目以后,网络的性能就会饱和,再增加网络的性能就会开始退化,但是这种退化并不是由过拟合引起的,因为我们发现训练精度和测试精度都在下降,这说明当网络变得很深以后,深度网络就变得难以训练了。 

ResNet的出现其实就是为了解决网络深度变深以后的性能退化问题。 (论文中一直出现的degradation problem)

理论上,若A为浅层网络,B为深层网络,且B的浅层结构完全复制于A,后几层为线性层(identity mapping),那么B网络的效果应该是和A的相同的。但是实验发现,深层网络的训练准确率反而比浅层网络要低,这说明在实际应用时,高层的这种线性关系很难学到,也就是出现了degradation problem(退化)。训练集准确率下降的原因肯定不是过拟合,因为过拟合的话训练集的准确率应该很高。

resnet 为什么这么强?

优化目标转换

退化问题表明多层非线性网络无法逼近恒等映射网络

resnet 中提出的“弯弯的弧线”就是所谓的“shortcut connection”,也是identity mapping(恒等映射),因为这个恒等映射的存在,使得网络随着深度的增加而避免退化现象。

H (x) :desired underlying mapping——期望拟合的特征图

没有shortcut 之前,网络是为了实现恒等映射。H(x) = F(x) F(x) 的目标是拟合H(x)

加入shortcut 之后,网络是学习残差函数。 H(x) = F(x) + x , F(x) = H(x) - x F(x) 的目标是拟合H(x) - x

如果F(x) = 0,则实现恒等映射。

与其让卷积层去近似的估计H(x), 不如去近似的估计 H(x) - x ,F(x) 就是指残差。残差比原始的恒等映射更容易学习。

优化目标转换后,带来什么优势呢?为什么会解决退化问题吗?

深网络在浅网络的基础上只要上面几层做一个等价映射就可以达到浅网络同样的效果,但是为什么不行呢,就是因为我们的算法很难将其训练到那个程度,也就是说没办法将上面几层训练到一个等价映射,以至于深网络最后达到了一个更差的效果。

那么这时,我们把训练目标转变,由原来的H(x)转为H(x)-x,因为这时候就不是把上面几层训练到一个等价映射了,而是将其逼近0,这样训练的难度比训练到一个等价映射应该下降了很多。

也就是说,在一个网络中(假设有5层),如果前面四层已经达到一个最优的函数,那第五层就是没有必要的了,这时我们通过这种跳跃结构,我们的优化目标就从一个等价映射变为逼近0了,逼近其他任何函数都会造成网络退化。通过这种方式就可以解决网络太深难训练的问题。

但是在作者看来,不退化不是目的,而是希望模型有更好的性能。

通过残差学习的重构,如果恒等映射是最优的,求解器可能简单地将多个非线性连接的权重推向零来接近恒等映射。

在实际情况下,恒等映射不太可能是最优的,但是我们的重构可能有助于对问题进行预处理。如果最优函数比零映射更接近于恒等映射,则求解器应该更容易找到关于恒等映射的抖动,而不是将该函数作为新函数来学习。我们通过实验显示学习的残差函数通常有更小的响应,表明恒等映射提供了合理的预处理。

现实情况下F(x)不可能全为 0,那么这些多出来的东西就可以增强网络的表达能力。

随机梯度下降就是用的链式求导法则,我们对H(x)求导,相当于对F(x)+x求导,那么这个梯度值就会在1附近(x的导数是1),相比之前的plain网络,自然收敛更快。

Xl代表浅层输出, XL代表深层输出

Resnet实验结果 1.简单网络的实验

普通网络,深层网络误差大于浅层网络误差。

Resnet,深层网络误差小于浅层网络误差。

作者指出:

这种优化难度不是梯度消失引起的。这些简单网络使用BN训练,这保证了前向传播信号有非零方差。同时还验证了反向传播的梯度,结果显示其符合BN的正常标准。因此既不是前向信号消失也不是反向信号消失

实际上,34层简单网络仍能取得有竞争力的准确率(表3),这表明在某种程度上来说求解器仍工作。我们推测深度简单网络可能有指数级低收敛特性,这影响了训练误差的降低。这种优化困难的原因将来会研究。

resnet 34层 与 resnet 18层相比:

34层有较低的误差,说明退化问题得到解决。

resnet 34层 与 plain 34 层相比:

降低了训练误差。说明残差学习在极深网络中的有效性

resnet 18 层与 plain 18层相比:

resnet 18的收敛速度更快。说明当网络“不过度深”时(18层),目前的SGD求解器仍能在简单网络中找到好的解。在这种情况下,ResNet通过在早期提供更快的收敛简便了优化。

2. 残差块设计

引入1 x 1 卷积层,升维,降维,降低参数量,增加非线性。

3. 网络深度探究

对于1202 层的问题比较开放。认为是过拟合的问题

思考1. 残差网络结构中的虚线,实线问题

实线连接:通道个数一致

虚线连接:通道个数不一致,需要升维。

思考2. 梯度消失与梯度爆炸问题

对于该问题的解决方法是正则化初始化中间的正则化层(Batch Normalization),这样的话可以训练几十层的网络。

思考3. 残差连接

F是求和前网络映射,H是从输入到求和后的网络映射。

比如把5映射到5.1,那么引入残差前是F'(5)=5.1,引入残差后是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。

这里的F'和F都表示网络参数映射,引入残差后的映射对输出的变化更敏感

比如s输出从5.1变到5.2,映射F'的输出增加了1/51=2%,而对于残差结构输出从5.1到5.2,映射F是从0.1到0.2,增加了100%。

明显后者输出变化对权重的调整作用更大,所以效果更好。残差的思想都是去掉相同的主体部分,从而突出微小的变化。

思考4:启发来源

这一想法也是源于图像处理中的残差向量编码,通过一个reformulation,将一个问题分解成多个尺度直接的残差问题,能够很好的起到优化训练的效果。

思考5:shortcut 的输入为何是x,而不是x/2或其他?

不要多想,还是原配好。这里涉及到梯度问题,如果都大于1,可能会梯度爆炸,如果都小于1,可能会梯度消失。

思考6:为什么H(x) -x 比 H(x)更容易优化?

1. relu

2. |Wx-0| < |1- Wx|

究竟网络深度对深度学习模型性能有什么影响呢?

1. 随着模型加深,带来哪些好处?

现在的深度学习网络结构的主要模块是卷积,池化,激活,这是一个标准的非线性变换模块。更深的模型,意味着更好的非线性表达能力,可以学习更加复杂的变换,从而可以拟合更加复杂的特征输入。

网络更深,每一层要做的事情也更加简单了。

每一个网络层各司其职,第一层学习到了边缘,第二层学习到了简单的形状,第三层开始学习到了目标的形状,更深的网络层能学习到更加复杂的表达。如果只有一层,那就意味着要学习的变换非常的复杂,这很难做到。

总结两点:

1. 因为CNN能够提取low/mid/high-level的特征,网络的层数越多,意味着能够提取到不同level的特征越丰富。

2. 越深的网络提取的特征越抽象,越具有语义信息,意味着更强的表达能力。

总结为:网络加深带来更强大的表达能力和逐层的特征学习。

一般来说,定量评价模型与深度的关系,可通过直接发和间接法。

直接法就是网络加深,类似与更多的线性区间,线性空间越多,拟合能力越强

间接法就是看实验结果,评价指标,准确率等。

2. 随着模型加深,带来哪些困扰?

ResNet为什么这么成功,就是因为它使得深层神经网络的训练成为可行。

虽然好的初始化,BN层等技术也有助于更深层网络的训练,但是很少能突破30层。经典网络中超过30层基本是和ResNet有关系。

深层网络带来的网络退化的问题始终都是存在的,可以缓解,没法消除。这就有可能出现网络加深,性能反而开始下降。

网络加深带来的学习能力饱和问题。

模型加深还可能出现的一些问题是导致某些浅层的学习能力下降,限制了深层网络的学习(ResNet论文中有提到),这也是跳层连接等结构能够发挥作用的很重要的因素。

参考网址:

https://blog.csdn.net/wspba/article/details/60750007

https://blog.csdn.net/iModel/article/details/80688394

resnet 实验方案

研究背景:

更深的网络难以收敛。

对于更深的网络,使用残差学习框架能够更容易训练。将层看作学习输入层的的残差函数,而不是学习与层无关的函数。证据表明残差网络容易优化,增加深度也能显著的提高准确率。在imageNet 数据集,使用深度比VGGnet深8倍,依然有着较低的复杂度。

网络深度的加深提高模型的性能,但是随着网络的加深,带来一系列问题。

网络加深,学习性能是否会更好?

随着网络加深,模型的收敛越来越难,原因被归结为梯度消失/梯度爆炸。

标准初始化等策略,使得SGD算法在10层作用能够收敛。

当网络更深时,暴漏一个问题:

随着网络加深,准确率达到饱和,然后迅速下降。这种下降不是过拟合引起的。

更深的网络有更高的训练误差和测试误差。收敛越慢。

理论上,网络加深,应该会有更好的学习性能,训练集上loss值应该要低,但是事与愿违。

原理解读:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ResNet 论文研读笔记
深度神经网络很难去训练,本文提出了一个残差学习框架来简化那些非常深的网络的训练,该框架使得层能根据其输入来学习残差函数而非原始函数。本文提出证据表明,这些残差网络的优化更简单,而且通过增加深度来获得更高的准确率
范中豪
2019/09/10
6880
ResNet 论文研读笔记
深度学习-ResNet论文笔记
在深度重要性的推动下,出现了一个问题:学些更好的网络是否像堆叠更多的层一样容易?回答这个问题的一个障碍是梯度消失/爆炸这个众所周知的问题,它从一开始就阻碍了收敛。然而,这个问题通过标准初始化(normalized initialization)和中间标准化层(intermediate normalization layers)在很大程度上已经解决,这使得数十层的网络能通过具有反向传播的随机梯度下降(SGD)开始收敛。(ResNet解决的不是梯度消失/爆炸问题)
肉松
2020/08/06
6780
ResNet 详解
ResNet深度残差网络,成功解决了此类问题,使得即使在网络层数很深(甚至在1000多层)的情况下,网络依然可以得到很好的性能与效 率。
zeekling
2022/06/17
4550
ResNet 详解
ResNet论文翻译——中文版
Tyan
2017/12/29
2.7K0
ResNet论文翻译——中文版
ResNet详解与分析
我们知道,对浅层网络逐渐叠加layers,模型在训练集和测试集上的性能会变好,因为模型复杂度更高了,表达能力更强了,可以对潜在的映射关系拟合得更好。而“退化”指的是,给网络叠加更多的层后,性能却快速下降的情况。
李拜六不开鑫
2020/02/26
2.4K0
深入理解ResNet原理解析及代码实现
梯度消失和梯度爆炸的问题阻止了刚开始的收敛,这一问题通过初始化归一化和中间层归一化得到了解决。解决了收敛的问题后又出现了退化的现象:随着层数加深,准确率升高然后急剧下降。且这种退化不是由过拟合造成,且向网络中添加适当多层导致了更大的训练误差。随着网络深度的增加,模型精度并不总是提升,并且这个问题并不是由过拟合(overfitting)造成的,因为网络加深后不仅测试误差变高了,它的训练误差竟然也变高了。作者提出,这可能是因为更深的网络会伴随梯度消失/爆炸问题,从而阻碍网络的收敛。这种加深网络深度但网络性能却下降的现象被称为退化问题。也就是说,随着深度的增加出现了明显的退化,网络的训练误差和测试误差均出现了明显的增长,ResNet就是为了解决这种退化问题而诞生的。
狼啸风云
2020/04/01
5.6K0
深入理解ResNet原理解析及代码实现
ResNet详细解读
这篇文章是Deep Residual Learning for Image Recognition 的翻译,精简部分内容的同时补充了相关的概念,如有错误,敬请指正。
全栈程序员站长
2022/09/01
2.1K0
ResNet详细解读
深度学习经典网络解析:7.ResNet
  如果说你对深度学习略有了解,那你一定听过大名鼎鼎的ResNet,正所谓ResNet 一出,谁与争锋?现如今2022年,依旧作为各大CV任务的backbone,比如ResNet-50、ResNet-101等。ResNet是2015年的ImageNet大规模视觉识别竞赛(ImageNet Large Scale Visual Recognition Challenge, ILSVRC)中获得了图像分类和物体识别的冠军,是中国人何恺明、张祥雨、任少卿、孙剑在微软亚洲研究院(AI黄埔军校)的研究成果。
AiCharm
2023/05/15
4.4K0
深度学习经典网络解析:7.ResNet
十分钟一起学会ResNet残差网络
【磐创AI导读】:本文主要带大家一起剖析ResNet网络,查漏补缺。想要学习更多的机器学习、深度学习知识,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。
磐创AI
2018/09/20
5040
十分钟一起学会ResNet残差网络
ResNet 模型原理
3.ResNet引入了BatchNorm层,使得ResNet能够训练更加深的网络结构
zhangjiqun
2024/12/14
1710
ResNet 模型原理
为什么会有ResNet? Why ResNet?
答案无疑是否定的,人们发现当模型层数增加到某种程度,模型的效果将会不升反降。也就是说,深度模型发生了退化(degradation)情况。
机器学习AI算法工程
2020/06/10
1.6K0
为什么会有ResNet? Why ResNet?
论文阅读学习 - ResNet - Deep Residual Learning for Image Recognition
论文阅读学习 - Deep Residual Learning for Image Recognition
AIHGF
2019/02/18
1.3K0
Resnet
Resnet提出之前,深层网络的表现往往不如浅层网络——当网络深度达到一定程度后,梯度消失、爆炸等问题会使深度网络更加难以训练、更难找到一个flat minima。
Heeler-Deer
2023/03/10
3330
Resnet
ResNet论文翻译——中英文对照
本文介绍了神经网络模型在计算机视觉领域的经典应用以及当前最新的进展。具体来说,文章首先介绍了用于图像分类的卷积神经网络(CNN)的基本原理,然后介绍了用于目标检测和语义分割的多层感知器(MLP)模型。接下来,文章讨论了神经网络模型在计算机视觉领域的一些应用,例如图像生成、风格迁移、超分辨率、人体姿态估计等。最后,文章展望了计算机视觉领域未来的研究方向,包括注意力机制、可解释性、小样本学习、实时性能等。
Tyan
2017/12/29
2.2K0
ResNet论文翻译——中英文对照
Resnet
Resnet提出之前,深层网络的表现往往不如浅层网络——当网络深度达到一定程度后,梯度消失、爆炸等问题会使深度网络更加难以训练、更难找到一个flat minima。
Heeler-Deer
2023/07/24
2060
Resnet
经典回味:ResNet到底在解决一个什么问题呢?
ResNet发布于2015年,目前仍有大量CV任务用其作为backbone(尤其是顶会实验比较),而且当前很多网络都在使用残差模块。
公众号机器学习与AI生成创作
2021/09/15
1.7K0
论文笔记12 -- (ResNet)Deep Residual Learning for Image Recognition
《Deep Residual Learning for Image Recognition》 论文:https://arxiv.org/abs/1512.03385 GitHub:https://github.com/KaimingHe/deep-residual-networks
对角巷法师
2022/05/07
2920
论文笔记12 -- (ResNet)Deep Residual Learning for Image Recognition
卷积神经网络之 - 残差⽹络(RESNET)
残差神经网络 (ResNet) 是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的。ResNet 在 2015 年的 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中取得了图像分类、检测、定位三个冠军。2016 年 CVPR 论文:《Deep Residual Learning for Image Recognition》就介绍了 ResNet,该论文截至当前 (2020.1.3) 已被引用超过 36500 次。
机器视觉CV
2020/07/23
3.3K0
卷积神经网络之 - 残差⽹络(RESNET)
深度学习——卷积神经网络 的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)
一、CNN卷积神经网络的经典网络综述 下面图片参照博客:http://blog.csdn.net/cyh_24/article/details/51440344 二、LeNet-5网络 输入尺寸:32
10JQKA
2018/05/09
2.9K0
深度学习——卷积神经网络 的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)
你必须要知道CNN模型:ResNet
作者:叶 虎 编辑:张 欢 PART 01 ResNet简介 引言 深度残差网络(Deep residual network, ResNet)的提出是CNN图像史上的一件里程碑事件,让我们先看一下
机器学习算法工程师
2018/03/06
2.1K0
你必须要知道CNN模型:ResNet
相关推荐
ResNet 论文研读笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档