常用激活函数

1. 常用激活函数

1.1 Sigmoid(S形函数)

公式:
f(x)=11+e−x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+ex1

  • 输出范围:(0,1)(0, 1)(0,1)
  • 应用场景:
    • 二分类问题(通常用于输出层)。
    • 概率值预测。
  • 优点:
    • 将值压缩到 (0,1)(0, 1)(0,1),适合概率输出。
  • 缺点:
    • 梯度消失问题:对于极大或极小的输入,梯度几乎为0,网络难以更新权重。
    • 不适合深层网络。

1.2 Tanh(双曲正切函数)

公式:
f(x)=tanh⁡(x)=ex−e−xex+e−x f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=tanh(x)=ex+exexex

  • 输出范围:(−1,1)(-1, 1)(1,1)
  • 应用场景:
    • 中间隐藏层。
  • 优点:
    • 相较于 Sigmoid,输出值范围中心化在 0 附近,更适合深度网络。
  • 缺点:
    • 同样存在梯度消失问题。

1.3 ReLU(Rectified Linear Unit,线性修正单元)

公式:
f(x)=max⁡(0,x) f(x) = \max(0, x) f(x)=max(0,x)

  • 输出范围:[0,∞)[0, \infty)[0,)
  • 应用场景:
    • 隐藏层的默认选择,尤其在卷积神经网络(CNN)中。
  • 优点:
    • 计算简单,收敛速度快。
    • 避免了梯度消失问题。
  • 缺点:
    • 死亡神经元问题:如果某些神经元的输入长期为负值,其梯度始终为0,可能导致这些神经元永远不再更新。

1.4 Leaky ReLU(带泄漏的ReLU)

公式:
f(x)={xif x>0αxif x≤0 f(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{if } x \leq 0 \end{cases} f(x)={xαxif x>0if x0

  • 输出范围:(−∞,∞)(-\infty, \infty)(,)
  • 应用场景:
    • 隐藏层。
  • 优点:
    • 缓解了 ReLU 的“死亡神经元”问题。
  • 缺点:
    • 可能导致过拟合,需要小心调整参数 α\alphaα

1.5 Softmax

公式:
f(xi)=exi∑jexj f(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} f(xi)=jexjexi

  • 输出范围:(0,1)(0, 1)(0,1),且所有输出加和为1。
  • 应用场景:
    • 多分类问题的输出层。
  • 优点:
    • 将输入值转化为概率分布,适合分类问题。
  • 缺点:
    • 对大输入值可能不稳定,需要归一化。

2. 其他激活函数

2.1 ELU(Exponential Linear Unit)

公式:
f(x)={xif x>0α(ex−1)if x≤0 f(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha (e^x - 1) & \text{if } x \leq 0 \end{cases} f(x)={xα(ex1)if x>0if x0

  • 输出范围:(−α,∞)(-\alpha, \infty)(α,)
  • 应用场景:
    • 隐藏层(特别是 ReLU 不适用的地方)。
  • 优点:
    • 保持负值的梯度,不会导致死亡神经元。
  • 缺点:
    • 计算量略大。

2.2 Swish

公式:
f(x)=x⋅σ(x) f(x) = x \cdot \sigma(x) f(x)=xσ(x)
其中 σ(x)\sigma(x)σ(x) 是 Sigmoid 函数。

  • 输出范围:(−∞,∞)(-\infty, \infty)(,)
  • 应用场景:
    • 深层网络(由 Google 提出,表现优于 ReLU 和 Sigmoid)。
  • 优点:
    • 平滑性较好,收敛速度快。
    • 在许多任务中优于 ReLU。
  • 缺点:
    • 计算稍复杂。

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

公式:
f(x)=x⋅Φ(x) f(x) = x \cdot \Phi(x) f(x)=xΦ(x)
其中 Φ(x)\Phi(x)Φ(x) 是标准正态分布的累积分布函数。

  • 输出范围:(−∞,∞)(-\infty, \infty)(,)
  • 应用场景:
    • Transformer 和 NLP 模型。
  • 优点:
    • 表现平滑,计算效率高。
    • 对小值保留小梯度,大值快速激活。

2.4 Maxout

公式:
f(x)=max⁡i=1kzi f(x) = \max_{i=1}^{k} z_i f(x)=i=1maxkzi

  • 输出范围:(−∞,∞)(-\infty, \infty)(,)
  • 应用场景:
    • 高级模型的隐藏层。
  • 优点:
    • 增加了模型的表达能力。
  • 缺点:
    • 参数较多,容易过拟合。

3. 如何选择激活函数?

  • 输出层
    • 二分类问题Sigmoid
    • 多分类问题Softmax
    • 回归问题:无激活函数(或线性激活)。
  • 隐藏层
    • 首选:ReLU 或其变种(Leaky ReLUELUGELU)。
    • 深层网络:尝试 SwishGELU
    • 特定场景:使用 TanhSigmoid(不推荐深度网络中使用)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值