您的位置:首页 > 游戏 > 手游 > 广州官方发布_电脑网页怎么下载视频_优秀的软文广告欣赏_西安百度推广优化

广州官方发布_电脑网页怎么下载视频_优秀的软文广告欣赏_西安百度推广优化

2025/3/5 3:09:07 来源:https://blog.csdn.net/liruiqiang05/article/details/145922655  浏览:    关键词:广州官方发布_电脑网页怎么下载视频_优秀的软文广告欣赏_西安百度推广优化
广州官方发布_电脑网页怎么下载视频_优秀的软文广告欣赏_西安百度推广优化

一、Swish 函数

Swish 函数是一种较新的激活函数,由 Ramachandran 等人在 2017 年提出,其数学表达式通常为

其中 σ(x) 是 Sigmoid 函数(Logistic 函数)。

如何理解 Swish 函数

  1. 自门控特性

    • Swish 函数可以看作是对输入 x 进行“自门控”的机制:输入 x 乘以其经过 Sigmoid 函数的值,相当于让 x 自己决定通过的比例。
    • 当 x 较大时,σ(x) 趋近于1,此时 Swish 函数近似为 x;当 x 较小时,σ(x) 会使 x 被适当缩放,从而调整激活值。
  2. 平滑与非单调性

    • Swish 函数是一条平滑、连续且处处可微的曲线。与 ReLU 等激活函数相比,它没有突然的断点。
    • 同时,Swish 函数是非单调的,即在某些区间内函数值可能先增加后减少,这种非单调性有时能够让网络学习到更复杂的特征表示。
  3. 改进训练效果

    • 研究表明,在某些深度学习任务中,使用 Swish 作为激活函数可以比使用 ReLU 带来更好的训练性能和泛化效果。
    • 这种性能提升可能归因于其平滑和非单调的特性,使得梯度传播更加稳定,降低梯度消失或爆炸的风险(参考下面对应的解释)
  4. 扩展形式

    • Swish 函数有一个扩展形式: Swish(x)=x⋅σ(βx), 其中 β是一个可调参数,甚至可以作为可学习参数。不同的 β值会影响激活函数在负区间和正区间的斜率,从而让模型更灵活地适应不同的数据分布。
    • 其中 𝜎(⋅) 为 Logistic 函数,𝛽 为可学习的参数或一个固定超参数。𝜎(⋅) ∈ (0, 1) 可 以看作一种软性的门控机制。当 𝜎(𝛽𝑥) 接近于 1 时,门处于“开”状态,激活函数的 输出近似于 𝑥 本身;当 𝜎(𝛽𝑥) 接近于 0 时,门的状态为“关”,激活函数的输出近似 于0。

      Swish 函数的图示如下:

当𝛽 = 0时,Swish函数变成线性函数𝑥/2;

当𝛽 = 1时,Swish函数在𝑥 > 0 时近似线性,在𝑥 < 0时近似饱和,同时具有一定的非单调性;

当𝛽 → +∞时,𝜎(𝛽𝑥) 趋向于离散的 0-1 函数,Swish 函数近似为 ReLU 函数。

因此,Swish 函数可以看作线性函数和 ReLU 函数之间的非线性插值函数,其程度由参数 𝛽 控制。

举例说明

例子:比较 Swish 与 ReLU 在激活上的差异
假设某神经元计算出的线性组合 x 为 -2, -1, 0, 1, 2。

  • ReLU 的输出:

    • 当 x = -2 或 -1 时,输出0;
    • 当 x = 0 时,输出0;
    • 当 x = 1 时,输出1;
    • 当 x = 2 时,输出2。
  • Swish 的输出(假设 β=1):

    • 当 x = -2 时,σ(−2)≈0.12,输出 −2×0.12≈−0.24;
    • 当 x = -1 时,σ(−1)≈0.27,输出 −1×0.27≈−0.27;
    • 当 x = 0 时,σ(0)=0.5,输出 0×0.5=0;
    • 当 x = 1 时,σ(1)≈0.73,输出 1×0.73≈0.731;
    • 当 x = 2 时,σ(2)≈0.88,输出 2×0.88≈1.762 。

从上面可以看出,与 ReLU 相比,Swish 函数在负数区域并不是完全为0,而是保留了负值(尽管较小),而在正数区域输出接近于线性。这样的行为使得网络在训练过程中能保留更多信息,梯度传播更平滑。

Swish 函数将输入 x 与 Sigmoid 函数 σ(x) 的输出相乘,实现了一个平滑且非单调的激活函数。这种设计不仅允许网络在负区域保留部分信息,还提供了平滑的梯度,有助于稳定训练过程并提高模型的泛化能力。其扩展形式中引入的参数 β 进一步增强了模型适应数据的灵活性。

梯度消失或爆炸的风险

梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)是深度神经网络训练中常见的两大问题,主要与反向传播过程中的梯度计算方式(链式法则)有关。它们会导致模型无法有效学习或训练不稳定。以下是它们的定义、原因及影响:

1. 梯度消失(Vanishing Gradient)

  • 定义:在反向传播过程中,梯度(损失函数对参数的导数)逐层传递时逐渐减小,甚至趋近于零,导致浅层网络的权重几乎无法更新。

  • 原因

    • 链式法则的连乘效应:梯度通过反向传播逐层计算时,每一层的梯度都会被前一层的梯度相乘。如果每层的梯度值小于1,多次连乘后会指数级趋近于零。

    • 激活函数的选择:例如 Sigmoid 或 Tanh 函数在输入较大时导数接近零(饱和区),导致梯度消失。

  • 后果

    • 浅层网络参数几乎不更新,模型无法学习底层特征。

    • 模型收敛缓慢或完全停止训练,性能显著下降。

2. 梯度爆炸(Exploding Gradient)

  • 定义:梯度在反向传播过程中逐层增大,最终导致权重更新幅度过大,甚至数值溢出(如 NaN)。

  • 原因

    • 链式法则的连乘效应:如果每层的梯度值大于1,多次连乘后会指数级增长。

    • 权重初始化不当:例如初始权重过大,或网络层数过深。

  • 后果

    • 参数更新不稳定,损失剧烈震荡甚至发散。

    • 权重值变为 NaN,训练完全失败。

3. 为什么梯度问题危害大?

  • 深层网络更脆弱:网络层数越多,梯度连乘的效应越明显,问题越严重。

  • 影响模型表达能力:梯度消失导致浅层无法学习,深层网络退化为浅层网络。

  • 训练效率低下:需要更复杂的调参(如学习率调整)或更长的训练时间。

4. 常见解决方案

  1. 激活函数改进

    • 使用 ReLU、Leaky ReLU 等非饱和激活函数,避免梯度消失。

  2. 权重初始化

    • 使用 Xavier初始化 或 He初始化,根据激活函数调整初始权重的分布。

  3. 归一化技术

    • 批量归一化(Batch Normalization):缓解梯度对参数尺度的依赖。

  4. 残差结构(ResNet)

    • 通过跳跃连接(Skip Connection)绕过梯度消失的层,直接传递梯度。

  5. 梯度裁剪(Gradient Clipping)

    • 对过大的梯度设定阈值,防止梯度爆炸(常用于RNN)。

  6. 优化算法

    • 使用 Adam、RMSProp 等自适应优化器,动态调整学习率。

  7. 网络结构设计

    • 在RNN中使用 LSTM 或 GRU,通过门控机制缓解梯度问题。

5.示例说明

  • 梯度消失:一个10层的全连接网络使用 Sigmoid 激活函数,反向传播时梯度可能在第5层之后趋近于零,导致前5层无法更新。

  • 梯度爆炸:一个未做梯度裁剪的RNN模型,在长序列训练时梯度可能迅速增大,导致参数溢出。

二、GELU 函数

GELU(Gaussian Error Linear Unit,高斯误差线性单元)也是一种通过门控机制来调整其输出值的激活函数,和 Swish 函数比较类似。

GELU(Gaussian Error Linear Unit,正态误差线性单元)是一种激活函数,它将输入值 x 与 x 取正态累积分布函数(CDF)的值相乘,从而实现非线性变换。其数学表达式通常写为:

其中,Φ(x) 是标准正态分布的累积分布函数,表示一个标准正态随机变量小于 x 的概率。

𝜇, 𝜎 为超参数,一般设 𝜇 = 0, 𝜎 = 1 即可。由于高斯分布的累积分布函数为 S 型函数,因此 GELU 函数可 以用 Tanh 函数或 Logistic 函数来近似,

为了便于计算,实际应用中常使用以下近似公式:

或                         GELU(𝑥) ≈ 𝑥𝜎(1.702𝑥).

当使用 Logistic 函数来近似时,GELU 相当于一种特殊的 Swish 函数。

(参考下面第三部分,概率密度函数和累积分布函数的概念)

如何理解 GELU 函数

  1. 概率视角

    • GELU 函数的核心思想是“概率性激活”:将输入 x 与其“被激活”的概率(由正态累积分布 Φ(x) 表示)相乘。这意味着,一个神经元的激活不仅依赖于输入的大小,还依赖于该输入在统计意义上有多大可能被视为“正向贡献”。
  2. 平滑性和非线性

    • 与 ReLU 相比,GELU 是一种平滑且处处可微的函数,没有硬性截断,从而有助于梯度更平稳地传递,降低梯度消失的风险。
    • 同时,GELU 是非单调的(在某些区间内可能出现非单调性),这种特性使得网络可以捕捉更复杂的模式。
  3. 实际应用中的优势

    • 在许多自然语言处理和计算机视觉任务中,GELU 函数表现出比 ReLU 更好的性能。例如,BERT 和其他 Transformer 模型中就使用了 GELU 作为激活函数,因为它能更细腻地调节信息流。

举例说明

例子:Transformer 中的 GELU
在 Transformer 模型中,隐藏层通常使用 GELU 激活函数来处理输入。假设某层神经元计算得到一个值 x:

  • 当 x 较大时,Φ(x) 接近于1,因此 GELU 输出近似于 x;
  • 当 x 较小或为负时,Φ(x) 会相应较小,从而使输出趋于较小的值或接近于0。

这种设计允许模型在处理不同尺度的输入时,能根据统计概率自动调节激活程度,从而捕捉更多细微特征,提高模型的表现。

GELU 函数通过将输入与正态累积分布的概率相乘,实现了一种基于概率视角的平滑激活机制。它既能保留输入的线性特性,又能通过平滑非线性变换提供更稳定的梯度传递和更强的表达能力,这使得它在现代深度学习模型中(如 Transformer)得到广泛应用。

三、附加:概率密度函数、累积分布函数的区别和联系

概率密度函数(PDF)累积分布函数(CDF)是描述随机变量分布的重要工具,它们既有区别又密切相关:

区别

  1. 定义不同

    • 概率密度函数(PDF)
      适用于连续随机变量。它描述了随机变量在某个取值附近出现的“相对可能性”。注意,单个点的 PDF 值本身不是概率,必须通过积分计算某个区间内的概率。例如,对于连续随机变量 X,其 PDF 表示为 f(x),某个区间 [a, b] 内的概率为

    • 累积分布函数(CDF)
      表示随机变量小于或等于某个特定值的概率。对于随机变量 X,其 CDF 表示为 F(x),定义为

      CDF 对于连续和离散随机变量都适用,且其取值范围在 [0, 1]。

  2. 数值与物理意义

    • PDF
      描述的是相对密度,给出的是“密度”而不是直接的概率值。比如,f(x) 的值可能大于1,但只要积分结果在某个区间内小于1,就表示该区间内的概率。

    • CDF
      直接反映概率。它是一个从 −∞到 +∞单调非减的函数,且满足 F(−∞)=0 和 F(+∞)=1。

联系

  1. 数学关系
    对于连续随机变量,CDF 和 PDF 之间存在密切联系:

    • 积分关系
      CDF 是 PDF 的积分,即
    • 微分关系
      如果 CDF F(x) 在 x 处可导,那么其导数就是 PDF:
  2. 用途上的互补

    • 使用 PDF,我们可以分析随机变量在某个区间的“密度”或“强度”,并通过积分得到区间概率。
    • 使用 CDF,我们可以直接了解随机变量在某个值以下的累积概率,这在统计推断和概率计算中非常直接和方便。

举例说明

例子:标准正态分布

从这个例子可以看出,CDF 给出了累积概率,而 PDF 则描述了概率“分布的浓度”。

总结

  • 概率密度函数(PDF):描述连续随机变量在各个点附近的相对概率密度,需要通过积分才能得到具体区间的概率。
  • 累积分布函数(CDF):直接表示随机变量小于或等于某个值的累计概率,具有直观的概率意义,并且可以通过积分(或求导)与 PDF 互相转换。

理解这两者的区别和联系对于掌握概率分布、进行概率计算以及进行统计推断非常重要。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com