静态网站作品,行业协会网站建设的目的,网站维护运营主要是做什么的,石家庄最新今天的消息一、梯度消失
梯度消失的根本原因在于 激活函数的性质和链式法则的计算#xff1a; 激活函数的导数很小#xff1a; 常见的激活函数#xff08;例如 Sigmoid 和 Tanh#xff09;在输入较大或较小时#xff0c;输出趋于饱和#xff08;Sigmoid 的输出趋于 0 或 1#xf…一、梯度消失
梯度消失的根本原因在于 激活函数的性质和链式法则的计算 激活函数的导数很小 常见的激活函数例如 Sigmoid 和 Tanh在输入较大或较小时输出趋于饱和Sigmoid 的输出趋于 0 或 1其导数接近于 0。在反向传播中每一层的梯度都会乘以激活函数的导数。如果导数很小乘积就会导致梯度逐渐变小。 链式法则的多次相乘 假设网络有 nn 层梯度从输出层传到第 ii 层时会经历多次链式相乘 如果每一项的导数都小于 1例如 0.5那么多次相乘后梯度将变得非常小接近于 0。 深层网络的结构 层数越多梯度消失的积累效应越明显导致靠近输入层的权重几乎无法更新。 1.4 梯度消失带来的问题
网络无法有效学习靠近输入层的权重无法更新网络的学习能力只集中在靠近输出层的部分导致模型性能受限。训练时间增加梯度很小优化器调整参数的速度变慢训练需要更多的时间。
二、梯度爆炸
1 梯度爆炸的现象 与梯度消失相反当网络层数较深时梯度在反向传播过程中可能会逐渐变大甚至变得非常大。这种现象被称为梯度爆炸。 由于梯度过大模型的参数更新幅度也会非常大可能导致
参数出现巨大波动训练过程不稳定损失值Loss变得非常大甚至出现 NaN模型无法收敛最终无法学习任何规律。 2 为什么会发生梯度爆炸
梯度爆炸的原因与梯度消失类似主要是由于链式法则的多次相乘但此时乘积中的值大于 1 权重初始化不当 如果网络的初始权重过大在反向传播时梯度的值也会变得很大。例如如果每层的权重初始化为 5经过 10 层的链式积累梯度可能会变成 激活函数的导数较大 如果激活函数的导数值很大梯度在多次相乘后会迅速变大。 深层网络的结构 网络层数越多链式法则的积累效应越明显导致梯度爆炸的概率增大。 3 梯度爆炸带来的问题
训练不稳定梯度过大导致参数更新过快训练过程可能无法收敛。损失发散梯度爆炸会导致损失值发散模型无法学习有效特征。
三、残差块 残差块Residual Block是深度学习中 ResNetResidual Network 网络的核心组件它最早由微软研究院的何凯明Kaiming He等人在 2015 年提出。残差块通过引入跳跃连接skip connection解决了深层神经网络训练中的梯度消失、梯度爆炸和退化问题使得网络能够训练得更深、性能更好。
为什么需要残差块
在深层神经网络中随着网络深度的增加层数增多存在以下问题
梯度消失Vanishing Gradient反向传播时梯度在逐层传递过程中可能逐渐变小从而无法有效更新靠近输入层的权重。梯度爆炸Exploding Gradient反之梯度可能会在逐层传递过程中变得过大导致模型训练不稳定。退化问题Degradation Problem当网络层数增加时模型的训练误差反而会变大甚至性能比浅层网络更差。
这些问题的根本原因在于随着层数增加网络在拟合复杂非线性变换时可能会难以优化。残差块通过引入跳跃连接允许网络直接学习相对较小的残差Residual从而降低优化难度。 残差块的结构
一个标准的残差块具有以下结构
主路径Main Path通过若干个卷积、批归一化Batch Normalization、激活函数如 ReLU组成是网络的主要信息传递路径。跳跃连接Skip Connection从输入直接添加到输出为网络提供了一条“捷径”。
输出形式为
yF(x)x
其中
x残差块的输入。F(x)主路径中卷积、激活等操作的输出。y残差块的最终输出。
通过直接将输入 x 加到输出 F(x) 上残差块能够显式学习 F(x)H(x)−x即学习输入与目标值之间的残差。如果 H(x) 是目标映射函数那么 F(x)F(x) 是残差函数。
1. 一般形式的残差块
以两个卷积层为例残差块的结构如下
输入x 第一层卷积Conv1d/Conv2d带激活函数如 ReLU。第二层卷积Conv1d/Conv2d。跳跃连接直接将 xx 与经过两层卷积后的结果相加。激活函数如 ReLU。
数学表达式为
yReLU(F(x)x)
2. 带维度变换的残差块
如果输入和输出的特征维度不同例如通道数或空间维度变化需要使用额外的线性变换对输入 x 进行升维或降维Projection Shortcut使得尺寸匹配。
yF(x)Ws x
其中 Ws是一个线性变换通常是 1×1 卷积。 直观解释残差块的作用
1. 更容易优化深层网络 通过学习残差 F(x)H(x)−x残差块将复杂的非线性映射 H(x)转换为一个简单的优化问题。即使网络层数增加残差块可以将输入直接传递到更深层减轻梯度消失的影响。
2. 提供信息的捷径 跳跃连接允许信息直接从输入传递到输出让网络更容易捕捉重要的特征同时保留原始特征。
3. 防止退化问题 在普通深层网络中增加更多的层可能会导致模型性能退化反而不如浅层网络。残差块通过添加跳跃连接可以显式地学习哪些层需要参与计算哪些层可以跳过从而有效防止退化。