Logit, Logistic, Sigmoid, Softmax在MLP的区别
Logit在数学和机器学习的常用定义不一样但想法是类似的。Logit和Logistic(Sigmoid的一种函数)也很容易搞混。Softmax和Sigmoid除了单纯的多维输出推广也有其他的影响。
Sigmoid和Softmax的区别,优缺点,细节,和定义可以参考:激活函数和损失函数。
Logit在数学上的定义是Logistic函数的反函数:
\[\sigma(x)=\frac1{1+e^{-x}}, \text{logit}(p)=\sigma^{-1}(p)=\ln(\frac{p}{1-p})\]
可以看到因为需要保证\(\frac{p}{1-p}>0\),所以\(p\in (0,1)\)。
这里Logit可以解释成logarithm of the odds \(\frac{p}{1-p}, p\in (0,1)\)。
Sigmoid代之所有S形的函数,其中包括Logistic,Tanh,等。机器学习中常用的还是Logistic,因为其梯度表达足够简单,当然相比ReLU\(=\max(0,x)\)还是稍微复杂了点。
而Softmax是Sigmoid的推广,输出是向量是一个概率分布(每个维度都基于所有输入,而Sigmoid的输入输出彼此互不干扰)。
从信息论的角度可以看到Logit很深刻的含义:(Gemini 2.5 Pro生成)
从信息论的角度来看,Logit 函数的数学意义主要体现在以下三个层面:
- Logit 是“证据的累积尺度” (Scale of Additive Evidence)
- Logit 是“惊讶度的差异” (Difference in Surprisal)
- Logit 是“最大熵模型”的自然结果 (Natural result of MaxEnt Models)
1. Logit 作为“证据的累积尺度”(对数似然比)
在信息论和贝叶斯统计中,信息的核心功能是更新我们的信念(belief)。Logit 函数提供了一个完美的尺度来实现这一点。
我们知道贝叶斯定理的“比率形式” (Odds form):
\[\frac{P(H|D)}{P(\neg H|D)} = \frac{P(D|H)}{P(D|\neg H)} \times \frac{P(H)}{P(\neg H)}\]
这个公式可以被解读为:
\[\text{Posterior Odds} = \text{Likelihood Ratio} \times \text{Prior Odds}\]
- Odds (比率):\(O = \frac{p}{1-p}\),其中 \(p\) 是信念的概率。
- Logit (对数比率):\(\log(O) = \log\left(\frac{p}{1-p}\right)\)。
如果我们对上面整个公式取对数:
\[\log(\text{Posterior Odds}) = \log(\text{Likelihood Ratio}) + \log(\text{Prior Odds})\]
换成 Logit 的写法就是:
\[\text{logit}(p_{\text{post}}) = \log(LR) + \text{logit}(p_{\text{prior}})\]
信息论意义:
- \(\log(LR)\) 这一项,即对数似然比 (Log-Likelihood Ratio),在信息论中被认为是数据 \(D\) 为我们提供的、用于区分 \(H\) 和 \(\neg H\) 的“信息量”或“证据权重”(Weight of Evidence)。
- 概率 \(p\) 本身是很难直接累加的(例如,0.5 的概率加上 0.3 的概率没有意义)。
- 但是,Logit 函数将概率 \(p\) 转换到了一个“对数比率空间”,在这个空间里,信息(证据)是可以直接相加的。
结论:Logit 的数学意义是提供了一个证据的线性累积尺度。你每获得一条新证据(\(\log(LR)\)),就可以在 Logit 空间里做一次加法,来更新你的信念。这就是为什么它在逻辑回归(Logistic Regression)中如此基础,\(\text{logit}(p) = \beta_0 + \sum \beta_i x_i\) 的本质就是在 Logit 空间里,将所有特征 \(x_i\) 提供的证据(\(\beta_i x_i\))线性叠加起来。
2. Logit 作为“惊讶度的差异” (Difference in Surprisal)
信息论的奠基人香农(Shannon)定义了一个事件 \(x\) 的“自信息”(Self-Information),也常被称为“惊讶度”(Surprisal):
\[I(x) = -\log(P(x))\]
一个事件发生的概率 \(P(x)\) 越低,它发生时带给我们的信息量(惊讶度)就越大。
现在我们来看 Logit 函数:
\[\text{logit}(p) = \log\left(\frac{p}{1-p}\right) = \log(p) - \log(1-p)\]
我们可以重新排列这个公式:
\[\text{logit}(p) = [-\log(1-p)] - [-\log(p)]\]
假设我们有一个二元事件:
- 事件 A:“成功”,概率为 \(p\)
- 事件 B:“失败”,概率为 \(1-p\)
那么它们的惊讶度分别是:
- \(I(\text{成功}) = -\log(p)\)
- \(I(\text{失败}) = -\log(1-p)\)
代入 Logit 的定义:
\[\text{logit}(p) = I(\text{失败}) - I(\text{成功})\]
信息论意义:
Logit(p) 的值,等于“失败”这一事件的惊讶度减去“成功”这一事件的惊讶度。
- 当 \(p = 0.5\) 时:\(\text{logit}(0.5) = 0\)。这意味着 \(I(\text{失败}) = I(\text{成功})\)。成功和失败的惊讶度相同,我们处于最大的不确定性中(这对应着最大熵)。
- 当 \(p = 0.9\) (成功概率高) 时:\(\text{logit}(0.9) \approx 2.2\) (为正数)。这意味着 \(I(\text{失败}) > I(\text{成功})\)。因为成功是大概率事件,所以它发生时我们“不惊讶”;而失败是小概率事件,它发生时我们“非常惊讶”。Logit 是一个正数,代表“失败”比“成功”更令人惊讶。
- 当 \(p = 0.1\) (成功概率低) 时:\(\text{logit}(0.1) \approx -2.2\) (为负数)。这意味着 \(I(\text{失败}) < I(\text{成功})\)。此时,“成功”是小概率事件,它的发生比“失败”的发生更令人惊讶。
结论:Logit 衡量的是二元结果中,两种相对事件的“信息不对称性”。
3. Logit 作为“最大熵模型”的自然结果
在信息论中,最大熵原理 (Principle of Maximum Entropy) 指出:当我们在构建一个概率模型时,我们应该选择在满足所有已知约束(例如,观测到的均值)的前提下,熵(不确定性)最大的那个模型。
这等同于“不要做任何不必要的假设”。
假设我们有一个二元分类问题(\(y \in \{0, 1\}\)),并且我们有一些特征 \(x\)。我们希望模型 \(\pi(x) = P(y=1|x)\) 能够匹配我们从数据中观测到的特征期望值。
根据最大熵原理推导(这涉及到拉格朗日乘子法和指数簇分布的知识),能够满足这些约束并且熵最大的那个概率分布必然具有以下形式:
\[\pi(x) = P(y=1|x) = \frac{\exp(\theta_0 + \sum \theta_i x_i)}{1 + \exp(\theta_0 + \sum \theta_i x_i)}\]
这正是 Logistic Sigmoid 函数!
现在,我们来看看这个最大熵模型的 Logit 是什么。
\[P(y=0|x) = 1 - \pi(x) = \frac{1}{1 + \exp(\theta_0 + \sum \theta_i x_i)}\]
计算 \(\text{logit}(\pi(x))\):
\[\text{logit}(\pi(x)) = \log\left(\frac{\pi(x)}{1-\pi(x)}\right) = \log\left(\frac{\frac{\exp(\theta_0 + \sum \theta_i x_i)}{1 + \dots}}{\frac{1}{1 + \dots}}\right)\]
\[\text{logit}(\pi(x)) = \log(\exp(\theta_0 + \sum \theta_i x_i)) = \theta_0 + \sum \theta_i x_i\]
信息论意义:
Logit 函数并不是我们为了方便计算而“发明”的,它是在信息论的最大熵原理这个基本公理下,自然推导出来的结果。
结论:Logit 函数是连接“最大熵模型”的概率 \(\pi(x)\) 和“约束条件”(即特征的线性组合)之间的自然桥梁(Canonical Link Function)。
总结
Logit 函数 \(\log\left(\frac{p}{1-p}\right)\) 在数学上的意义,从信息论角度看,是将概率 \(p \in (0, 1)\) 转换到了一个具有特定物理含义的标尺(\(\mathbb{R}\))上。在这个标尺上:
- 信息是可加的:它是一个“证据”空间,新的证据(对数似然比)可以直接累加上去。
- 信息的不对称性被量化了:它直接衡量了“失败”和“成功”两个对立事件的惊讶度之差。
- 它符合最大熵原理:它是构建最“诚实”、最不武断的概率模型时自然出现的数学结构。
不过在机器学习中,Logit一般指Sigmoid层的输入层,也就是其最基本的意义:Logit是Logistic / Sigmoid 函数的“反函数”。
Softmax的输入层也用Logits来代指,由于分类任务使用的CE损失函数需要输入基于一个概率分布,Softmax目前被广泛用于分类神经网络最后一层的激活函数,所以Logits的实际意义比Logit多很多:(Gemini 2.5 Pro生成)
Logits \(\mathbf{z}\) 对于 Softmax 的意义,比它对 Sigmoid 的意义更丰富。它不仅是“反函数”的输入,更重要的是,它定义了一个“对数概率比” (Log-Odds) 空间。
1. 核心意义:Logits 的差异 = 对数概率比
这是理解 Logits for Softmax 的最关键的数学意义。
我们先看 Softmax 函数的定义,它将 Logits 向量 \(\mathbf{z}\) 转换为概率向量 \(\mathbf{p}\):
\[p_i = \text{Softmax}(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}}\]
其中 \(p_i\) 是模型预测第 \(i\) 个类别的概率。
现在,让我们任选两个类别 \(i\) 和 \(j\),看看它们最终概率 \(p_i\) 和 \(p_j\) 的比率 (Odds) 是多少:
\[\frac{p_i}{p_j} = \frac{\frac{e^{z_i}}{\sum e^k}}{\frac{e^{z_j}}{\sum e^k}}\]
分母 \(\sum e^k\) (归一化项)被消掉了:
\[\frac{p_i}{p_j} = \frac{e^{z_i}}{e^{z_j}} = e^{z_i - z_j}\]
对这个等式两边取自然对数 (log):
\[\log\left(\frac{p_i}{p_j}\right) = z_i - z_j\]
这就是 Logits 在 Softmax 中的核心数学意义:
任意两个类别的 Logit 值之差 (\(z_i - z_j\)),直接等于这两个类别最终概率的对数比 (Log-Odds)。
举例说明:
假设一个三分类(猫、狗、鸟)模型的 Logits 向量 \(\mathbf{z}\) 是:
- \(z_{\text{猫}} = 5.0\)
- \(z_{\text{狗}} = 3.0\)
- \(z_{\text{鸟}} = 0.0\)
我们不需要计算 Softmax 就能立即知道:
猫 vs 狗: \(\log\left(\frac{p_{\text{猫}}}{p_{\text{狗}}}\right) = z_{\text{猫}} - z_{\text{狗}} = 5.0 - 3.0 = 2.0\)。
这意味着 \(p_{\text{猫}} / p_{\text{狗}} = e^2 \approx 7.39\)。模型认为“猫”的概率是“狗”的 7.39 倍。
猫 vs 鸟: \(\log\left(\frac{p_{\text{猫}}}{p_{\text{鸟}}}\right) = z_{\text{猫}} - z_{\text{鸟}} = 5.0 - 0.0 = 5.0\)。
这意味着 \(p_{\text{猫}} / p_{\text{鸟}} = e^5 \approx 148.4\)。模型认为“猫”的概率是“鸟”的 148.4 倍。
机器学习意义:
这个特性意味着,模型的线性层(\(W \cdot x + b\))的任务不是直接去拟合一个 \((0, 1)\) 之间的复杂概率,而是去学习一个线性的 “Logits 空间”。在这个空间里,模型只需要让“正确”类别的 \(z_i\) 值比“错误”类别的 \(z_j\) 值高出一个差值 \(k\),它就能保证 \(p_i\) 比 \(p_j\) 大 \(e^k\) 倍。这极大地简化了模型的学习任务。
2. 引申意义 (1):Logits 是“未归一化的对数概率”
我们可以从另一个角度看 Softmax。我们重写 \(\log\left(\frac{p_i}{p_j}\right) = z_i - z_j\):
\[\log(p_i) - \log(p_j) = z_i - z_j\]
\[\log(p_i) - z_i = \log(p_j) - z_j\]
这个等式告诉我们,对于所有类别 \(k\),\(\log(p_k) - z_k\) 的值都是一个常数。我们把这个常数记为 \(C\)。
\[\log(p_i) - z_i = C \implies \log(p_i) = z_i + C\]
这个常数 \(C\) 是什么?
我们知道 \(\sum p_j = 1\),所以 \(\sum e^{z_j + C} = 1 \implies e^C \sum e^{z_j} = 1 \implies e^C = \frac{1}{\sum e^{z_j}}\)。
所以 \(C = -\log(\sum e^{z_j})\)。(这个 \(\log(\sum e^{z_j})\) 在数学上被称为 LogSumExp 函数,是 Softmax 的归一化因子)。
机器学习意义:
\(\log(p_i) = z_i - \log(\sum e^{z_j})\)
这个公式说明,\(z_i\) (Logit)就是 \(p_i\) 的对数概率 \(\log(p_i)\),只不过它“未被归一化” (它只是和 \(\log(p_i)\) 差了一个全局的常数)。
这就是为什么 Softmax 函数(以及对应的交叉熵损失)经常被称赞为在操作“对数概率”(Log-Probs)。因为它的输入 Logits \(\mathbf{z}\) 本质上就是“未归一化的对数概率”。
3. 引申意义 (2):Logits 具有“平移不变性”
从 \(\log(\frac{p_i}{p_j}) = z_i - z_j\) 我们可以推导出一个在工程上极其重要的特性。
如果我们给所有的 Logits \(z_k\) 都加上一个相同的常数 \(C\):
- 新的 Logits 向量:\(\mathbf{z}' = [z_1+C, z_2+C, ..., z_K+C]\)
- 新的概率 \(p_i'\) 是:
\[p_i' = \frac{e^{z_i+C}}{\sum_{j=1}^K e^{z_j+C}} = \frac{e^{z_i} \cdot e^C}{\sum (e^{z_j} \cdot e^C)} = \frac{e^C \cdot e^{z_i}}{e^C \cdot (\sum e^{z_j})} = \frac{e^{z_i}}{\sum e^{z_j}} = p_i\]
机器学习意义:
Softmax 的输出概率完全不受 Logits 向量的“整体平移”的影响。
- \(\mathbf{z} = [1, 2, 3]\)
- \(\mathbf{z} = [101, 102, 103]\)
这两个 Logits 向量会产生完全相同的 Softmax 概率输出。
这再次印证了核心意义:Logits 的绝对大小不重要,它们之间的“差异”才是一切。
这个特性在工程上被广泛用于数值稳定性(Numerical Stability)。当 \(z_i\) 很大时(例如 1000),\(e^{1000}\) 会导致计算机溢出(Infinity)。为了防止溢出,我们会在计算 Softmax 之前,将所有 \(z_i\) 减去它们之中的最大值 \(\max(\mathbf{z})\):
\[z_i' = z_i - \max(\mathbf{z})\]
这保证了最大的 Logit 变为 0,所有 \(e^{z_i'}\) 都不会溢出,而最终的 \(p_i\) 结果保持不变。
总结
Logits \(\mathbf{z}\) 在 Softmax 语境中的意义是:
- 数学上:它是一个向量,其元素间的差异 \(z_i - z_j\) 直接定义了最终概率间的对数比率 \(\log(p_i / p_j)\)。
- 概念上:它代表了模型对每个类别的“未归一化的对数概率”。
- 工程上:它具有平移不变性,只关心差异,不关心绝对值,这使得模型训练(使用 \(W \cdot x + b\) 产生 \(\mathbf{z}\))和数值计算(减去最大值)都变得高效和稳定。

1.压缩感知和稀疏编码
2.降维
3.深度学习是如何统治所有机器学习的学习类型的
4.机器学习的学习规则
5.线性回归和逻辑回归的区别
6.模型验证与评估
7.激活函数和损失函数
8.非线性卷积滤波