Tanh激活函数详解 | AI生成和翻译

Home 2026.06

问题

解释 tanh(双曲正切)作为激活函数——它在神经网络中的作用、为何对 RNN/LSTM 重要,以及它与 ReLU 等现代替代方案的比较。

答案

Tanh 是一种零中心的 sigmoid 变体,在 ReLU 取代它之前曾是默认的隐藏层激活函数。 以下是真正重要的内容:

核心洞察:为何零中心重要

Sigmoid 输出 $(0, 1)$,因此反向传播期间所有梯度都是正数。如果输入神经元大多在 0.5 以上激活,权重更新总是朝一个方向移动——收敛过程呈现锯齿状

Tanh 输出 $(-1, 1)$,均值为 0。这意味着权重可以朝任意方向更新,因此收敛更平滑、更快速。这就是它的优势。

关键的数学公式

\[\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}\]

导数: \(\frac{d}{dx}\tanh(x) = 1 - \tanh^2(x)\)

这很优雅——你只需利用前向传播的值就能计算导数(一次减法)。相比之下,sigmoid 的 $\sigma(x)(1-\sigma(x))$ 需要两次乘法运算。

在 $x=0$ 处:tanh 梯度为 1,sigmoid 梯度为 0.25。在训练初期,tanh 的信号传播效果是 sigmoid 的 4 倍。

为何在 LSTM/GRU 中仍然必不可少

现代架构不在隐藏层中使用 tanh(ReLU 在速度和稀疏性上胜出)。但 LSTM 在细胞状态更新中仍使用 tanh:

# LSTM cell update
C_t = f_t * C_{t-1} + i_t * tanh(W_c * [h_{t-1}, x_t] + b_c)

原因如下:

  1. 输出范围 $(-1, 1)$ 限制了细胞状态——防止长序列中发生爆炸性增长
  2. 奇对称性($\tanh(-x) = -\tanh(x)$)使门控逻辑对称——遗忘门和输入门可以自然协同
  3. 无死神经元——与 ReLU 不同,每个值都能获得非零梯度

ReLU 无法做到这点。如果在细胞状态更新中使用 ReLU,没有精细的层归一化/缩放,值会爆炸。Tanh 提供了自然的饱和

真正的权衡

前馈/CNN 中的 ReLU:
  ✅ 快速(单次比较)
  ✅ 稀疏激活(50% 的神经元关闭)
  ✅ 正值区域无梯度消失
  ❌ 死神经元(负输入永远为 0)

RNN 门控中的 Tanh:
  ✅ 有界输出 (-1, 1) —— 自然饱和
  ✅ 无死神经元
  ✅ 零中心
  ❌ 较慢(需计算指数)
  ❌ 在极端值 (|x| > 3) 处梯度消失

极端值处的梯度消失对 LSTM 来说不是问题,因为门控控制着你是否会进入那些区域。细胞状态不会饱和——它会流动。

现代背景

在基于 Transformer 的模型(GPT、Claude、DeepSeek)中,tanh 基本已被淘汰。我们使用:

但如果你在 CPU 上训练一个小型 Transformer 并需要理解其工作原理:注意力机制本身就在学习自己的门控逻辑(通过点积),因此对 bounded 激活的需求消失了。

总结: Tanh = 零中心的 sigmoid,用于更快的收敛。在 RNN 中不可替代,因为其有界输出对门控机制至关重要。在现代 Transformer 中则是冗余,因为注意力机制更好地处理了门控。


Back Donate