梯度消失
探索深度学习中的梯度消失问题,它对神经网络的影响,以及 ReLU、ResNet 等有效解决方案。
梯度消失问题是在训练深度神经网络期间遇到的常见挑战。当梯度(用于通过反向传播更新网络权重的信号)从输出层传播回初始层时变得非常小时,就会发生这种情况。当这些梯度接近于零时,初始层的权重不会有效地更新,或者根本不更新。这实际上停止了这些层的学习过程,阻止深度学习模型收敛到最佳解决方案并从数据中学习。
什么导致梯度消失?
梯度消失的主要原因在于某些激活函数的性质和网络本身的深度。
- 激活函数: 传统的激活函数,如Sigmoid和双曲正切 (tanh)函数,将其输入压缩到一个非常小的输出范围内。 这些函数的导数很小。 在反向传播期间,这些小导数会在许多层上相乘。 网络拥有的层数越多,这些小数字相乘的次数就越多,导致最终梯度呈指数级向零收缩。
- 深度架构: 在非常深的网络中,这个问题尤其突出,包括早期的循环神经网络 (RNN),其中梯度会通过许多时间步长反向传播。每个步骤都涉及乘法,这会减少长序列上的梯度信号。
梯度消失 vs. 梯度爆炸
梯度消失与梯度爆炸相反。这两个问题都与训练期间梯度的流动有关,但它们的影响不同:
- 梯度消失: 梯度呈指数级缩小,直到它们变得太小,以至于无法促进网络早期层中任何有意义的学习。
- 梯度爆炸: 梯度变得无法控制地大,导致大量的权重更新,从而导致模型变得不稳定并且无法收敛。
解决这两个问题对于成功训练强大而深入的 AI 模型至关重要。
解决方案与缓解策略
已经开发了几种技术来解决梯度消失问题:
实际影响与案例
克服梯度消失是现代人工智能的一个关键突破。
- 自然语言处理 (NLP): 早期的RNN在诸如机器翻译和长篇情感分析之类的任务中失败,因为它们无法记住长句开头的信息。LSTM和GRU的发明使模型能够捕获这些长距离依赖关系。诸如Transformer之类的现代架构使用自注意力来完全绕过顺序梯度问题,从而实现最先进的性能。
- 计算机视觉: 曾经认为,仅仅加深卷积神经网络 (CNN)不会提高性能,因为存在梯度消失等训练困难。ResNet 架构的引入证明了这一点是错误的,它使具有数百层的网络成为可能。这导致了图像分类、图像分割和目标检测的重大进步,为 Ultralytics YOLO 等模型奠定了基础。这些模型的训练通常涉及大型计算机视觉数据集,并且可以在 Ultralytics HUB 等平台上进行管理。