【深度学习】 ResNet的理解

【深度学习】 ResNet的理解

深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好,但是事实上却不是这样,常规的网络的堆叠(plain network)在网络很深的时候,效果却越来越差了。 
这里写图片描述 
这里其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。 
但是现在浅层的网络(shallower network)又无法明显提升网络的识别效果了,所以现在要解决的问题就是怎样在加深网络的情况下又解决梯度消失的问题。

残差网络的基本结构如下图所示 
这里写图片描述 
通过在输出个输入之间引入一个shortcut connection,而不是简单的堆叠网络,这样可以解决网络由于很深出现梯度消失的问题,从而可可以把网络做的很深,

基本的残差网络其实可以从另一个角度来理解,《Residual Networks Behave Like Ensembles of Relatively Shallow Networks》中如下图所示: 
这里写图片描述 
残差网络单元其中可以分解成右图的形式,从图中可以看出,残差网络其实是由多种路径组合的一个网络,直白了说,残差网络其实是很多并行子网络的组合,整个残差网络其实相当于一个多人投票系统(Ensembling)。下面来说明为什么可以这样理解

ResNet分类错误率和删除的基本残差网络单元个数的关系 

如果把残差网络理解成一个Ensambling系统,那么网络的一部分就相当于少一些投票的人,如果只是删除一个基本的残差单元,对最后的分类结果应该影响很小;而最后的分类错误率应该适合删除的残差单元的个数成正比的,论文里的结论也印证了这个猜测。 
下图是比较VGG和ResNet分别删除一层网络的分类错误率变化 
这里写图片描述 
下图是ResNet分类错误率和删除的基本残差网络单元个数的关系 
这里写图片描述

从上面的介绍可以看出,网络很深的路径其实很少,大部分的网络路径其实都集中在中间的路径长度上,如下图所示: 
这里写图片描述 
从这可以看出其实ResNet是由大多数中度网络和一小部分浅度网络和深度网络组成的,说明虽然表面上ResNet网络很深,但是其实起实际作用的网络层数并没有很深,我们能来进一步阐述这个问题,我们知道网络越深,梯度就越小,如下图所示 
这里写图片描述 
而通过各个路径长度上包含的网络数乘以每个路径的梯度值,我们可以得到ResNet真正起作用的网络是什么样的,如下图所示 
这里写图片描述 
 

猜你喜欢

转载自blog.csdn.net/qq_34106574/article/details/82773451
今日推荐