Q1: Transformer 中的 Softmax 的作用是归一化吗?
A: Softmax 并非仅仅“归一化”。它的主要功能是把注意力得分(查询 Q 与键 K 的点积)转换为一个概率分布,从而得到注意力权重。具体步骤:
- 计算注意力得分:
score = Q·Kᵀ / √d_k(除以 √d_k 为尺度因子)。 - 对每一行(对应一个查询向量)使用 Softmax:
α_i = softmax(score_i)。Softmax 将该行所有得分映射到 (0, 1) 区间,并使它们的和为 1。 - 归一化后的权重
α_i与值向量 V 相乘,得到加权求和的注意力输出。
因此,Softmax 的核心是把原始相似度得分转化为可解释的概率权重,实现归一化并提供完整的概率分布,这对注意力机制的学习与推理至关重要。
Q2: 归一化的通俗理解是什么?
A: 归一化即把一组得分(或原始数值)转换成概率,使每个概率值位于 0 到 1 之间,并且所有概率的和恰好等于 1。这样处理后,得分可以解释为“在所有可能选项中占多大比例”,便于后续基于概率的加权或采样操作。
Q3: Sigmoid 函数有什么作用?
A: Sigmoid(σ)函数定义为 σ(x) = 1 / (1 + e^{-x}),其主要作用包括:
- 映射到 (0, 1) 区间:输出可直接解释为概率或激活程度,常用于二分类任务的输出层。
- 平滑且可微:在整个定义域上都有导数,便于梯度下降等基于梯度的优化方法进行训练。
- 提供非线性变换:在神经网络隐藏层加入非线性,使网络能够学习更复杂的特征。
- 在门控机制中的应用:虽然 Transformer 主要使用 Softmax 计算注意力权重,但在一些改进模型或 LSTM、GRU 等循环网络中,Sigmoid 用于控制信息流的开闭(如门控单元)。
Q4: Sigmoid 和 Softmax 的联系与区别是什么?
A:
相同点
- 都是单调递增的 S 形函数,输出位于 0 与 1 之间。
- 都是可微的,梯度可用于反向传播。
- 都可以把原始得分转化为概率形式,便于后续加权或决策。
区别
| 维度 | Sigmoid | Softmax | ||
|---|---|---|---|---|
| 作用范围 | 对每个标量独立计算,σ(x)=1/(1+e^{-x})。 |
对一组向量(通常是一行或一列)整体计算,softmax(z_i)=e^{z_i}/∑_j e^{z_j}。 |
||
| 归一化方式 | 只保证单个输出在 (0,1);多个 Sigmoid 输出的和不一定为 1。 | 所有输出之和必然等于 1,形成完整的概率分布。 | ||
| 使用场景 | 二分类任务的输出层、门控机制(LSTM、GRU、某些 Transformer 改进)。 | 多分类任务的输出层、Transformer 中的注意力权重计算。 | ||
| 梯度特性 | 在极端值( | x | 很大)时梯度趋近于 0,易出现梯度消失。 | 梯度受整个向量分布影响,配合交叉熵损失时更稳定。 |
| 计算成本 | 只需一次指数运算。 | 需要对整个向量求指数并归一化,计算量随向量长度线性增长。 |
总结:Sigmoid 是对单个数值的“概率化”,适合二分类或门控;Softmax 是对一组数值的“归一化”,生成完整的概率分布,适合多分类或注意力权重分配。两者在数学上都涉及指数函数,但作用范围和归一化方式决定了它们在模型中的不同角色。
结束语
通过上述问答,清晰地了解 Softmax 与 Sigmoid 在 Transformer 与其他神经网络中的功能、原理以及何时该使用哪一种激活/归一化函数