Zubnet AI学习Wiki › Softmax
基础

Softmax

别名:Softmax函数、归一化指数
一种将原始数值向量(logits)转换为概率分布的函数——所有值变为正数且总和为1。Softmax放大值之间的差异:最大的输入获得最高概率,较小的输入获得指数级更小的概率。它出现在注意力机制、分类输出和token预测中。

为什么重要

Softmax在现代AI中无处不在。每当语言模型预测下一个token时,softmax将原始模型输出转换为概率。每个注意力头使用softmax计算注意力权重。每个分类器使用softmax生成类别概率。理解softmax有助于理解温度、top-p采样,以及为什么模型即使在错误时也“很有信心”。

深度解析

公式:softmax(x_i) = exp(x_i) / ∑ exp(x_j)。指数运算放大差异:如果一个logit是10,另一个是5,softmax后的比率不是2:1而是大约150:1。这种赢家通吃的行为是模型倾向于自信的原因——softmax自然产生尖峰分布而非均匀分布。

温度与Softmax

温度通过在softmax之前除以logits来应用:softmax(x_i / T)。温度T=1是标准值。T<1使分布更尖锐(更自信、更确定性)。T>1使其更平坦(更均匀、更随机)。这正是LLM API中“温度”参数的工作原理——它是在选择下一个token的最终softmax之前应用于logits的标量。

数值稳定性

一个实际的实现细节:对较大的x值计算exp(x)会导致溢出。标准修复方法是在应用softmax之前从所有logits中减去最大值:softmax(x_i - max(x))。这不会改变输出(减去的常数在比率中抵消),但使数值保持在可管理的范围内。每个生产级softmax实现都这样做,这是从零开始构建时很重要的细节。

相关概念

← 所有术语
← Sigmoid Stability AI →