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网络学习的是resnet论文笔记
文章图片
,残差网络学的是resnet论文笔记
文章图片
,这样原来的问题就间接的转化为学习resnet论文笔记
文章图片
,使得resnet论文笔记
文章图片

学习残差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论文笔记
文章图片

Block的output:resnet论文笔记
文章图片

其中,+代表跨层连接和element-wise相加,resnet论文笔记
文章图片
resnet论文笔记
文章图片

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

每一个残差块的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)用前面说的resnet论文笔记
文章图片
,利用resnet论文笔记
文章图片
对x进行升维
网络结构设计如图:
resnet论文笔记
文章图片

resnet论文笔记
文章图片

resnet论文笔记
文章图片


如何理解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数可以设置更多吗?

【resnet论文笔记】

    推荐阅读