术语表

消失的渐变

探索深度学习中的梯度消失问题、它对神经网络的影响,以及 ReLU、ResNets 等有效解决方案。

梯度消失问题是深度神经网络 训练过程中经常遇到的难题。梯度是用于通过反向传播更新网络权重的信号,当梯度从输出层传播回初始层时变得非常小,就会出现这种情况。当梯度趋近于零时,初始层的权重就无法有效更新,甚至根本无法更新。这基本上停止了这些层的学习过程,阻止了深度学习模型收敛到最优解并从数据中学习。

什么原因导致梯度消失?

梯度消失的主要原因在于某些激活函数的性质和网络本身的深度。

  • 激活函数:传统的激活函数,如sigmoid函数和双曲正切(tanh)函数,会将输入挤压到很小的输出范围内。这些函数的导数很小。在反向传播过程中,这些小导数会在许多层中相乘。网络的层数越多,这些小数字相乘的次数就越多,从而导致最终梯度以指数形式向零收缩。
  • 深度架构:这一问题在深度网络(包括早期的递归神经网络)中尤为明显,因为在这些网络中,梯度会通过许多时间步传播回来。每一步都涉及乘法运算,这会在长时间序列中减弱梯度信号。

消失的渐变与爆炸的渐变

消失的梯度与爆炸的梯度正好相反。这两个问题都与训练过程中的梯度流动有关,但它们的影响不同:

  • 消失的梯度梯度呈指数级缩小,直到变得太小,无法在网络的早期层进行任何有意义的学习。
  • 爆炸梯度:梯度不可控制地变大,导致大量权重更新,从而使模型变得不稳定,无法收敛。

解决这两个问题对于成功训练深度和强大的人工智能模型至关重要。

解决方案和缓解战略

为解决梯度消失问题,人们开发了多种技术:

  • 更好的激活函数:整流线性单元(ReLU)或其变体(Leaky ReLUGELU)等函数取代 sigmoid 和 tanh 是一种常见的解决方案。对于正输入,ReLU 的导数为 1,这可以防止梯度缩小。
  • 先进的架构:我们设计了专门的架构来缓解这一问题。残差网络(ResNets)引入了 "跳过连接",允许梯度绕过各层,在反向传播过程中提供更短的路径。对于顺序数据,长短期记忆(LSTM)门控递归单元(GRU)网络使用门控机制来控制信息流和梯度,详见最初的LSTM 论文GRU 论文
  • 权重初始化:使用 He 或 Xavier 初始化等方法对网络权重进行适当初始化,有助于确保梯度在合理范围内启动。有关这方面的更多信息,请参阅有关深度学习最佳实践的讨论。
  • 批量归一化 批量归一化有助于归一化每一层的输入,从而稳定网络并减少对初始化的依赖,从而缓解梯度消失问题。

现实世界的影响和实例

克服梯度消失是现代人工智能的关键突破。

  1. 自然语言处理 (NLP):早期的 RNN 无法完成机器翻译和长篇情感分析等任务,因为它们无法记住长句子开头的信息。LSTM 和 GRU 的发明使模型能够捕捉这些长距离依赖关系。像Transformer这样的现代架构利用自我注意完全绕过了顺序梯度问题,从而实现了最先进的性能。
  2. 计算机视觉:人们曾一度认为,由于梯度消失等训练困难,仅仅将卷积神经网络(CNN)变得更深并不能提高性能。ResNet体系结构的引入证明了这一观点是错误的,它使网络能够拥有数百个层。这在图像分类图像分割物体检测方面取得了重大进展,为Ultralytics YOLO 等模型奠定了基础。这些模型的训练通常涉及大型计算机视觉数据集,可以在Ultralytics HUB 等平台上进行管理。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、合作和成长

立即加入
链接复制到剪贴板