残差网络

参考:

残差网络:

https://zhuanlan.zhihu.com/p/106764370

https://blog.csdn.net/u011808673/article/details/78836617

https://blog.csdn.net/qq_34886403/article/details/83961424

随即删除残差快:

https://zhuanlan.zhihu.com/p/37820282

深度网络的退化问题

  • 我们选择加深网络的层数,是希望深层的网络的表现能比浅层好,或者是希望它的表现至少和浅层网络持平(相当于直接复制浅层网络的特征),可实际的结果却让我们大吃一惊(深度网络退化),接下来我们深究一下导致深度网络退化的原因。
  • MobileNet V2的论文中提到,由于非线性激活函数Relu的存在,每次输入到输出的过程都几乎是不可逆的,这也造成了许多不可逆的信息损失。我们试想一下,一个特征的一些有用的信息损失了,那他的表现还能做到持平吗?答案是显然的

传统的卷积层或全连接层在信息传递时,或多或少会存在信息丢失、损耗等问题。ResNet 在某种程度上解决了这个问题,通过直接将输入信息绕道传到输出,保护信息的完整性,整个网络则只需要学习输入、输出差别的那一部分,简化学习目标和难度。 

一些思考:

参考:https://zhuanlan.zhihu.com/p/106764370

1. 为什么拟合残差至少比拟合恒等映射容易得多?

https://zhuanlan.zhihu.com/p/106764370

2. 不同层数的resnet应该怎么选择使用呢?

数据规模越大一般对应深度越深。

3. 关于残差结构起作用的原因的第一点说到“在神经网络学习到这层的参数是冗余的时候它可以选择直接走这条跳接曲线,跳过这个冗余层”,那只在那些冗余层使用残差结构不就行了,为什么从第一层开始就使用呢?但如果只在冗余层使用的话,又有一个问题,怎么确定在哪一层就达到冗余了呢?

就是因为无法确定哪一层是冗余所以才要在所有层用残差结构让他有处理冗余的跳接的能力。

4. MobileNet-V2是说ReLU在特征维度较低的时候信息损失比较严重,在高维损失较少,所以采用1*1 Conv先升维,跟这里网络退化有什么关系呢?

主要是想阐述使用ReLU会导致我们的原始特征的不可逆损失,不可逆的特征损失会导致网络的退化。尽管特征在低维时使用ReLU才会崩塌,高维中影响没那么大,但是这个也无法规避我们特征损失这一事实。

5. 特征损失可能会加速网络退化,但如果这是网络退化的原因换一个激活函数比如Leaky ReLU它就不退化了吗?

首先事实上使用Leaky ReLU确实有些时候效果会比原始的ReLU好 所以现在像YOLO V3里面就用了Leaky ReLU代替ReLU,但是其实它的效果并不稳定 (一个是没有严格证明他在所有情况表现都比ReLU好 ,其次是现在BN已经被广泛运用在我们的网络架构,所以经过激活后输出都为0的情况已经很少了) 其次网络退化的原因也不只是这一点 还有文中提到的另外重要一点,就是原本的网络很难做到恒等映射。

 

 

 

 

 

 

 

上一篇:人工智能|神经网络中的激活函数


下一篇:深度学习——前馈神经网络