Logit 是一种函数,将满足 的概率 转换为其优势的自然对数:
它将开区间 映射到全体实数,其反函数是标准的逻辑斯蒂函数。这一变换是逻辑回归的核心。(docs.scipy.org)
定义与解释
概率为 的事件,其**优势**为 ,即事件发生的概率除以事件不发生的概率。对优势取自然对数,就能将这一正值转换为取值不受限制的实数量。优势与概率是不同的量;例如,概率为 时,对应的优势为 ,也可写作 ,而 logit 值为 。(online.stat.psu.edu)
一些具有代表性的数值如下:
| 概率 | 优势 | Logit 值 |
|---|---|---|
因此,logit 值为负表示概率小于二分之一,logit 值为正则表示概率大于二分之一。这些数值可直接由定义得出。(docs.scipy.org)
作为实值函数,logit 在 和 处没有定义,但其极限为
数值实现可能会在这两个端点返回相应的无穷大值。(docs.scipy.org)
反函数与数学性质
由 解出 ,可得其反函数:
这个函数也称为逻辑斯蒂 sigmoid 函数或 expit。Logit 将概率转换为对数优势,而 sigmoid 则将对数优势转换回概率。(docs.scipy.org)
Logit 的导数为
因此,它是严格递增的。在接近任一端点时,导数都会无限增大,所以概率在接近零或一时的微小变化,可能对应对数优势的较大变化。(statsmodels.org)
通过对定义进行代数运算,还可得到两个性质:
以及
第一个性质体现了交换事件与其补事件时的对称性。第二个性质表明,两个 logit 值之差等于优势比的对数。(docs.scipy.org)
逻辑回归
二元逻辑回归通过下式对结果 的条件概率建模:
等式右侧是线性预测子。对其应用 logit 的反函数后,只要预测子取值有限,得到的拟合概率就严格位于零与一之间。该模型的线性关系体现在对数优势上,而非概率上。(online.stat.psu.edu)
在这个加性模型中,保持其他预测变量不变,将 增加一个单位,会使对数优势变化 ,从而使优势乘以 。这并不意味着概率的变化量恒定:概率的变化量取决于线性预测子的初始值。(online.stat.psu.edu)
机器学习中的 logits
在机器学习中,尤其是在人工神经网络中,logits 也指转换为概率之前的实值分数。在二元分类中,将分数 输入 sigmoid 函数后,有
因此,当对应的概率是 sigmoid 的输出时,这种用法与数学定义完全一致。(tensorflow.org)
对于互斥的多个类别,这个术语的含义更为宽泛。分数 通常称为 logits,并通过Softmax函数转换为概率:
分数 通常并不等于二元 logit 值 。通过代数消去可得
给所有分数加上同一个常数,不会改变任何类别的概率。当只有两个类别时,差值 等于 。(docs.pytorch.org)
损失计算与数值稳定性
对于二元目标 和预测概率 ,二元交叉熵损失函数可直接用 logit 表示:
一个等价且数值稳定的形式为
这一形式避免了对很大的正数进行指数运算。(tensorflow.org)
直接由 logits 计算损失,还能避免分别计算 sigmoid 概率及其对数时出现的某些数值稳定性问题。为此,PyTorch 等库提供了将 sigmoid 与交叉熵计算合并的运算。(docs.pytorch.org)
参考来源
- scipy.special.logit — SciPy Manualdocs.scipy.org
- statsmodels.genmod.families.links.Logit.derivstatsmodels.org
- CrossEntropyLoss — PyTorch documentationdocs.pytorch.org
- tf.nn.sigmoid_cross_entropy_with_logits — TensorFlowtensorflow.org
- BCEWithLogitsLoss — PyTorch documentationdocs.pytorch.org