基础← 返回知识库
Softmax
将任意实数向量转换为概率分布的函数,输出值在(0,1)之间且总和为1。在Transformer中用于将注意力分数归一化为权重分布。
核心公式
📖 符号说明
| 符号 | 含义 |
|---|---|
| 输入向量的第i个元素 | |
| 自然常数(≈2.718) | |
| 向量维度 |
Softmax
直觉理解
Softmax 做的事情很简单:把一组任意大小的数字变成一个概率分布——所有值变成 0 到 1 之间的正数,并且加起来等于 1。
你可以把它想象成一个"竞争性归一化":分数越高的选项获得越大的概率份额,但不会完全把其他选项归零(soft 的含义)。
公式定义
softmax(zi)=∑j=1nezjezi步骤拆解:
- 对每个值取指数 ezi → 确保全为正数
- 除以所有指数的总和 → 归一化到 [0, 1],且总和为 1
动手试试
拖动滑块改变输入值,观察 softmax 输出的概率分布如何变化。重点试试温度参数——它就是 Transformer 中 ÷dk 的作用:
Softmax 概率分布可视化
在 Transformer 中的作用
Self-Attention 计算 Q·K^T 得到的是原始注意力分数(任意实数),需要 softmax 把它转成概率分布:
Attention(Q,K,V)=softmax(dkQKT)Vsoftmax 后的结果就是"每个 token 分配给其他 token 的关注度权重"——加起来为 1,符合"有限注意力"的直觉。
温度参数
除以 dk 的作用类似于"温度"控制:
- 值越大(高温)→ 分布越平均(注意力分散)
- 值越小(低温)→ 分布越尖锐(注意力集中在少数 token 上)
如果不做缩放,大维度下点积值会很大,softmax 输出接近 one-hot(只关注一个 token),梯度消失,训练困难。
Softmax vs Hardmax
- Hardmax:只有最大值为 1,其余全为 0(赢者通吃)
- Softmax:最大值获得最高概率,但其他值也有份额(软竞争)
Softmax 的"软"特性使得梯度能够流过所有位置,是可微分、可训练的关键。
引用本概念的文章