激活函数介绍

激活函数(Activation Function)是神经网络中非常重要的组成部分,它决定了神经元的输出,并引入了非线性,使得神经网络能够学习复杂的模式。以下是一些常见的激活函数及其特点:


1. 线性激活函数(Linear Activation Function)

  • 公式

    f(x)=xf(x)=x

  • 特点

    • 输出与输入成正比,没有非线性变换。
    • 适用于回归问题,但在深层网络中会导致网络退化为单层网络(因为多层线性变换仍然是线性的)。
  • 使用场景

    • 输出层(如回归任务)。

2. Sigmoid(Logistic 激活函数)

  • 公式

    f(x)=11+e−xf(x)=1+ex1

  • 特点

    • 输出范围在 (0, 1),适合概率输出。
    • 容易导致梯度消失(当输入较大或较小时,梯度接近 0)。
  • 使用场景

    • 二分类问题的输出层(如逻辑回归)。
    • 现在较少用于隐藏层(因为 ReLU 更好)。

3. Tanh(双曲正切函数)

  • 公式

    f(x)=ex−e−xex+e−xf(x)=e**x+exexex

  • 特点

    • 输出范围在 (-1, 1),比 Sigmoid 更对称。
    • 仍然存在梯度消失问题(但比 Sigmoid 稍好)。
  • 使用场景

    • 隐藏层(比 Sigmoid 更常用)。

4. ReLU(Rectified Linear Unit,整流线性单元)

  • 公式

    f(x)=max⁡(0,x)f(x)=max(0,x)

  • 特点

    • 计算简单,训练速度快(梯度在正区间恒为 1)。
    • 存在Dead ReLU 问题(某些神经元可能永远不激活)。
  • 使用场景

    • 隐藏层的默认选择(目前最流行的激活函数)。

5. Leaky ReLU(带泄漏的 ReLU)

  • 公式

    f(x)={xif x≥0αxif x<0f(x)={x**αxif x≥0if x<0

    (通常 α=0.01α=0.01)

  • 特点

    • 解决了 Dead ReLU 问题(负区间有小的斜率)。
    • 训练更稳定,但计算量稍大。
  • 使用场景

    • 适用于 ReLU 可能失效的情况(如某些初始化导致 Dead ReLU)。

6. Parametric ReLU(PReLU,参数化 ReLU)

  • 公式

    f(x)={xif x≥0αxif x<0f(x)={x**αxif x≥0if x<0

    (αα 是可学习的参数)

  • 特点

    • 比 Leaky ReLU 更灵活(αα 由网络学习)。
  • 使用场景

    • 适用于需要自适应负斜率的任务。

7. ELU(Exponential Linear Unit,指数线性单元)

  • 公式

    f(x)={xif x≥0α(ex−1)if x<0f(x)={x**α(e**x−1)if x≥0if x<0

    (通常 α=1α=1)

  • 特点

    • 在负区间平滑,减少 Dead ReLU 问题。
    • 计算比 ReLU 稍慢(涉及指数运算)。
  • 使用场景

    • 适用于需要更稳定训练的任务。

8. Swish(Google 提出的激活函数)

  • 公式

    f(x)=x⋅σ(βx)f(x)=xσ(β**x)

    (σσ 是 Sigmoid 函数,ββ 是可调参数)

  • 特点

    • 比 ReLU 更平滑,训练效果更好(在某些任务上)。
    • 计算量稍大(涉及 Sigmoid)。
  • 使用场景

    • 适用于深层网络(如 Transformer 中的部分结构)。

9. Softmax(多分类输出层激活函数)

  • 公式

    f(xi)=exi∑j=1Kexjf(x**i)=∑j=1Kexjexi

  • 特点

    • 输出概率分布(所有输出之和为 1)。
    • 适用于多分类问题。
  • 使用场景

    • 多分类任务的输出层。

10. GELU(Gaussian Error Linear Unit,高斯误差线性单元)

  • 公式

    f(x)=x⋅Φ(x)f(x)=x⋅Φ(x)

    (Φ(x)Φ(x) 是标准正态分布的累积分布函数)

  • 特点

    • 类似 ReLU,但更平滑(在 BERT、GPT 等模型中使用)。
  • 使用场景

    • 适用于自然语言处理(NLP)任务。

总结

激活函数 特点 适用场景
Sigmoid 输出 (0,1),梯度消失 二分类输出层
Tanh 输出 (-1,1),比 Sigmoid 对称 隐藏层
ReLU 计算快,Dead ReLU 问题 隐藏层(默认选择)
Leaky ReLU 解决 Dead ReLU 隐藏层(替代 ReLU)
Swish 平滑,训练效果好 深层网络
Softmax 输出概率分布 多分类输出层
GELU 平滑,适合 NLP Transformer 模型

如何选择激活函数?

  1. 隐藏层
    • 默认选择 ReLU(计算快、效果好)。
    • 如果 ReLU 导致 Dead ReLU,尝试 Leaky ReLUELU
    • 在 Transformer 等模型中,GELUSwish 可能更好。
  2. 输出层
    • 二分类:Sigmoid
    • 多分类:Softmax
    • 回归任务:Linear(无激活函数)或 Tanh(限制输出范围)。

激活函数的选择会影响模型的训练速度和性能,通常需要通过实验调整。

你可能感兴趣的:(人工智能)