Ch06 神经网络基础

Softmax 函数

一句话理解

Softmax 把任意实数向量变成概率分布——每个元素变成 (0,1) 之间的数,且所有元素之和为 1。它是神经网络从”打分”到”决策”的桥梁。

零基础理解

考试五道题,每道题你有一个”把握分”:[-2, 0.5, 3, 1, -1]。Softmax 把这些分数变成”你会选这道题的概率”:分数越高的题概率越大,但不会出现负概率或超过 100%。最后你按概率随机选一道题——这就是 LLM 生成下一个 token 的机制。

数学定义

给定向量 ,Softmax 定义为:

计算示例

输入 :

步骤值 1值 2值 3
2.01.00.1
7.3892.7181.105
总和11.212
Softmax0.6590.2420.099

结果:[0.659, 0.242, 0.099],总和 = 1.0。

核心性质

性质说明重要性
输出为概率每个元素 ,总和 = 1核心功能
保序性输入越大,输出越大不会改变相对顺序
平移不变性所有输入加同一个常数,输出不变数值稳定性技巧
可微处处可导,适合反向传播训练必需
指数放大指数函数放大差异,让”赢家”更突出接近 argmax 但可微

平移不变性的重要性

实际实现中,通常减去 防止指数溢出:

温度参数 (Temperature)

Softmax 加温度参数 (Temperature):

温度对概率分布的影响

温度 效果分布形态应用场景
趋近 one-hot,最大值的概率接近 1极度尖锐确定性推理(greedy)
标准 Softmax原始分布训练阶段
分布更均匀,差异缩小更平滑知识蒸馏(Teacher软化标签)
趋近均匀分布完全平坦完全随机

温度在 LLM 中的应用

低温度 (τ=0.1):确定性输出,适合代码生成、数学计算
中等温度 (τ=0.7):平衡创造性和准确性,日常对话
高温度 (τ=1.5):高创造性,适合头脑风暴、创意写作

Softmax vs Sigmoid

维度SoftmaxSigmoid
输入向量标量
输出概率分布(和为1)单个概率(0到1)
分类类型多分类(互斥)二分类(独立)
数学关系Sigmoid 是 2 类 Softmax 的特例
典型应用LLM 输出层、注意力权重二分类输出、门控机制

关键区别:多分类任务中类别互斥,必须用 Softmax。多标签任务中每个标签独立,用多个 Sigmoid。

LogSoftmax

优势说明
数值稳定性避免 Softmax 的除法,直接用减法
与 NLL Loss 配合LogSoftmax + NLLLoss = CrossEntropyLoss
梯度更简洁导数形式更简单

PyTorch 中 CrossEntropyLoss 内部已包含 LogSoftmax,不需要手动加 Softmax。

Softmax 在注意力机制中的角色

自注意力机制的核心公式:

Softmax 在这里的作用:

步骤操作Softmax 的角色
1. 计算分数得到每个 token 对每个 token 的相关性分数
2. 缩放防止点积过大导致 Softmax 梯度消失
3. Softmax 归一化将分数变成注意力权重(概率分布)
4. 加权求和用权重聚合 Value

为什么需要 :当 很大时,点积的方差增长为 。Softmax 在输入值很大时梯度趋近于 0(输出接近 one-hot),缩放因子将方差控制为 1。

相关笔记

来源

关联9

知识图谱

局部图谱 · 点节点跳转