深圳Yolo 视觉
深圳
立即加入
词汇表

梯度爆炸

了解如何在深度学习中管理爆炸梯度,以确保对象检测、姿势估计 等任务的稳定训练。

梯度爆炸指的是深度神经网络训练过程中遇到的临界不稳定性。 损失函数的梯度不断累积并变得 过大。这种现象发生在 反向传播过程中出现。 误差导数和更新模型权重的过程。当 梯度呈指数增长时,它们会迫使优化算法 优化算法对网络参数进行大规模 更新网络参数。因此,模型可能会超出其最佳配置,从而导致 导致训练过程出现偏差,损失值会大起大落 狂波动或变成 NaN(非数字),导致模型无法从训练数据中学习。 训练数据

原因与机制

梯度爆炸的根本原因在于深度 架构中用于计算导数的数学链规则。当误差从输出层向后传播到输入层时,它们会乘以每个中间层的权重。 每个中间层的权重相乘。

  • 深度网络深度:在非常深度的网络中,例如在 深度学习 (DL) 中使用的网络。 大于 1.0 的结果是,每一层的梯度值都呈指数增长,类似于复利。
  • 初始化不佳:如果初始 权重设置过高,信号就会每一步都放大。 每一步都会放大。正确的 权重初始化策略对 将信号保持在可控范围内。
  • 高学习率:A 过高的学习率会使问题更加严重。 问题,导致优化器的步长过大,将模型推向误差图的不稳定区域。 误差景观。
  • 循环架构:这个问题在 递归神经网络(RNN)中很常见、 在这种情况下,相同的权重会在长时间序列中重复应用。

预防策略

现代人工智能框架和架构采用特定技术来降低这种风险,确保稳定的融合。

  • 渐变剪切:这是最直接的解决方案。它包括缩小梯度矢量 如果梯度矢量的常模超过了预定义的阈值,则将其缩小。这可以确保更新保持在合理的范围内、 无论误差面变得多么陡峭。你可以阅读更多关于 梯度削波机制 技术指南。
  • 批量归一化通过对层输入进行归一化处理、 批量归一化可稳定整个网络的 整个网络的激活分布,防止数值失控。
  • 权重正规化:L1 和 L2 正则化技术会对较大的权重值进行惩罚、 阻止模型维持可能扩大梯度的参数。
  • 高级优化器:算法,如 Adam 优化器等算法会调整每个 参数的学习率,这有助于比标准的随机梯度下降算法(SGD)更好地处理不一致的梯度尺度。 随机梯度下降算法(SGD)

以下是 PyTorch 代码段演示了如何手动实现梯度剪切。 在高级训练工作流中自动处理的一种技术,例如在 ultralytics:

import torch
import torch.nn as nn

# Define a simple linear model and optimizer
model = nn.Linear(10, 1)
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)

# Simulate a training step
loss = model(torch.randn(10)).sum()
loss.backward()

# Apply gradient clipping to prevent explosion before the optimizer step
# This limits the maximum norm of the gradients to 1.0
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

optimizer.step()

梯度爆炸 vs. 梯度消失

必须将爆炸梯度与对应的消失梯度区分开来。 消失梯度。虽然两者都源于 深度网络中相同的链式规则乘法,但它们的效果却截然相反:

  • 爆炸渐变:渐变基本上是无限的。模型权重急剧变化 导致发散和 NaN 错误。通常可以通过剪切或降低学习率来解决。
  • 消失的梯度:梯度趋近于零。早期层的模型权重停止变化、 导致神经网络停止学习。 通常可以通过跳转连接(如 ResNets)或特定的 激活函数,如 ReLU

实际应用

管理梯度大小是训练现代人工智能(AI)中使用的复杂模型的先决条件。 人工智能 (AI) 中使用的复杂模型进行训练的先决条件。

  1. 自然语言处理 (NLP):在诸如 机器翻译或文本生成等任务中,使用 模型必须处理长句。 句子。如果不进行梯度削波,在许多时间步长内累积的梯度会导致训练崩溃,从而阻碍模型学习语法结构。 崩溃,导致模型无法学习语法结构。
  2. 高性能物体检测:在训练最先进的视觉模型(如 YOLO11等大型数据集上训练 COCO等大型数据集的 YOLO11 复杂。Ultralytics 模型采用稳定的架构设计和默认训练超参数(包括标称批量大小 (包括标称的批量大小),从本质上防止梯度爆炸,确保强大的 物体检测性能。

有关稳定神经网络训练的进一步阅读,请参考 斯坦福 CS231n 课程笔记,了解更深层次的数学知识。 数学视角。

加入Ultralytics 社区

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

立即加入