● 专题 · Deep Dive

Logit 函数:从概率回到分数

"logit" 这个名字不是凭空起的。了解一下它在统计学里的原始含义,以及为什么神经网络也用这个词。

名字的由来:统计学中的 logit function

在神经网络火起来之前,logit 是统计学里的术语,定义为 概率 p对数几率

logit(p)=logp1p\mathrm{logit}(p) = \log \frac{p}{1-p}

它把 [0, 1] 区间的概率映射到 (,+)(-\infty, +\infty) 的实数轴上:

  • p = 0.5logit = 0(中立)
  • p = 0.9logit ≈ 2.2(倾向"是")
  • p = 0.1logit ≈ -2.2(倾向"否")

这就是逻辑回归中"链接函数"的角色—— 把无界的线性预测值和有界的概率联系起来。

神经网络里的 logit

到了神经网络时代,logit 这个名字被借用来指代"分类层最后一步、还没过 softmax 的原始输出"。 它和统计学的 logit 不完全是同一个东西,但精神相通:

  • 都是未归一化的实数(可正可负)
  • 都可以通过一个函数(softmax 或 sigmoid)映射回概率
  • 二者通过 softmax 形成的概率分布,差异由 logit 之间的相对大小决定(绝对值不重要)

为什么模型不直接输出概率?

三个工程原因:

  • 训练稳定:logit 是无界实数,神经网络做加减乘除天然友好;概率被夹在 [0,1],更容易梯度消失
  • 损失函数耦合交叉熵损失通常和 softmax 合并成一个数值稳定的算子,直接吃 logit 比拆开两步更快、更稳
  • 采样灵活:保留 logit 才能后期用 temperature、top-ktop-p 等技巧调控分布形状; 如果模型直接吐概率,这些就做不了

验证一下:logit ↔ 概率 的双向变换

🔒 登录后可在浏览器里直接运行 Python 代码(基于 Pyodide)。