激活函数

介绍

激活函数就是神经网络里用来引入非线性的函数,没有它,再深的网络也只是线性模型。下面用很短的篇幅帮你理一遍常用激活函数和怎么选。

应用场景

在神经元里,先做线性计算:

z = Wx + b

再通过激活函数:

a = \sigma(z)

作用

  • 引入非线性,让网络能拟合复杂函数
  • 把值压缩到合适范围(有的会,有的不会)
  • 影响梯度流动,从而影响训练是否容易

常见激活函数

1. Sigmoid

  • 输出:(0, 1)
  • 用途:二分类的输出层
  • 问题:容易梯度消失,输出不是零均值

2. Tanh

  • 输出:(-1, 1)
  • 用途:隐藏层,比 sigmoid 常用
  • 特点:零均值,但仍有梯度消失问题

3. ReLU

  • 输出:[0, ∞)
  • 用途:现在最常用的隐藏层激活函数
  • 优点:计算快,缓解梯度消失
  • 缺点:部分神经元可能永远不激活(dying ReLU)

4. Leaky ReLU

  • 输出:(-∞, ∞)
  • 用途:解决 ReLU 死掉的问题
  • 特点:一般比 ReLU 更稳,但 α 是超参数

5. Softmax

  • 输出:(0, 1),且和为 1
  • 用途:多分类的输出层
  • 特点:配合交叉熵损失使用

应用场景

  • 二分类输出层:用 Sigmoid
  • 多分类输出层:用 Softmax
  • 隐藏层(默认):用 ReLU
  • 训练不稳定、ReLU 死掉:试试 Leaky ReLU
  • RNN 等序列模型:常用 Tanh 或 ReLU

原文出处:/show_1GW2eL49vPk4.html