跳到主要内容

逻辑回归:线性分类与梯度推导

逻辑回归:线性分类器​

逻辑回归(Logistic Regression)本质上是一个线性模型:输入经过线性加权求和,再通过 Sigmoid 函数映射为概率,最后使用对数损失(Log Loss)进行训练。你可以把它看作单个逻辑神经元。

注意区分:它不是经典感知机(Perceptron)。感知机使用硬阈值判定和不同的更新规则,而逻辑回归输出的是连续概率值。

数学形式​

给定输入 x1,…,xnx_1,\ldots,x_n、权重 w1,…,wnw_1,\ldots,w_n 和偏置 bb,线性得分 zz 为:

z=∑i=1nwixi+bz = \sum_{i=1}^{n} w_i x_i + b

这是输入与权重的线性组合,加上偏置项以处理整体偏移。为了将 zz 转换为 0 到 1 之间的概率,我们使用 Sigmoid 函数 σ(z)\sigma(z) 作为激活函数:

σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}

该函数将任意实数映射到 (0,1)(0, 1) 区间,天然适合二元分类任务。

Sigmoid 函数​

Sigmoid 函数

Sigmoid 函数 σ(z)\sigma(z) 在机器学习中至关重要,特别是在逻辑回归和神经网络中。它的核心能力是将任意实数压缩到 (0,1)(0, 1) 区间,从而用于概率建模。

定义​

σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}

其中 z∈Rz \in \mathbb{R}。

关键性质​

  • 定义域与值域:定义域为全体实数 R\mathbb{R},值域为开区间 (0,1)(0, 1)。
  • 渐近线:存在两条水平渐近线 y=0y = 0 和 y=1y = 1。当 z→−∞z \to -\infty 时,σ(z)→0\sigma(z) \to 0;当 z→∞z \to \infty 时,σ(z)→1\sigma(z) \to 1。
  • 对称性:满足恒等式 σ(−z)=1−σ(z)\sigma(-z)=1-\sigma(z)。这意味着图像关于点 (0,12)(0,\tfrac12) 中心对称,而非关于原点对称。
  • 极值行为:zz 取较大正值时,输出趋近 1;取较大负值时,输出趋近 0。

Sigmoid 的导数​

Sigmoid 的导数在优化算法中非常关键,因为它形式简洁,计算效率高。

推导过程​

设 σ′(z)\sigma'(z) 为 σ(z)\sigma(z) 对 zz 的导数:

  1. 从定义出发:σ(z)=(1+e−z)−1\sigma(z) = (1 + e^{-z})^{-1}。
  2. 应用链式法则:
σ′(z)=ddz(1+e−z)−1=−(1+e−z)−2⋅(−e−z)\sigma'(z) = \frac{d}{dz}\left(1 + e^{-z}\right)^{-1} = -(1 + e^{-z})^{-2} \cdot \left(-e^{-z}\right)
  1. 化简得:
σ′(z)=e−z(1+e−z)2\sigma'(z) = \frac{e^{-z}}{(1 + e^{-z})^2}
  1. 分子分母同乘 eze^z 或进行代数变形(分子加 1 减 1):
σ′(z)=11+e−z(1−11+e−z)\sigma'(z) = \frac{1}{1 + e^{-z}} \left(1 - \frac{1}{1 + e^{-z}}\right)
  1. 识别出括号内的项分别为 σ(z)\sigma(z) 和 1−σ(z)1 - \sigma(z),得到最终简洁形式:
σ′(z)=σ(z)(1−σ(z))\sigma'(z) = \sigma(z)(1 - \sigma(z))

逻辑回归的梯度下降​

梯度下降的目标是最小化预测概率与真实标签之间的误差。对于分类任务,我们使用对数损失(Log Loss):

L(y,y^)=−[ylog⁡(y^)+(1−y)log⁡(1−y^)]L(y, \hat{y}) = -[y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})]

其中 yy 是真实标签(0 或 1),y^\hat{y} 是模型输出的预测概率。只有当设定了决策阈值(如 0.5)后,概率才会被转换为具体的类别标签。

优化的目标是调整参数 ww 和 bb,使损失 LL 最小化。为此,我们需要计算 LL 对参数的偏导数。这涉及两步:先求 LL 对 y^\hat{y} 的导数,再求 y^\hat{y} 对参数的导数。

链式法则应用​

根据链式法则,梯度计算如下:

  • ∂L∂wi=∂L∂y^⋅∂y^∂wi\frac{\partial L}{\partial w_i} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial w_i}
  • ∂L∂b=∂L∂y^⋅∂y^∂b\frac{\partial L}{\partial b} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial b}

其中 ∂L∂y^\frac{\partial L}{\partial \hat{y}} 是公共项,决定了梯度的基本方向。

导数计算详解​

1. LL 对 y^\hat{y} 的导数​

对对数损失函数求导:

∂L∂y^=−yy^+1−y1−y^\frac{\partial L}{\partial \hat{y}} = -\frac{y}{\hat{y}} + \frac{1 - y}{1 - \hat{y}}

这一项反映了损失函数如何随预测概率 y^\hat{y} 的变化而变化。

2. y^\hat{y} 对 ww 和 bb 的导数​

预测概率 y^=σ(z)\hat{y} = \sigma(z),其中 z=∑wixi+bz = \sum w_i x_i + b。利用 Sigmoid 的导数性质 σ′(z)=y^(1−y^)\sigma'(z) = \hat{y}(1-\hat{y}):

  • ∂y^∂wi=y^(1−y^)⋅∂z∂wi=y^(1−y^)xi\frac{\partial \hat{y}}{\partial w_i} = \hat{y}(1 - \hat{y}) \cdot \frac{\partial z}{\partial w_i} = \hat{y}(1 - \hat{y})x_i
  • ∂y^∂b=y^(1−y^)⋅∂z∂b=y^(1−y^)\frac{\partial \hat{y}}{\partial b} = \hat{y}(1 - \hat{y}) \cdot \frac{\partial z}{\partial b} = \hat{y}(1 - \hat{y})

3. 最终梯度表达式​

将上述两部分相乘并化简,得到最终的梯度公式:

  • ∂L∂wi=−(y−y^)xi\frac{\partial L}{\partial w_i} = -(y - \hat{y})x_i
  • ∂L∂b=−(y−y^)\frac{\partial L}{\partial b} = -(y - \hat{y})

这两个公式非常直观:梯度方向由预测误差 (y−y^)(y - \hat{y}) 决定,权重更新还乘以了对应的输入特征 xix_i。

梯度下降更新规则​

设学习率为 α\alpha,参数更新规则如下:

  • wi:=wi−α∂L∂wiw_i := w_i - \alpha \frac{\partial L}{\partial w_i}
  • b:=b−α∂L∂bb := b - \alpha \frac{\partial L}{\partial b}

合适的步长能使这些更新降低损失;参数能否收敛到有限值还取决于数据,下文的可分情形就是反例。

总结​

逻辑回归由三部分组成:线性得分、Sigmoid 概率映射和对数损失。其梯度推导过程展示了链式法则如何简化计算,最终得到形式简洁的更新公式。保持逻辑回归与经典感知机的概念区分,有助于避免混淆这两种相关但机制不同的算法。

一次更新,以及最优解不存在的情况​

取 x=(2,−1)x=(2,-1)、y=1y=1,初始 (w1,w2,b)=(0,0,0)(w_1,w_2,b)=(0,0,0),则得分 z=0z=0,概率为 1/21/2,梯度为 (−1,1/2,−1/2)(-1,1/2,-1/2)。用 α=0.1\alpha=0.1 同时更新全部参数,得到 (0.1,−0.05,0.05)(0.1,-0.05,0.05);此时 z=0.3z=0.3、y^≈0.574443\hat y\approx0.574443,损失从 log⁡2≈0.693147\log2\approx0.693147 降至 0.5543550.554355。

多个样本时,先在当前参数处分别平均 (y^i−yi)xij(\hat y_i-y_i)x_{ij} 和 (y^i−yi)(\hat y_i-y_i),再更新。记 pi=y^ip_i=\hat y_i,并让 x~i\tilde x_i 包含截距对应的坐标,损失 Hessian 为

H=1N∑ipi(1−pi)x~ix~iT⪰0.H=\frac1N\sum_i p_i(1-p_i)\tilde x_i\tilde x_i^T\succeq0.

因此,固定特征下的逻辑回归损失关于参数是凸的。但凸性不保证有限最小点存在:数据严格线性可分时,放大一个能正确分隔数据的得分,会使每个真实类别的概率趋近一、损失趋近零,同时权重不断增大。对所有参数加入二次惩罚,可使目标严格凸,且参数范数趋于无穷时目标也趋于无穷;实际使用时必须说明是否惩罚截距。损失变化很小可能只是权重继续增长,并不表示已经收敛到有限最优参数。

阈值为 0.50.5 时,z≥0z\ge0 就预测类别 11;边界在输入特征空间中是线性的。若决策成本要求不同阈值,应调整决策阈值,而非修改梯度公式。使用对数损失中的稳定公式直接从 logit 计算损失,不要对已舍入为 00 或 11 的概率取对数。

探索关联打开关联网络