🗒️梯度消失和梯度爆炸
2024-9-3
| 2024-9-3
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password
comment
😀
梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)是深度神经网络训练中常见的两个问题,它们会严重影响模型的学习能力和收敛性。

梯度消失(Vanishing Gradient)

定义:

梯度消失是指在神经网络的反向传播过程中,梯度随着层数的增加而变得非常小,接近于零。

原因:

  • 使用某些激活函数(如sigmoid、tanh)在饱和区域的导数接近零。
  • 网络层数过多,多个小于1的数相乘会导致结果趋近于零。

影响:

  • 靠近输入层的权重几乎不会更新。
  • 网络难以学习长期依赖关系。
  • 训练过程变得非常缓慢或停滞。

解决方法:

  • 使用ReLU等梯度不会饱和的激活函数。
  • 采用残差连接(Residual Connections)。
  • 使用批量归一化(Batch Normalization)。
  • 合适的权重初始化方法。
  • 梯度裁剪(Gradient Clipping)。

梯度爆炸(Exploding Gradient)

定义:

梯度爆炸是指在神经网络的反向传播过程中,梯度变得非常大,呈指数级增长。

原因:

  • 不恰当的学习率设置。
  • 权重初始化不当。
  • 网络结构设计问题。

影响:

  • 模型权重的大幅度更新,导致不稳定。
  • 训练过程可能会发散,无法收敛。
  • 可能导致数值溢出(NaN)。

解决方法:

  • 梯度裁剪(Gradient Clipping):设置梯度的阈值。
  • 使用权重正则化(Weight Regularization)。
  • 适当降低学习率。
  • 使用 LSTM 或 GRU 等门控机制的循环神经网络。

共同解决方法

  • 合理的网络结构设计。
  • 适当的超参数调整(如学习率)。
  • 使用优化器如 Adam,它能自适应调整学习率。
  • 采用批量归一化(Batch Normalization)或层归一化(Layer Normalization)。
  • 使用残差连接(Residual Connections)。

检测方法

  • 监控训练过程中的损失函数变化。
  • 观察梯度的数值分布。
  • 检查权重更新的幅度。
  • 深度学习
  • Self Attention 概述机器学习常见的评测指标
    Loading...
    Catalog