IT评测·应用市场-qidao123.com技术社区

标题: 深入分析ReLU激活函数:特性、优势与梯度消失问题的解决之道,以及Leaky ReLU 和 Parametric ReLU [打印本页]

作者: 守听    时间: 2025-3-26 00:15
标题: 深入分析ReLU激活函数:特性、优势与梯度消失问题的解决之道,以及Leaky ReLU 和 Parametric ReLU
深入分析ReLU激活函数:特性、优势与梯度消失问题的解决之道

在深度学习领域,激活函数的选择直接影响神经网络的训练结果和性能。整流线性单位(Rectified Linear Unit,简称ReLU)因其简单性、高效性以及对梯度消失问题的缓解本领,成为现代深度神经网络中最常用的激活函数之一。本文将从ReLU的定义、数学特性、梯度举动以及其在深度学习中的应用出发,深入探究其为何能有效克制梯度消失问题,并提供一些深刻的洞见,面向具有扎实底子的深度学习研究者。

一、ReLU激活函数的数学定义

ReLU的定义极其简单:
                                         ReLU                            (                            x                            )                            =                            max                            ⁡                            (                            0                            ,                            x                            )                                  \text{ReLU}(x) = \max(0, x)                     ReLU(x)=max(0,x)
即对于输入 (                                   x                              x                  x),如果 (                                   x                         >                         0                              x > 0                  x>0),输出 (                                   x                              x                  x);如果 (                                   x                         ≤                         0                              x \leq 0                  x≤0),输出0。从函数图像上看,ReLU是一条分段线性函数:在负半轴为程度线(值为0),在正半轴为45度斜线(斜率为1)。这种简单性不但降低了计算复杂度,还带来了很多意想不到的优势。

二、ReLU的数学与计算特性


三、为何ReLU不会出现梯度消失问题?

梯度消失问题是深度神经网络训练中的一大困难,尤其在Sigmoid和tanh等激活函数中体现明显。这些函数在输入绝对值较大时,导数趋于0,导致反向传播时梯度在深层网络中敏捷衰减。而ReLU通过其独特的计划有效缓解了这一问题,以下是具体分析:

四、ReLU的优势与局限


五、深刻的洞见


六、总结

ReLU激活函数以其简单高效的计划,乐成解决了梯度消失问题,成为深度学习中的基石。其导数的二值性、非饱和性以及希罕激活特性,确保了梯度在深层网络中的有效传播。只管存在殒命神经元等局限,ReLU的变种和优化策略(如适当的初始化和正则化)进一步巩固了其职位。对于深度学习研究者而言,理解ReLU的数学本质及其对梯度传播的影响,不但有助于优化现有模型,还能启发新型激活函数的计划。
Loss对激活的梯度

在反向传播中,计算 (                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 是理解梯度传播的关键一步。它表示丧失函数 (                                   L                              L                  L) 对第 (                                   l                              l                  l) 层激活值 (                                             a                                       (                               l                               )                                                 a^{(l)}                  a(l)) 的偏导数,而这个值通常须要通过从后一层(第 (                                   l                         +                         1                              l+1                  l+1) 层)通报返来的梯度计算得到。以下将具体推导 (                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 的计算过程,并结合ReLU激活函数的特性举行分析,面向有深度学习底子的研究者,提供清楚且深入的分析。

一、反向传播的团体框架

在神经网络中,梯度通过链式法则从输出层逐层向输入层传播。对于第 (                                   l                              l                  l) 层,我们的目标是计算 (                                                        ∂                               L                                                 ∂                                           z                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial z^{(l)}}                  ∂z(l)∂L​),以更新该层的权重和偏置。而根据链式法则:
                                                                ∂                                  L                                                      ∂                                               z                                                   (                                        l                                        )                                                                          =                                                   ∂                                  L                                                      ∂                                               a                                                   (                                        l                                        )                                                                          ⋅                                                   ∂                                               a                                                   (                                        l                                        )                                                                               ∂                                               z                                                   (                                        l                                        )                                                                                \frac{\partial L}{\partial z^{(l)}} = \frac{\partial L}{\partial a^{(l)}} \cdot \frac{\partial a^{(l)}}{\partial z^{(l)}}                     ∂z(l)∂L​=∂a(l)∂L​⋅∂z(l)∂a(l)​
此中:

因此,计算 (                                                        ∂                               L                                                 ∂                                           z                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial z^{(l)}}                  ∂z(l)∂L​) 的关键在于先求出 (                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​)。而 (                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 的值依靠于第 (                                   l                              l                  l) 层对后续层的影响,通过反向传播从第 (l+1) 层通报而来。

二、(                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 的推导

要计算 (                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​),我们须要考虑 (                                             a                                       (                               l                               )                                                 a^{(l)}                  a(l)) 如何影响丧失 (                                   L                              L                  L)。在神经网络中,(                                             a                                       (                               l                               )                                                 a^{(l)}                  a(l)) 是第 (                                   l                              l                  l) 层的输出,它会作为第 (                                   l                         +                         1                              l+1                  l+1) 层的输入,到场计算 (                                             z                                       (                               l                               +                               1                               )                                                 z^{(l+1)}                  z(l+1))。因此,(                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 须要通过 (                                             z                                       (                               l                               +                               1                               )                                                 z^{(l+1)}                  z(l+1)) 和 (                                             a                                       (                               l                               +                               1                               )                                                 a^{(l+1)}                  a(l+1)) 的关系来计算。
1. 定义第 (                                   l                         +                         1                              l+1                  l+1) 层的计算

假设第 (                                   l                         +                         1                              l+1                  l+1) 层的线性输入为:
                                                    z                                           (                                  l                                  +                                  1                                  )                                                 =                                       W                                           (                                  l                                  +                                  1                                  )                                                            a                                           (                                  l                                  )                                                 +                                       b                                           (                                  l                                  +                                  1                                  )                                                       z^{(l+1)} = W^{(l+1)} a^{(l)} + b^{(l+1)}                     z(l+1)=W(l+1)a(l)+b(l+1)
此中 (                                             W                                       (                               l                               +                               1                               )                                                 W^{(l+1)}                  W(l+1)) 是权重矩阵,(                                             b                                       (                               l                               +                               1                               )                                                 b^{(l+1)}                  b(l+1)) 是偏置向量。然后,(                                             z                                       (                               l                               +                               1                               )                                                 z^{(l+1)}                  z(l+1)) 通过激活函数生成 (                                             a                                       (                               l                               +                               1                               )                                                 a^{(l+1)}                  a(l+1)):
                                                    a                                           (                                  l                                  +                                  1                                  )                                                 =                            f                            (                                       z                                           (                                  l                                  +                                  1                                  )                                                 )                                  a^{(l+1)} = f(z^{(l+1)})                     a(l+1)=f(z(l+1))
这里的 (                                   f                         (                         ⋅                         )                              f(\cdot)                  f(⋅)) 可以是任意激活函数(好比ReLU、Sigmoid等)。
2. 应用链式法则

丧失 (                                   L                              L                  L) 通过 (                                             a                                       (                               l                               +                               1                               )                                                 a^{(l+1)}                  a(l+1)) 和 (                                             z                                       (                               l                               +                               1                               )                                                 z^{(l+1)}                  z(l+1)) 间接依靠于 (                                             a                                       (                               l                               )                                                 a^{(l)}                  a(l))。因此,(                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 须要考虑 (                                             a                                       (                               l                               )                                                 a^{(l)}                  a(l)) 对所有 (                                             z                                       (                               l                               +                               1                               )                                                 z^{(l+1)}                  z(l+1)) 的影响。假设 (                                             z                                       (                               l                               +                               1                               )                                                 z^{(l+1)}                  z(l+1)) 是一个向量,其第 (                                   j                              j                  j) 个元素为 (                                             z                            j                                       (                               l                               +                               1                               )                                                 z_j^{(l+1)}                  zj(l+1)​),则:
                                                    z                               j                                           (                                  l                                  +                                  1                                  )                                                 =                                       ∑                               i                                                 W                                           j                                  i                                                      (                                  l                                  +                                  1                                  )                                                            a                               i                                           (                                  l                                  )                                                 +                                       b                               j                                           (                                  l                                  +                                  1                                  )                                                       z_j^{(l+1)} = \sum_i W_{ji}^{(l+1)} a_i^{(l)} + b_j^{(l+1)}                     zj(l+1)​=i∑​Wji(l+1)​ai(l)​+bj(l+1)​
此中 (                                             W                                       j                               i                                                 (                               l                               +                               1                               )                                                 W_{ji}^{(l+1)}                  Wji(l+1)​) 是权重矩阵的第 (                                   j                              j                  j) 行第 (                                   i                              i                  i) 列元素,(                                             a                            i                                       (                               l                               )                                                 a_i^{(l)}                  ai(l)​) 是 (                                             a                                       (                               l                               )                                                 a^{(l)}                  a(l)) 的第 (                                   i                              i                  i) 个分量。
根据链式法则,(                                                        ∂                               L                                                 ∂                                           a                                  i                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a_i^{(l)}}                  ∂ai(l)​∂L​)(即 (                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 的第 (                                   i                              i                  i) 个分量)为:
                                                                ∂                                  L                                                      ∂                                               a                                     i                                                   (                                        l                                        )                                                                          =                                       ∑                               j                                                             ∂                                  L                                                      ∂                                               z                                     j                                                   (                                        l                                        +                                        1                                        )                                                                          ⋅                                                   ∂                                               z                                     j                                                   (                                        l                                        +                                        1                                        )                                                                               ∂                                               a                                     i                                                   (                                        l                                        )                                                                                \frac{\partial L}{\partial a_i^{(l)}} = \sum_j \frac{\partial L}{\partial z_j^{(l+1)}} \cdot \frac{\partial z_j^{(l+1)}}{\partial a_i^{(l)}}                     ∂ai(l)​∂L​=j∑​∂zj(l+1)​∂L​⋅∂ai(l)​∂zj(l+1)​​
3. 计算 (                                                        ∂                                           z                                  j                                               (                                     l                                     +                                     1                                     )                                                                        ∂                                           a                                  i                                               (                                     l                                     )                                                                        \frac{\partial z_j^{(l+1)}}{\partial a_i^{(l)}}                  ∂ai(l)​∂zj(l+1)​​)

从 (                                             z                            j                                       (                               l                               +                               1                               )                                                 z_j^{(l+1)}                  zj(l+1)​) 的定义来看:
                                                                ∂                                               z                                     j                                                   (                                        l                                        +                                        1                                        )                                                                               ∂                                               a                                     i                                                   (                                        l                                        )                                                                          =                                       W                                           j                                  i                                                      (                                  l                                  +                                  1                                  )                                                       \frac{\partial z_j^{(l+1)}}{\partial a_i^{(l)}} = W_{ji}^{(l+1)}                     ∂ai(l)​∂zj(l+1)​​=Wji(l+1)​
这是因为 (                                             z                            j                                       (                               l                               +                               1                               )                                                 z_j^{(l+1)}                  zj(l+1)​) 对 (                                             a                            i                                       (                               l                               )                                                 a_i^{(l)}                  ai(l)​) 的偏导数仅与对应的权重 (                                             W                                       j                               i                                                 (                               l                               +                               1                               )                                                 W_{ji}^{(l+1)}                  Wji(l+1)​) 有关。
4. 代入链式法则

于是:
                                                                ∂                                  L                                                      ∂                                               a                                     i                                                   (                                        l                                        )                                                                          =                                       ∑                               j                                                             ∂                                  L                                                      ∂                                               z                                     j                                                   (                                        l                                        +                                        1                                        )                                                                          ⋅                                       W                                           j                                  i                                                      (                                  l                                  +                                  1                                  )                                                       \frac{\partial L}{\partial a_i^{(l)}} = \sum_j \frac{\partial L}{\partial z_j^{(l+1)}} \cdot W_{ji}^{(l+1)}                     ∂ai(l)​∂L​=j∑​∂zj(l+1)​∂L​⋅Wji(l+1)​
用向量形式表示,(                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 是向量,其计算为:
                                                                ∂                                  L                                                      ∂                                               a                                                   (                                        l                                        )                                                                          =                            (                                       W                                           (                                  l                                  +                                  1                                  )                                                            )                               T                                      ⋅                                                   ∂                                  L                                                      ∂                                               z                                                   (                                        l                                        +                                        1                                        )                                                                                \frac{\partial L}{\partial a^{(l)}} = (W^{(l+1)})^T \cdot \frac{\partial L}{\partial z^{(l+1)}}                     ∂a(l)∂L​=(W(l+1))T⋅∂z(l+1)∂L​
这里的 ((                                             W                                       (                               l                               +                               1                               )                                                      )                            T                                       W^{(l+1)})^T                  W(l+1))T) 是权重矩阵的转置,(                                                        ∂                               L                                                 ∂                                           z                                               (                                     l                                     +                                     1                                     )                                                                        \frac{\partial L}{\partial z^{(l+1)}}                  ∂z(l+1)∂L​) 是第 (                                   l                         +                         1                              l+1                  l+1) 层的梯度(已通过反向传播从后一层计算得到)。
5. (                                                        ∂                               L                                                 ∂                                           z                                               (                                     l                                     +                                     1                                     )                                                                        \frac{\partial L}{\partial z^{(l+1)}}                  ∂z(l+1)∂L​) 的泉源

(                                                        ∂                               L                                                 ∂                                           z                                               (                                     l                                     +                                     1                                     )                                                                        \frac{\partial L}{\partial z^{(l+1)}}                  ∂z(l+1)∂L​) 本身是通过第 (                                   l                         +                         1                              l+1                  l+1) 层的激活函数导数和更后层的梯度计算的:
                                                                ∂                                  L                                                      ∂                                               z                                                   (                                        l                                        +                                        1                                        )                                                                          =                                                   ∂                                  L                                                      ∂                                               a                                                   (                                        l                                        +                                        1                                        )                                                                          ⋅                                                   ∂                                               a                                                   (                                        l                                        +                                        1                                        )                                                                               ∂                                               z                                                   (                                        l                                        +                                        1                                        )                                                                                \frac{\partial L}{\partial z^{(l+1)}} = \frac{\partial L}{\partial a^{(l+1)}} \cdot \frac{\partial a^{(l+1)}}{\partial z^{(l+1)}}                     ∂z(l+1)∂L​=∂a(l+1)∂L​⋅∂z(l+1)∂a(l+1)​
此中 (                                                        ∂                                           a                                               (                                     l                                     +                                     1                                     )                                                                        ∂                                           z                                               (                                     l                                     +                                     1                                     )                                                                        \frac{\partial a^{(l+1)}}{\partial z^{(l+1)}}                  ∂z(l+1)∂a(l+1)​) 是第 (                                   l                         +                         1                              l+1                  l+1) 层激活函数的导数(例如,若为ReLU,则为0或1)。这一过程递归举行,直到输出层。

三、结合ReLU的具体例子

假设第 (                                   l                              l                  l) 层和第 (                                   l                         +                         1                              l+1                  l+1) 层都使用ReLU激活函数。我们从第 (                                   l                         +                         1                              l+1                  l+1) 层开始:
这种逐层通报的过程展示了ReLU如何通过保持导数为1(在正输入时)克制梯度缩减。

四、计算上的直观理解



五、总结

(                                                        ∂                               L                                                 ∂                                           a                                               (                                     l                                     )                                                                        \frac{\partial L}{\partial a^{(l)}}                  ∂a(l)∂L​) 的计算依靠于第 (                                   l                         +                         1                              l+1                  l+1) 层的梯度 (                                                        ∂                               L                                                 ∂                                           z                                               (                                     l                                     +                                     1                                     )                                                                        \frac{\partial L}{\partial z^{(l+1)}}                  ∂z(l+1)∂L​) 和权重矩阵 (                                             W                                       (                               l                               +                               1                               )                                                 W^{(l+1)}                  W(l+1)),通过链式法则从后一层递归通报而来。当结合ReLU时,(                                                        ∂                                           a                                               (                                     l                                     )                                                                        ∂                                           z                                               (                                     l                                     )                                                                        \frac{\partial a^{(l)}}{\partial z^{(l)}}                  ∂z(l)∂a(l)​) 的二值性(0或1)确保了梯度不会因激活函数而逐渐变小,从而缓解梯度消失问题。希望这个推导能帮助你更清楚地理解反向传播的细节!
ReLU的“殒命神经元”问题与变种:Leaky ReLU 和 Parametric ReLU 的深入分析

ReLU(Rectified Linear Unit)激活函数因其简单高效和缓解梯度消失问题的本领,在深度学习中广受欢迎。然而,它的一个显著局限是“殒命神经元”(Dying ReLU)问题:当神经元的输入始终小于0时,其输出和梯度均为0,导致该神经元在训练中无法更新,相当于“殒命”。这一问题在学习率过高、输入分布偏移或网络初始化不当的环境下尤为突出。为了解决这一缺陷,研究者提出了ReLU的变种,此中 Leaky ReLUParametric ReLU(PReLU) 是两种重要的改进形式。下面将深入介绍这两种变种的定义、数学特性、优势及应用场景,面向深度学习研究者提供具体分析。

一、殒命神经元问题的根源

在尺度ReLU中,激活函数定义为:
                                         ReLU                            (                            x                            )                            =                            max                            ⁡                            (                            0                            ,                            x                            )                                  \text{ReLU}(x) = \max(0, x)                     ReLU(x)=max(0,x)
其导数为:
                                                    d                                           d                                  x                                                 ReLU                            (                            x                            )                            =                                       {                                                                                                     1                                              ,                                                                                                                            if                                               x                                              >                                              0                                                                                                                                                  0                                              ,                                                                                                                            if                                               x                                              ≤                                              0                                                                                                             \frac{d}{dx} \text{ReLU}(x) = \begin{cases} 1, & \text{if } x > 0 \\ 0, & \text{if } x \leq 0 \end{cases}                     dxd​ReLU(x)={1,0,​if x>0if x≤0​
当输入 (                                   x                         ≤                         0                              x \leq 0                  x≤0) 时,输出为0,梯度也为0。如果某个神经元的输入 (                                   z                         =                         W                         x                         +                         b                              z = Wx + b                  z=Wx+b) 在训练过程中始终小于0(例如由于权重 (                                   W                              W                  W) 和偏置 (                                   b                              b                  b) 的初始值或更新方向导致),该神经元将不再对丧失函数产生贡献,也无法通过梯度更新调解权重。这种“不可逆关闭”的状态就是“殒命神经元”问题,尤其在深层网络中大概导致大量神经元失效,降低模型的表达本领。

二、Leaky ReLU:引入负输入的小斜率

1. 定义

Leaky ReLU(漏斗整流线性单位)是对ReLU的改进,旨在克制神经元完全“殒命”。其定义为:
                                         Leaky ReLU                            (                            x                            )                            =                                       {                                                                                                     x                                              ,                                                                                                                            if                                               x                                              >                                              0                                                                                                                                                  α                                              x                                              ,                                                                                                                            if                                               x                                              ≤                                              0                                                                                                             \text{Leaky ReLU}(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{if } x \leq 0 \end{cases}                     Leaky ReLU(x)={x,αx,​if x>0if x≤0​
此中 (                                   α                              \alpha                  α) 是一个小的正数(通常取默认值如0.01),表示负输入区域的斜率。
2. 数学特性


3. 优势


4. 局限与洞见


5. 应用场景

Leaky ReLU常用于须要克制殒命神经元但仍希望保存ReLU简单性的场景,例如卷积神经网络(CNN)或深层全连接网络。研究表明,在某些视觉任务中(如图像分类),Leaky ReLU比尺度ReLU体现更稳固。

三、Parametric ReLU(PReLU):斜率可学习

1. 定义

Parametric ReLU(参数化ReLU,简称PReLU)是Leaky ReLU的进一步改进,将负输入区域的斜率 (                                   α                              \alpha                  α) 作为可训练参数。其定义为:
                                         PReLU                            (                            x                            )                            =                                       {                                                                                                     x                                              ,                                                                                                                            if                                               x                                              >                                              0                                                                                                                                                  α                                              x                                              ,                                                                                                                            if                                               x                                              ≤                                              0                                                                                                             \text{PReLU}(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{if } x \leq 0 \end{cases}                     PReLU(x)={x,αx,​if x>0if x≤0​
与Leaky ReLU不同,这里的 (                                   α                              \alpha                  α) 不再是固定值,而是通过训练优化得到。可以为每个神经元设置独立的 (                                   α                              \alpha                  α)(逐通道或逐元素),也可以共享一个全局 (                                   α                              \alpha                  α)。
2. 数学特性


3. 优势


4. 局限与洞见


5. 应用场景

PReLU在深层网络和复杂任务中体现精彩,例如目标检测(如Faster R-CNN)和生成对抗网络(GAN)。其首次提出是在2015年的论文《Delving Deep into Rectifiers》中,用于提升深度CNN在ImageNet上的性能,实验表明PReLU显著优于ReLU和Leaky ReLU。

四、Leaky ReLU 与 PReLU 的对比

特性Leaky ReLUPReLU负区域斜率固定(如0.01)可学习参数 (                                                  α                                          \alpha                           α)计算复杂度低稍高(需优化额外参数)机动性较低(超参数需手动调优)高(自顺应调解斜率)参数目无额外参数增长少量参数(视实现而定)实用场景简单任务、计算资源受限深层网络、复杂任务
五、深刻的洞见


六、总结

Leaky ReLU和PReLU作为ReLU的变种,通过为负输入区域引入非零梯度,有效缓解了殒命神经元问题。Leaky ReLU以简单高效见长,适合资源受限或实验性场景;而PReLU通过可学习的斜率提供更大机动性,实用于深层网络和复杂任务。研究者在选择时需综合考虑计算资本、任务复杂度及数据特性。将来,结合自顺应机制或肴杂激活函数的计划,或许能进一步突破ReLU类激活函数的局限。
代码绘制图形

以下是一个使用 Python(结合 NumPy 和 Matplotlib)实现的代码,用于绘制 ReLU、Leaky ReLU 和 PReLU 的图像。我们将分别定义这三种激活函数,并在同一张图中展示它们的曲线,以便直观比力它们的特性。代码中还会添加解释,方便理解。

代码实现

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 定义激活函数
  4. def relu(x):
  5.     return np.maximum(0, x)
  6. def leaky_relu(x, alpha=0.01):
  7.     return np.where(x > 0, x, alpha * x)
  8. def prelu(x, alpha):
  9.     return np.where(x > 0, x, alpha * x)
  10. # 生成输入数据
  11. x = np.linspace(-5, 5, 1000)
  12. # 设置参数
  13. leaky_alpha = 0.1  # Leaky ReLU 的固定斜率
  14. prelu_alpha = 0.25  # PReLU 的示例斜率(假设为可训练参数的一个值)
  15. # 计算三种激活函数的输出
  16. y_relu = relu(x)
  17. y_leaky = leaky_relu(x, alpha=leaky_alpha)
  18. y_prelu = prelu(x, alpha=prelu_alpha)
  19. # 绘制图像
  20. plt.figure(figsize=(10, 6))
  21. # 绘制 ReLU
  22. plt.plot(x, y_relu, label='ReLU', color='blue', linewidth=2)
  23. # 绘制 Leaky ReLU
  24. plt.plot(x, y_leaky, label=f'Leaky ReLU (α={leaky_alpha})', color='green', linewidth=2)
  25. # 绘制 PReLU
  26. plt.plot(x, y_prelu, label=f'PReLU (α={prelu_alpha})', color='red', linewidth=2)
  27. # 添加标题和标签
  28. plt.title('ReLU vs Leaky ReLU vs PReLU', fontsize=14)
  29. plt.xlabel('x', fontsize=12)
  30. plt.ylabel('f(x)', fontsize=12)
  31. # 添加网格和图例
  32. plt.grid(True, linestyle='--', alpha=0.7)
  33. plt.legend(fontsize=12)
  34. # 设置坐标轴范围(可选)
  35. plt.ylim(-1.5, 5)
  36. plt.xlim(-5, 5)
  37. # 显示图像
  38. plt.show()
复制代码

代码分析


输出结果

运行代码后,你将看到一张包含三条曲线的图像:

Output


可视化洞见


扩展发起

如果你想进一步探索:

跋文

2025年3月24日14点14分于上海,在grok 3大模型辅助下完成。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4