1. 问题
在做深度学习的过程中,经常会碰到logit。这个和在学校学的概率有出入,因而想弄明白这到底是个什么参数。
2. 使用logit的原因
定义几率(odds)和 logit 函数的主要原因在于使用了线性空间转换,使得非线性的概率关系问题变成线性化。
- 将非线性的概率关系线性化,使得线性回归模型可以处理分类问题;
- 几率作为概率的一种解释方式,能提供直观的物理意义;
- Logit 函数的逆函数(sigmoid)确保了预测的概率值在 0 到 1 之间;
- 利于采用最大化似然估计方法来进行参数估计和模型优化。
3. 详细解释
通过这个定义,逻辑回归能够以一种线性方式处理分类问题,从而实现对概率的合理预测。
定义几率(odds)和logit函数的原因,是为了将二分类问题中的概率关系转化为一种线性的表示,使得回归模型能够处理概率预测。这种定义背后有几层考虑:
3.1. 解决非线性问题
在二分类问题中,概率 ( p ) 的值介于 0 到 1 之间,这本质上是非线性的。直接用线性回归模型预测概率会导致一些问题,因为线性模型可能会产生不在 ( [0, 1] ) 范围内的值。而使用对数几率的定义(log odds)可以将概率映射到整个实数范围(从
−
∞
-\infty
−∞ 到
+
∞
+\infty
+∞),这使得预测更加合理且线性化。
例如:
- 当事件发生的概率 ( p ) 接近 0 时,logit ln ( p 1 − p ) \ln\left(\frac{p}{1 - p}\right) ln(1−pp) 的值接近 − ∞ -\infty −∞;
- 当事件发生的概率 ( p ) 接近 1 时,logit 的值接近 + ∞ +\infty +∞。
通过这个映射,logit 函数能够将 ( p ) 的非线性变化线性化,适应回归模型的需求。
3.2. 可解释性
几率(odds)作为概率的一种替代表示,其物理含义非常直观。几率表示事件发生的相对可能性,比如:
- 如果某事件发生的概率 ( p = 0.75 ),那么几率 ( \frac{p}{1-p} = 3 ),意味着事件发生的可能性是其不发生的 3 倍。
- 如果 ( p = 0.5 ),几率为 1,表示事件发生与不发生的可能性相等。
通过对几率取对数(logit),我们能够将这类相对关系进一步转换为实数范围,且通过线性变化表达分类问题的复杂性。
3.3. 线性模型的适应性
逻辑回归中用 logit 函数的一个重要原因是:线性模型不能直接拟合非线性概率。假设我们有一个简单的线性模型:
y = β 0 + β 1 x 1 + ⋯ + β n x n y = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n y=β0+β1x1+⋯+βnxn
如果直接将 ( y ) 作为概率 ( p ),可能会出现模型预测出负的概率值,或者超过 1 的概率值,这显然是不合理的。因此,logit 函数通过这种对数变换,使得线性模型能够更合理地预测分类问题中的概率。
具体来说,逻辑回归模型是将预测变量通过线性回归来预测 logit:
ln ( p 1 − p ) = β 0 + β 1 x 1 + ⋯ + β n x n \ln\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n ln(1−pp)=β0+β1x1+⋯+βnxn
通过这种方式,logit 保证了预测的概率 ( p ) 始终在 0 和 1 之间。
3.4. Logit 的逆变换(Sigmoid 函数)
Logit 函数的逆变换是 sigmoid 函数,也称为 Logistic 函数:
p = 1 1 + e − ( β 0 + β 1 x 1 + ⋯ + β n x n ) p = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + \dots + \beta_n x_n)}} p=1+e−(β0+β1x1+⋯+βnxn)1
这使得最终得到的概率始终处于 0 到 1 之间,从而解决了线性回归无法处理的非线性问题。
补充材料: 4. 最大化似然估计
在逻辑回归中,我们通常采用最大化似然估计(Maximum Likelihood Estimation, MLE)来优化模型参数。logit 函数的定义使得用最大似然方法推导损失函数时更为方便,也保证了损失函数是凸函数,从而更容易进行优化求解。
4.1. 最大似然估计(MLE)的基本思想
最大似然估计的核心思想是:我们希望找到一组模型参数,使得观测数据在当前模型下的出现概率最大化。换句话说,我们希望估计出一组参数,能够最可能地解释数据。
对于逻辑回归,假设输入特征为 ( X ),输出为 ( y ),我们希望找到一组参数 β 0 , β 1 , . . . , β n \beta_0, \beta_1, ..., \beta_n β0,β1,...,βn 来预测 ( y ) 的概率 p(y|X) 。逻辑回归模型预测的是事件发生的概率 ( p ) 和不发生的概率 ( 1 - p ):
p ( y = 1 ∣ X ) = 1 1 + e − ( β 0 + β 1 x 1 + . . . + β n x n ) p(y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + ... + \beta_n x_n)}} p(y=1∣X)=1+e−(β0+β1x1+...+βnxn)1
这是通过逻辑回归模型的 sigmoid 函数(Logistic 函数)来得到的概率值。
4.2. 似然函数(Likelihood Function)
假设我们有一组训练数据 ( X 1 , y 1 ) , ( X 2 , y 2 ) , . . . , ( X n , y n ) (X_1, y_1), (X_2, y_2), ..., (X_n, y_n) (X1,y1),(X2,y2),...,(Xn,yn),每个样本 ( i ) 的输入是 X i X_i Xi,输出标签 y i y_i yi。我们可以构造似然函数,即模型参数使得整个数据集 ( X ) 产生的可能性:
L ( β ∣ X ) = ∏ i = 1 n p ( y i ∣ X i ) L(\beta|X) = \prod_{i=1}^{n} p(y_i|X_i) L(β∣X)=i=1∏np(yi∣Xi)
对于二分类问题,如果 y i = 1 y_i = 1 yi=1,那么 p ( y i ∣ X i ) p(y_i|X_i) p(yi∣Xi) 就是模型输出的概率 p;如果 y i = 0 y_i = 0 yi=0,则 p ( y i ∣ X i ) p(y_i|X_i) p(yi∣Xi) 是 1 − p 1 - p 1−p。
因此,似然函数可以写成:
L ( β ∣ X ) = ∏ i = 1 n p i y i ( 1 − p i ) ( 1 − y i ) L(\beta|X) = \prod_{i=1}^{n} p_i^{y_i} (1 - p_i)^{(1 - y_i)} L(β∣X)=i=1∏npiyi(1−pi)(1−yi)
其中, p i = 1 1 + e − ( β 0 + β 1 x 1 + . . . + β n x n ) p_i = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + ... + \beta_n x_n)}} pi=1+e−(β0+β1x1+...+βnxn)1 是样本 i 的预测概率。
5.3. 取对数似然函数(Log-Likelihood)
为了方便计算,我们通常取似然函数的对数,称为对数似然函数(log-likelihood function):
log L ( β ∣ X ) = ∑ i = 1 n [ y i log p i + ( 1 − y i ) log ( 1 − p i ) ] \log L(\beta|X) = \sum_{i=1}^{n} [y_i \log p_i + (1 - y_i) \log (1 - p_i)] logL(β∣X)=i=1∑n[yilogpi+(1−yi)log(1−pi)]
这是因为对数运算可以将乘积转化为求和,使得计算更简单。这个对数似然函数是逻辑回归的目标函数,最大化这个对数似然函数相当于找到最优的参数 ( \beta ),使得模型最可能地解释数据。
5.4. 损失函数的推导
最大化对数似然函数等价于最小化负对数似然函数,因此我们可以定义损失函数为:
Loss ( β ) = − log L ( β ∣ X ) = − ∑ i = 1 n [ y i log p i + ( 1 − y i ) log ( 1 − p i ) ] \text{Loss}(\beta) = - \log L(\beta|X) = - \sum_{i=1}^{n} [y_i \log p_i + (1 - y_i) \log (1 - p_i)] Loss(β)=−logL(β∣X)=−i=1∑n[yilogpi+(1−yi)log(1−pi)]
这个负对数似然函数就是逻辑回归的交叉熵损失函数(cross-entropy loss)。它衡量的是模型预测的概率分布与真实分布之间的差异。
5.5. logit 函数的作用
logit 函数 logit ( p ) = ln ( p 1 − p ) \text{logit}(p) = \ln\left(\frac{p}{1-p}\right) logit(p)=ln(1−pp)在推导过程中起到了重要的作用,它将非线性的概率 ( p ) 转换成了可以用线性模型表示的 log odds。具体地:
- 我们通过线性回归模型来预测 logit 值 β 0 + β 1 x 1 + . . . + β n x n \beta_0 + \beta_1 x_1 + ... + \beta_n x_n β0+β1x1+...+βnxn,而这个 logit 值再通过 sigmoid 函数转化为概率。
- 这种转化让我们能够在线性空间内处理分类问题,同时最大化似然估计来优化模型参数。
5.6. 优化过程
通过最小化负对数似然函数(或等价地最大化对数似然函数),我们可以通过梯度下降等优化算法来找到最优的模型参数。
5.7 小结
logit 函数的定义(即对几率取对数)是为了将二分类问题中的非线性概率变换为线性形式,使得逻辑回归可以利用线性回归模型预测事件发生的概率。这个线性化的过程使得我们可以使用最大似然估计法推导出损失函数,即交叉熵损失。通过最小化这个损失函数,我们能够优化逻辑回归模型的参数,从而更好地拟合数据。