resnet论文笔记

1. introduction

1.1 问题的提出

越深越好

有实验证明网络越深,效果越好(深度神经网络通过层的堆叠,集成了low/mid/high level的特征,层数越深level越丰富)

 

深带来的梯度爆炸问题

主要通过normalized initialization和intermediate normalization layer,让网络可以达到数十层

 

解决了梯度爆炸,网络可收敛,但是又面临退化问题

退化问题就是:当前模型的深度已经是拟合数据的最优深度(精度达到饱和),再额外加layer就会导致退化(训练精度会下降,并不是过拟合导致的)。我们希望的是能够有identity mapping 使得在精度饱和之后,后面添加的层都是copy from the shallower layer..

 

1.2 解决方案---ResNet

ResNet的优势

(1) 学习残差(精度饱和后使其=0)比identity mapping更易学,所以易于优化,解决深度加深的退化问题

(2) 可以非常,而且复杂度更小

 

ResNet主要的思想

(1) 学习残差

plain网络学习的是H(x),残差网络学的是F(x)=H(x)-x,这样原来的问题就间接的转化为学习F(x),使得H(x)=F(x)+x

学习残差H(x)与x之间的残差比直接学习一个新的H()更加容易。如果当前的网络已经是最优的了,那么多余层的F(x)=0就可以实现identity mapping

(2) 跨层连接

      作用:addressing梯度消失和爆炸

      highway network中提出带有gating function的跨层连接,这些gating function带有参数,当gate关闭代表网络中没有残差function

而ResNet没有gate,始终学习残差function,始终有信息跨层通过


2. ResNet的思想介绍

2.1 残差学习

转换了网络的学习目标

从H(x) -》F(x)=H(x)-x

inspired from退化问题,残差比identity mapping更容易学

2.2 用跨层连接来实现同等映射

残差块:

resnet论文笔记_第1张图片

Block的output:y=F(x,{​{W_i})+x

其中,+代表跨层连接和element-wise相加,FW_2\sigma(W_1x)

F(x)与x的size必须相同,如果不同可以用一个W矩阵做linear projection(只在需要matching demension的时候用,在池化之后将后面层的channel数加倍,则跨层连接池化前后两层的时候就需要对x进行升维再+就可以用这种方法)

每一个残差块的layers数可以自由设置,文中用的是2层和3层做实验。

 

3. ResNet网络结构详解

3.1 Plain Network

主要是采用借鉴VGG的网络结构,两个设计原则:

(1)为了feature map的size相同,每层的通道数(filters数量)都是相同的

(2)经过池化层后,W、H减半,通道数加倍

3.2 Residual Network

在Plain network的基础上加入跨层连接(形成残差块)

对于池化层前后两层的跨层连接的升维问题,有两种解决方案:

(1)直接padding,无额外参数

(2)用前面说的,利用W_s对x进行升维

网络结构设计如图:

resnet论文笔记_第2张图片

resnet论文笔记_第3张图片

resnet论文笔记_第4张图片

 

如何理解ResNet的思想?

如果现在我们要训练一个深层的网络,假设存在一个性能最强的完美网络N,与它相比,我们所训练的网络中必定有一些层是多余的(甚至是起反作用的),那么这些多余的层的训练目标就是恒等变换(换句话说,就是让这些多余的层变成一个恒等变换,使得整个网络无限趋近于完美网络N),只有达到这个目标我们的网络性能才能跟N一样。

那么,如何另这些多余的层变成恒等映射呢?很简单,要想多余的层变成恒等映射,只要把输出所要拟合的目标变成x就行了(此时H(x)摇身一变成了x),即输入为x,输出仍然是x。

因此,作者提出了利用残差来重构网络的映射,说白了就是把输入x再次引入到结果,这样堆叠层的权重会趋向于零,用表达式表示就是:F(x,w)+x=H(x)=x,即F(x,w)→0

总结一句话:残差结构人为制造了恒等映射,就能让整个结构朝着恒等映射的方向去收敛,确保最终的错误率不会因为深度的变大而越来越差。
--------------------- 
原文:https://blog.csdn.net/lairongxuan/article/details/91040698 
 

ResNet的每一个残差块的layers数可以设置更多吗?

 

 

你可能感兴趣的