首页 > 代码库 > Deep Residual Network

Deep Residual Network

最近在看的一篇论文中使用来了残差网络的结构,所以来了解一下残差网络的工作原理。残差网络的深度可以达到令人发指的深度,具体有多牛逼我也不多说了。

背景

大家都知道更深的网络能够产生更好的效果,但是训练一个很深的网络却一直是一个难题,主要原因有如下几点:梯度消失、尺度不均匀的初始化。为了解决这些问题,许多研究者也提出了很多种解决办法,但是并没有很好的解决问题。何恺明发现了下面这种状况:

 技术分享

随着网络深度的增加,网络性能反而下降,而且不仅仅是测试误差增大,训练误差也更大,说明这并不是由过拟合导致的。这种现象是不合理的。假设目前有一个效果很好的网络A,这是构建一个比A更深的网络B,那么让B的前一部分与A完全相同,后面的网络层只实现恒等映射,这样B最差查会得到跟A一样的网络性能,而不会比A更差。这也是深度残差网络的思想,既然B后面的部分完全是恒等映射,则可以在训练网络的时候加上这一先验信息,于是在构造网络的时候加入了shortcut链接,即每层的输出不是传统神经网络当中输入的映射,而是映射和输入的叠加。如下图:

技术分享

 

 

本文参考了http://caffecn.cn/?/article/4

 

Deep Residual Network