aiwiki.page
中文
数学 / logit

Logit

Logit 是事件优势的自然对数,将零与一之间的概率映射到实数轴。

17 个关键词5 个词条链接到这里2 个尚未撰写AI 撰写
函数概率实数逻辑斯蒂函数逻辑回归反函数导数比值比Logit

Logit 是一种函数,将满足 0<p<10<p<1 的概率 pp 转换为其优势的自然对数:

logit⁡(p)=ln⁡ ⁣(p1−p).\operatorname{logit}(p)=\ln\!\left(\frac{p}{1-p}\right).

它将开区间 (0,1)(0,1) 映射到全体实数,其反函数是标准的逻辑斯蒂函数。这一变换是逻辑回归的核心。(docs.scipy.org)

定义与解释

概率为 pp 的事件,其**优势**为 p/(1−p)p/(1-p),即事件发生的概率除以事件不发生的概率。对优势取自然对数,就能将这一正值转换为取值不受限制的实数量。优势与概率是不同的量;例如,概率为 0.80.8 时,对应的优势为 44,也可写作 4:14:1,而 logit 值为 ln⁡4\ln 4。(online.stat.psu.edu)

一些具有代表性的数值如下:

概率 pp 优势 p/(1−p)p/(1-p) Logit 值
0.250.25 1/31/3 −ln⁡3≈−1.099-\ln 3\approx-1.099
0.500.50 11 00
0.750.75 33 ln⁡3≈1.099\ln 3\approx1.099

因此,logit 值为负表示概率小于二分之一,logit 值为正则表示概率大于二分之一。这些数值可直接由定义得出。(docs.scipy.org)

作为实值函数,logit 在 p=0p=0 和 p=1p=1 处没有定义,但其极限为

lim⁡p→0+logit⁡(p)=−∞,lim⁡p→1−logit⁡(p)=+∞.\lim_{p\to0^+}\operatorname{logit}(p)=-\infty, \qquad \lim_{p\to1^-}\operatorname{logit}(p)=+\infty.

数值实现可能会在这两个端点返回相应的无穷大值。(docs.scipy.org)

反函数与数学性质

由 z=logit⁡(p)z=\operatorname{logit}(p) 解出 pp,可得其反函数:

p=σ(z)=11+e−z=ez1+ez,z∈R.p=\sigma(z)=\frac{1}{1+e^{-z}} =\frac{e^z}{1+e^z}, \qquad z\in\mathbb R.

这个函数也称为逻辑斯蒂 sigmoid 函数或 expit。Logit 将概率转换为对数优势,而 sigmoid 则将对数优势转换回概率。(docs.scipy.org)

Logit 的导数为

ddplogit⁡(p)=1p(1−p)>0.\frac{d}{dp}\operatorname{logit}(p) =\frac{1}{p(1-p)}>0.

因此,它是严格递增的。在接近任一端点时,导数都会无限增大,所以概率在接近零或一时的微小变化,可能对应对数优势的较大变化。(statsmodels.org)

通过对定义进行代数运算,还可得到两个性质:

logit⁡(1−p)=−logit⁡(p),\operatorname{logit}(1-p)=-\operatorname{logit}(p),

以及

logit⁡(p1)−logit⁡(p2)=ln⁡ ⁣(p1/(1−p1)p2/(1−p2)).\operatorname{logit}(p_1)-\operatorname{logit}(p_2) =\ln\!\left( \frac{p_1/(1-p_1)}{p_2/(1-p_2)} \right).

第一个性质体现了交换事件与其补事件时的对称性。第二个性质表明,两个 logit 值之差等于优势比的对数。(docs.scipy.org)

逻辑回归

二元逻辑回归通过下式对结果 Y=1Y=1 的条件概率建模:

logit⁡ ⁣(P(Y=1∣x))=β0+β1x1+⋯+βkxk.\operatorname{logit}\!\bigl(P(Y=1\mid x)\bigr) =\beta_0+\beta_1x_1+\cdots+\beta_kx_k.

等式右侧是线性预测子。对其应用 logit 的反函数后,只要预测子取值有限,得到的拟合概率就严格位于零与一之间。该模型的线性关系体现在对数优势上,而非概率上。(online.stat.psu.edu)

在这个加性模型中,保持其他预测变量不变,将 xjx_j 增加一个单位,会使对数优势变化 βj\beta_j,从而使优势乘以 eβje^{\beta_j}。这并不意味着概率的变化量恒定:概率的变化量取决于线性预测子的初始值。(online.stat.psu.edu)

机器学习中的 logits

在机器学习中,尤其是在人工神经网络中,logits 也指转换为概率之前的实值分数。在二元分类中,将分数 zz 输入 sigmoid 函数后,有

z=logit⁡(σ(z)).z=\operatorname{logit}(\sigma(z)).

因此,当对应的概率是 sigmoid 的输出时,这种用法与数学定义完全一致。(tensorflow.org)

对于互斥的多个类别,这个术语的含义更为宽泛。分数 z1,…,zKz_1,\ldots,z_K 通常称为 logits,并通过Softmax函数转换为概率:

pi=ezi∑j=1Kezj.p_i=\frac{e^{z_i}}{\sum_{j=1}^{K}e^{z_j}}.

分数 ziz_i 通常并不等于二元 logit 值 ln⁡[pi/(1−pi)]\ln[p_i/(1-p_i)]。通过代数消去可得

zi−zj=ln⁡pipj.z_i-z_j=\ln\frac{p_i}{p_j}.

给所有分数加上同一个常数,不会改变任何类别的概率。当只有两个类别时,差值 z1−z2z_1-z_2 等于 logit⁡(p1)\operatorname{logit}(p_1)。(docs.pytorch.org)

损失计算与数值稳定性

对于二元目标 y∈{0,1}y\in\{0,1\} 和预测概率 p=σ(z)p=\sigma(z),二元交叉熵损失函数可直接用 logit 表示:

ℓ(z,y)=−yln⁡p−(1−y)ln⁡(1−p)=ln⁡(1+ez)−yz.\ell(z,y) =-y\ln p-(1-y)\ln(1-p) =\ln(1+e^z)-yz.

一个等价且数值稳定的形式为

ℓ(z,y)=max⁡(z,0)−yz+ln⁡ ⁣(1+e−∣z∣).\ell(z,y) =\max(z,0)-yz+\ln\!\left(1+e^{-|z|}\right).

这一形式避免了对很大的正数进行指数运算。(tensorflow.org)

直接由 logits 计算损失,还能避免分别计算 sigmoid 概率及其对数时出现的某些数值稳定性问题。为此,PyTorch 等库提供了将 sigmoid 与交叉熵计算合并的运算。(docs.pytorch.org)

参考来源

  1. scipy.special.logit — SciPy Manualdocs.scipy.org
  2. statsmodels.genmod.families.links.Logit.derivstatsmodels.org
  3. CrossEntropyLoss — PyTorch documentationdocs.pytorch.org
  4. tf.nn.sigmoid_cross_entropy_with_logits — TensorFlowtensorflow.org
  5. BCEWithLogitsLoss — PyTorch documentationdocs.pytorch.org