目录
摘要
本文阐述了网络退化现象,即在深度神经网络中增加更多层级反而导致性能下降的问题。文章介绍了一种解决方案——残差网络(ResNet),并探讨了残差块的核心思想及其架构。本文分析了为何在传统网络中引入残差块能够提升性能,并讨论了循环神经网络(RNN)的基础知识。文章解释了标准神经网络在处理序列任务时面临的挑战,并阐明了循环神经网络在处理这类任务时的优势。此外,本文还详细介绍了循环神经网络的结构,并阐述了其前向传播和反向传播的过程。
Abstract
The paper elaborates on the phenomenon of network degradation, where the addition of more layers in deep neural networks can lead to a decline in performance. It introduces a solution to this issue—Residual Networks (ResNets)—and explores the core concept and architecture of residual blocks. The paper analyzes why incorporating residual blocks into traditional networks can enhance performance and discusses the basics of Recurrent Neural Networks (RNNs). It explains the challenges faced by standard neural networks when dealing with sequential tasks and highlights the advantages of RNNs in handling such tasks. Furthermore, the paper provides a detailed introduction to the structure of RNNs and elucidates the processes of forward and backward propagation.
1. 残差网络
上周我们学习了深度学习的优势,随着深度学习的发展,模型的深度也越来越深,那么模型越深代表模型的效果越好吗?通过深层和浅层模型的效果对比,发现并不是模型越深效果越好。
1.1 网络退化
出现这种情况的原因是当网络不断加深时会有网络退化问题。理论上,随着网络的加深,即使新增的layer什么也没学习,保持恒等输出,那么模型的损失也应该与浅层模型的损失是一样的。而如果新增的layer学习到了哪怕一个有用的特征,那么深层模型的损失必然比浅层模型的小。所以在理论上,随着模型的加深,损失至少不应该增加。
实际上,让新增的layer保持什么也不学的状态,恰恰很难,因为在训练过程中每一层layer都通过线性激活函数的处理,而这样的处理必然带来特征的信息损失(无论是有效特征还是冗余特征)。所以上述的问题情境是不存在的,当网络模型达到一定深度时,简单的堆叠神经元必然会带来退化问题。
1.2 残差网络的思想
ResNet 深度神经网络的思想来自上面提到的理想状态:让浅层的输出做恒等映射输入到深层,即恒等映射的 layer 其实就是什么也没学,只是起到传递值的作用。这样让某些 layer 不学习就能达到将深层模型实际上变浅的目的。
残差网络的核心思想是引入了"残差块"(Residual Block),它允许神经网络直接学习残差的变换,而不是需要完整地学习特征的变换。该结构通过引入跳跃连接(Skip Connection)来实现,即将残差块的输入直接连接到输出前的激活函数之前。
上图是一个残差块,第 L 层的输出 作为残差块的输入,会往两个方向传播,第一个方向是正常向深层传。特殊的是
还要往第 (L+2)层神经元传递,与第(L+2)层的激活函数的输入相加,具体计算如下: