推荐答案
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。
这些激活函数在不同的场景下有不同的应用,选择合适的激活函数可以显著提升模型的性能。