返回 ELI5 知识库首页 ⚖️ PROBABILITY & ATTENTION CORE
⚖️ Activation Function · Probability Normalization

什么是 Softmax(概率归一化天平)?

神经网络算出的原始得分(Logits)就像各个选手杂乱无章的票数(如 10分、2分、-5分);而 Softmax 是一座神奇的概率天平 —— 通过指数放大($e^x$)将所有分数换算为 0%~100% 且加起来恰好等于 100% 的百分比概率

🔨 硬最大值 (Hardmax: 一刀切)

赢家通吃,微积分求导瞬间归零

只选得分最高的那一个直接定为 100%,其余全部判为 0%。这种一刀切在数学上不可导(导数为0),反向传播无法更新梯度,模型根本学不会!

猫 (3.2) 狗 (5.1) 鸟 (-1.0) 狗 = 100% ⚠️ 阶跃函数不可导,无法做反向求导训练
  • 缺乏柔软度(Non-smooth):无法体现第二名与第三名的微弱差距
  • 导数全为 0:梯度直接断流,深度神经网络无法自主学习
VS
⚖️ 软最大值 (Softmax: 平滑概率)

温柔平滑,全员有份且总和为 1

通过自然底数指数 $e^x$ 放大差距、消灭负数,再除以总和。处处平滑可导,大模型据此生成多姿多彩的下一个词语!

🐱 猫 13.2% 🐶 狗 86.6% 🐦 鸟 0.2% ✨ 13.2% + 86.6% + 0.2% = 100% (完美可导)
  • 处处连续可导:反向传播梯度畅通无阻
  • 支持 Temperature 调节:控制大模型回答是“严谨确定”还是“发散创意”
💡

一句话顿悟:为什么 Softmax 必须用 $e^x$(指数函数)?

神经网络算出来的原始得分有正有负(比如 $-3$ 分或 $+5$ 分)。 指数函数 $e^x$ 有两大神力:① 把任何负数都变成大于 0 的正数(因为概率不能是负的);② 拉大强弱差距,让微弱的高分产生极具统治力的概率优势!

拆解 Softmax 的 4 大核心数学法宝

从公式推导到大模型温度调节,读懂概率归一化的运行秘密

📈

1. $e^{z_i}$ 指数映射与非负化

输入值无论多么小、多么负(如 $-100$),经过 $e^x$ 变换后都会变成非负实数,确保概率具备现实物理意义。

2. 分母总和归一化 ($\sum e^{z_j}$)

将每个候选词的指数得分除以全词表所有得分的总和,使所有输出概率相加严格等于 1.0(100%)

🌡️

3. Temperature 温度旋钮 ($z / T$)

温度 $T \to 0$ 时概率极度尖锐(贪婪确定);温度 $T > 1$ 时概率分布被抹平(天马行空充满创意)。

🎯

4. Attention 注意力权重分配

Transformer 的核心 $\text{Attention} = \text{Softmax}(QK^T / \sqrt{d})V$。通过 Softmax 计算全篇单词对当前词的注意力权重。

🕹️ Softmax 动态概率与温度调节演练台

调整大模型的 Temperature(温度系数),观察各个候选词的生成概率如何动态变化:

🌡️ 温度选择:
"巴黎" (3.0)
70.0%
"伦敦" (2.0)
20.0%
"苹果" (0.5)
7.0%
"香蕉" (-1.0)
3.0%
🌡️ 当前采样行为分析
标准模式 (T = 0.7)
高分词“巴黎”获得主导概率,但低分词依然有微弱机会被选中,兼顾准确性与语言丰富度。
概率总和校验: 100.0% (精确归一)
💬 大模型吐字机制

下一个 Token 如何选出?

大模型经过数十层 Transformer 运算后,最后一层输出一个词表大小(如 128,000 维)的原始打分向量。

Softmax 将其转为 12.8 万个词的概率分布,随后根据 Top-p 或 Top-k 采样掷骰子吐出下一个字。

⚡ 算子工程优化

Safe Softmax 与溢出防范

在硬件中计算 $e^{z}$ 时,如果 $z=1000$,计算机浮点数会瞬间溢出为 Infinity

工程师采用 Safe Softmax:计算前先减去全组最大值 $e^{z_i - \max(z)}$,数学等价且彻底杜绝数值溢出!

🌐 损失函数黄金搭档

Softmax + CrossEntropy

分类模型训练时,Softmax 与交叉熵损失函数(Cross Entropy Loss)结合,能推导出极其优美简洁的梯度公式 $\hat{y} - y$。

这种天作之合使得反向求导计算极快,支撑了几乎所有现代分类与自回归生成模型的训练。