当前位置:   article > 正文

Resnet V1论文阅读和代码解析_csdn restv1算法

csdn restv1算法

目录:

论文阅读

代码解析

小结

 

论文阅读

论文地址:Deep Residual Learning for Image Recognition

1.介绍

最近研究表明,增加网络的深度是至关重要的。于是增加网络的深度成了大家努力的方向,但是是否堆叠更多的层就一定能够训练出更好的结果呢?事实上并不一定,我们遇到的阻碍之一就是梯度消失和梯度爆炸。如果遇到了梯度消失和梯度爆炸,网络会很难收敛。不过使用normalization可以解决这个问题。但是新的问题来了,实验发现如果训练很深的网络,准确率会在陷入饱和后陡然下降,而这个准确率下降不是由过拟合引起的。并且给一个深度合适的网络增加更多的层也会导致更高的训练误差。这就是深度网络在训练中的退化问题,但是网络越深确实能够带来更多的表达力,每一层网络的学习调整可以适应更多的场景,所以我们还是要追求更深的网络结构。

于是作者提出一种深度残差框架来解决上面提到的退化问题,使用了一种shortcut connection的连接方式。

上图就是残差网络的基本组成单元,叫做Residual block。

A2=relu(A0+Z2)就是residual block的计算方式。

论文中提到这种连接方式既没有增加参数,也没有增加计算量,但是我觉得计算量还是有少量的增加,在A0+Z2处,不过相比卷积运算确实可以忽略不计。这个网络依然可以使用SGD进行端到端的训练。作者在ImageNet上进行了系统的实验,实验显示

  1. 使用残差网络,网络很深的时候也容易优化。如果普通堆叠的网络在网络深度增加的时候,错误率会增加。
  2. 我们的残差网络能够从网络深度的增加带来可观的准确率的提升,比以往的网络有更高的准确率。

作者已经成功训练出了超过100层的网络,也对超过1000层的网络做出了探索。并且残差网络在其他识别任务上也有不错的效果,说明残差学习原则是通用的。


梯度消失和梯度爆炸

比如一个三层的神经网络,如果简化忽略b,则ai+1=f(aiwi+1),对w1求导通过链式法则可以表示为

Lossw1=Lossa3a3a2a2a1a1w1        其中

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/598165
推荐阅读
相关标签
  

闽ICP备14008679号