研究与解读丨残差网络解决了什么,为什么有效?
本文授权转载自知乎,作者丨LinT
1
动机: 深度神经网络的“两朵乌云”
![](https://filescdn.proginn.com/f129c091ee94c9779700fd880608b205/d7418a6fbf2f1c6907cee61735d520d2.webp)
![](https://filescdn.proginn.com/f129c091ee94c9779700fd880608b205/d7418a6fbf2f1c6907cee61735d520d2.webp)
![](https://filescdn.proginn.com/b3049b5402f56bcdd66d09a00ff37ac6/a141fec9f8f667f0c004e3dbd7cc46f0.webp)
![](https://filescdn.proginn.com/c83ca4cbe4ee90300b4ed0b1702715ce/3e7a0579d2410b13e880d9e03466644c.webp)
![](https://filescdn.proginn.com/ab46752c6fa0231e4669c2d8344f881f/6e1d0f81bfd79caddfe74e7b73a23010.webp)
![](https://filescdn.proginn.com/4a9dd6c0f4b900239871b80f4f69d58b/942288c1690c31e35c36d332b7152d18.webp)
![](https://filescdn.proginn.com/593be0b350d188ce8c465da4bd034158/50de08d154aeb7edb5466d2e20c79b84.webp)
![](https://filescdn.proginn.com/a78414e25939f383000a957e2ed9b9a8/fabbe3fd2a9619843e4ae2d383f946a4.webp)
![](https://filescdn.proginn.com/fad55938dd84db5b91dbc7995373fe78/1a388fda6f603396e414bf6ea215a24b.webp)
![](https://filescdn.proginn.com/74b951bfc010b30f7921dc8bcd557b12/f4c2265884a9798c6b8a7f2a570fb34f.webp)
![](https://filescdn.proginn.com/cc6a5ff514a47cc057f57393120af781/88ab02177e20ee6a75d4148277cae3d3.webp)
![](https://filescdn.proginn.com/ab46752c6fa0231e4669c2d8344f881f/6e1d0f81bfd79caddfe74e7b73a23010.webp)
![](https://filescdn.proginn.com/ab46752c6fa0231e4669c2d8344f881f/6e1d0f81bfd79caddfe74e7b73a23010.webp)
![](https://filescdn.proginn.com/8663f7e5c38cdd90c068b48889fba2c5/dfd542aca8c7562fd99cfec767a9aeed.webp)
![](https://filescdn.proginn.com/1ee502ceddd5f98d1e242d834f212598/db67e58a0ccd6a3c183282a015a2720b.webp)
![](https://filescdn.proginn.com/8b2cc95aac8243066c3094190894752c/a4dd933d88e0bb82feb31329cb8aa3c5.webp)
![](https://filescdn.proginn.com/c91a7efbf44d7324c59b8a87c9d963d8/91009e7fd1cd2d567299cc85fd5719b2.webp)
![](https://filescdn.proginn.com/aa29b455d6a70572e771ef0849f7e312/405d6d0acd0060efc3aef3a6c3e5cdec.webp)
![](https://filescdn.proginn.com/3d229496633bbd8ffba967cc7a97cb28/5ac1cb777131e22720c39ce2f73c9209.webp)
![](https://filescdn.proginn.com/575c79fb61404a5c2dce459eea3b0f9a/8539ed40eba6a2a4cd186bde07d01c6b.webp)
![](https://filescdn.proginn.com/ab46752c6fa0231e4669c2d8344f881f/6e1d0f81bfd79caddfe74e7b73a23010.webp)
![](https://filescdn.proginn.com/ca7d8e658fa9aba5c97e308107d54f1c/70cd6a20fc1be14b6ec065fb9a15c511.webp)
![](https://filescdn.proginn.com/71bf4cb09b7749015af99fcdcd2bdbe4/f07f6ad4c7fecac70800a7225517009b.webp)
![](https://filescdn.proginn.com/6e25e9a26907dd5c39da8acfe30c5667/206872351ac3cab23d38f472282a6b7c.webp)
![](https://filescdn.proginn.com/b9def70deb523673eafbf51e5a2588ab/2151ef68df0513fab3c68cd850a169c8.webp)
![](https://filescdn.proginn.com/75199af2529f47080314f3441c7d84bc/54055852c99b2309cc1ce8c64f87a60e.webp)
![](https://filescdn.proginn.com/75199af2529f47080314f3441c7d84bc/54055852c99b2309cc1ce8c64f87a60e.webp)
![](https://filescdn.proginn.com/b9def70deb523673eafbf51e5a2588ab/2151ef68df0513fab3c68cd850a169c8.webp)
![](https://filescdn.proginn.com/75199af2529f47080314f3441c7d84bc/54055852c99b2309cc1ce8c64f87a60e.webp)
![](https://filescdn.proginn.com/b9def70deb523673eafbf51e5a2588ab/2151ef68df0513fab3c68cd850a169c8.webp)
2
残差网络的形式化定义与实现
既然神经网络不容易拟合一个恒等映射,那么一种思路就是构造天然的恒等映射。假设神经网络非线性单元的输入和输出维度一致,可以将神经网络单元内要拟合的函数 拆分成两个部分,即:
其中 是残差函数。在网络高层,学习一个恒等映射
即等价于令残差部分趋近于0,即 。
残差单元可以以跳层连接的形式实现,即将单元的输入直接与单元输出加在一起,然后再激活。因此残差网络可以轻松地用主流的自动微分深度学习框架实现,直接使用BP算法更新参数[1]。
![](https://filescdn.proginn.com/32dc3db0902a0e4b1c225a6f1691251d/2cb69ca69031ffc650d41f4f6728087b.webp)
3
残差网络解决了什么,为什么有效?
残差网络在图像领域已然成为了一种主流模型,虽然这种网络范式的提出是为了解决网络退化问题,但是关于其作用的机制,还是多有争议。目前存在几种可能的解释,下面分别列举2016年的两篇文献和2018年的一篇文献中的内容。
3.1 从前后向信息传播的角度来看
何恺明等人从前后向信息传播的角度给出了残差网路的一种解释[3]。考虑式(5) 这样的残差块组成的前馈神经网络,为了讨论简便,暂且假设残差块不使用任何激活函数,即
考虑考虑任意两个层数 ,递归地展开(5) (6),
可以得到:
根据式 ,在前向传播时,输入信号可以从任意低层直接传播到高层。由于包含了一个天然的恒等映射,一定程度上可以解决网络退化问题。这样,最终的损失
对某低层输出的梯度可以展开为:
或展开写为
根据根据式 ,损失对某低层输出的梯度,被分解为了两项,前一项
表明,反向传播时,错误信号可以不经过任何中间权重矩阵变换直接传播到低层,一定程度上可以缓解梯度弥散问题(即便中间层矩阵权重很小,梯度也基本不会消失)。
综上,可以认为残差连接使得信息前后向传播更加顺畅。
* 加入了激活函数的情况的讨论(实验论证)请参见[3]。
3.2 集成学习的角度
Andreas Veit等人提出了一种不同的视角[2]。他们将残差网络展开,以一个三层的ResNet为例,将得到下面的树形结构:
![](https://filescdn.proginn.com/7c2f1cace1e5e48f208ecddb33a2f0d5/58f800e31c3ed73f2edf173338ed21c4.webp)
![](https://filescdn.proginn.com/a5a7b24f3736ab3983d759ec32fa42af/858b903cbe5f4bd759e23c07c24b488d.webp)
在标准前馈神经网络中,随着深度增加,梯度逐渐呈现为白噪声(white noise)。
![](https://filescdn.proginn.com/16806fa2f2a0e7445d3b1924c3ed7ae1/19a6999c3f7bae16e86c40d8e68182f8.webp)
![](https://filescdn.proginn.com/0b7899a83c4a2770204b417851d6637e/650212019ecfdbf2e18a374d780c101b.webp)
![](https://filescdn.proginn.com/86631536451ac7488b39f2fbf57ae9c7/1bcc34d3836527666f16b4f615a03960.webp)
![](https://filescdn.proginn.com/385d793eeaf5f671da711bbe87d382a9/858b903cbe5f4bd759e23c07c24b488d.webp)
4
自然语言处理中的残差结构
与图像领域不同的是,自然语言处理中的网络往往“宽而浅”,在这些网络中残差结构很难有用武之地。但是在谷歌提出了基于自注意力的Transformer架构[5],特别是BERT[6]出现以后,自然语言处理也拥有了“窄而深”的网络结构,因此当然也可以充分利用残差连接,来达到优化网络的目的。事实上,Transformer本身就包含了残差连接,其中编码器和解码器中的每一个子模块都包含了残差连接,并使用了Layer Normalization。
![](https://filescdn.proginn.com/83d0a36224f9e51336925eaa2bd36d94/4aab1432768c929544b358aee44f77ee.webp)
5
总结与扩展
残差网络真可谓是深度学习的一把利器,它的出现使得更深的网络训练成为可能。类似残差网络的结构还有Highway Network[7],与残差网络的差别在于加入了门控机制(注意它和ResNet是同时期的工作),文献[4]中也对Highway Network进行了讨论,值得一读;现在广泛使用的门控RNN,我认为与Highway Network有异曲同工之妙,可以认为是在时间维上引入了门控的残差连接;在残差网络中使用的跳层连接,在自然语言处理中也有相当多的应用,比如Bengio的神经语言模型[8]、文本匹配模型ESIM[9]等,区别在于这些工作中跳层连接仅仅将不同层次的特征拼接在一起(而不是相加),达到增加特征多样性、加快训练的目的。
P.S. 原本希望在这篇文章里面展开讲讲更多的细节,但是个人水平有限,加上知乎的文章篇幅限制,只能大概展开到这种程度。本文是笔者根据论文梳理的自己的理解,如果有谬误请指出。
参考资料:
9. Enhanced LSTM for Natural Language Inference
END
2019-07-18
![](https://filescdn.proginn.com/60b502e49d78ac256d0e94cbc9199e18/22a8a37ee1aa64464b992a7e42c869ef.webp)
2019-07-06
![](https://filescdn.proginn.com/7144cde03c25cd10de353cdc8b917737/088607441aaf32fc0f260896c115f3c4.webp)
2018-07-04
![](https://filescdn.proginn.com/5f513a74469e082b2ddc3ef0f6fb82c7/d0f81a2e1983e34c4be9e3bec4748bec.webp)
2020-08-09
![](https://filescdn.proginn.com/5af5f23decaa7c34aed0369fa8fb6cbe/8aef5e3ecef544b6e45aa6600ba0e701.webp)