TensorFlow 的激活函数有哪些?

推荐答案

TensorFlow 提供了多种激活函数,常用的激活函数包括:

  • tf.nn.relu:ReLU(Rectified Linear Unit)激活函数
  • tf.nn.sigmoid:Sigmoid 激活函数
  • tf.nn.tanh:Tanh 激活函数
  • tf.nn.softmax:Softmax 激活函数
  • tf.nn.leaky_relu:Leaky ReLU 激活函数
  • tf.nn.elu:ELU(Exponential Linear Unit)激活函数
  • tf.nn.selu:SELU(Scaled Exponential Linear Unit)激活函数
  • tf.nn.swish:Swish 激活函数

本题详细解读

1. ReLU(Rectified Linear Unit)

ReLU 是最常用的激活函数之一,公式为 f(x) = max(0, x)。它的优点是计算简单且能够有效缓解梯度消失问题,但在负数区域输出为0,可能导致神经元“死亡”。

2. Sigmoid

Sigmoid 激活函数的公式为 f(x) = 1 / (1 + exp(-x))。它将输入映射到 (0, 1) 区间,常用于二分类问题的输出层。缺点是容易导致梯度消失问题。

3. Tanh

Tanh 激活函数的公式为 f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))。它将输入映射到 (-1, 1) 区间,相比 Sigmoid,它的输出以0为中心,梯度消失问题相对较轻。

4. Softmax

Softmax 激活函数的公式为 f(x_i) = exp(x_i) / sum(exp(x_j))。它通常用于多分类问题的输出层,将输入转换为概率分布。

5. Leaky ReLU

Leaky ReLU 是 ReLU 的改进版本,公式为 f(x) = max(αx, x),其中 α 是一个小的正数。它解决了 ReLU 在负数区域输出为0的问题,避免了神经元“死亡”。

6. ELU(Exponential Linear Unit)

ELU 激活函数的公式为 f(x) = x if x > 0 else α(exp(x) - 1)。它在负数区域有非零输出,能够缓解梯度消失问题,并且在某些情况下表现优于 ReLU。

7. SELU(Scaled Exponential Linear Unit)

SELU 是 ELU 的改进版本,公式为 f(x) = λx if x > 0 else λα(exp(x) - 1)。它具有自归一化的特性,能够在深层网络中保持较好的性能。

8. Swish

Swish 激活函数的公式为 f(x) = x * sigmoid(x)。它是 Google 提出的一种新型激活函数,在某些任务上表现优于 ReLU。

这些激活函数在不同的场景下有不同的应用,选择合适的激活函数可以显著提升模型的性能。

纠错
反馈