深度学习2-激活函数

在神经网络中,激活函数(Activation Function)是至关重要的组件。它们决定了一个神经元是否应该被激活,进而决定了模型的输出。激活函数将输入信号进行非线性变换,使得神经网络能够学习和表示复杂的非线性关系。下面是一些常见的激活函数及其特点:

1. Sigmoid 函数

Sigmoid 函数是一种 S 形曲线,将输入映射到 (0, 1) 之间。

  • 函数形式
    Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x) = \frac{1}{1 + e^{-x}} Sigmoid(x)=1+ex1

  • 特点

    • 输出范围在 (0, 1) 之间,可以解释为概率。
    • 适合用于二分类问题的输出层。
    • 容易导致梯度消失问题,尤其是在深层网络中,因为当输入非常大或非常小时,梯度趋近于零。
  • 应用场景

    • 早期的神经网络。
    • 二分类问题的输出层。

2. Tanh 函数

Tanh(双曲正切)函数是一个 S 形曲线,类似于 Sigmoid,但输出范围在 (-1, 1) 之间。

  • 函数形式
    Tanh ( x ) = e x − e − x e x + e − x \text{Tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} Tanh(x)=ex+exexex

  • 特点

    • 输出范围在 (-1, 1) 之间。
    • 比 Sigmoid 函数的梯度消失问题略少,但仍可能在深层网络中出现梯度消失。
    • 零中心化输出有助于加速收敛。
  • 应用场景

    • 通常用于隐藏层的激活函数。

3. ReLU 函数

ReLU(Rectified Linear Unit,修正线性单元)是目前最常用的激活函数之一。

  • 函数形式
    ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)

  • 特点

    • 简单且计算高效,只需取输入的最大值。
    • 不存在上限输出,因此在正区域不会饱和,减少了梯度消失问题。
    • 当输入小于零时,输出为零,可能导致“神经元死亡”(Dead Neurons)问题,尤其是在训练过程中某些神经元可能永远不会激活。
  • 应用场景

    • 常用于深度学习模型的隐藏层。

4. Leaky ReLU 函数

Leaky ReLU 是 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αxif x>0if x0
    其中, α \alpha α 是一个小常数(通常为 0.01)。

  • 特点

    • 在负区域中仍有很小的斜率,使得负输入也有梯度传播。
    • 减少了神经元死亡的问题。
  • 应用场景

    • 可以作为 ReLU 的替代品,用于深层神经网络。

5. ELU 函数

ELU(Exponential Linear Unit)进一步改进了 ReLU 和 Leaky ReLU,旨在消除负区域的影响。

  • 函数形式
    ELU ( x ) = { x if  x > 0 α ( e x − 1 ) if  x ≤ 0 \text{ELU}(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha (e^x - 1) & \text{if } x \leq 0 \end{cases} ELU(x)={xα(ex1)if x>0if x0

  • 特点

    • 负区域呈指数衰减,而不是线性。
    • 零中心化输出,加快学习收敛。
    • 保留了 ReLU 的优点,并在负区域提供更好的梯度流动。
  • 应用场景

    • 需要比 Leaky ReLU 更强的负值处理能力的场景。

6. Swish 函数

Swish 是一种由 Google 提出的激活函数,通常比 ReLU 表现更好。

  • 函数形式
    Swish ( x ) = x ⋅ Sigmoid ( x ) \text{Swish}(x) = x \cdot \text{Sigmoid}(x) Swish(x)=xSigmoid(x)

  • 特点

    • 非线性激活函数,具有平滑和非单调特性。
    • 在许多任务中表现优于 ReLU。
  • 应用场景

    • 现代深度学习模型中,尤其是需要更复杂的激活函数的任务。

7. Softmax 函数

Softmax 函数将一组输入值转换为概率分布,是分类任务中常用的激活函数。

  • 函数形式
    Softmax ( x i ) = e x i ∑ j = 1 n e x j \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{n} e^{x_j}} Softmax(xi)=j=1nexjexi

  • 特点

    • 将多分类任务的输出层结果归一化为概率分布。
    • 输出的每个值都在 (0, 1) 之间,并且所有输出值的和为 1。
  • 应用场景

    • 多分类问题的输出层。

激活函数的选择

  • ReLU:大多数情况下的首选激活函数,适用于深度神经网络的隐藏层。
  • Leaky ReLU / ELU / Swish:当 ReLU 的“神经元死亡”问题显著时,可以选择这些改进的版本。
  • Sigmoid / Tanh:多用于二分类任务的输出层或浅层网络,现代深度网络中较少使用。
  • Softmax:专门用于多分类问题的输出层。

总结

激活函数在神经网络中扮演着至关重要的角色,不同的激活函数适用于不同类型的任务。选择合适的激活函数,可以大大提高模型的性能和训练效率。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值