跳到主要内容

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

逻辑回归:线性分类器

逻辑回归(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+ez\sigma(z) = \frac{1}{1 + e^{-z}}

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

Sigmoid 函数

Sigmoid 函数

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

定义

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

其中 zRz \in \mathbb{R}

关键性质

  • 定义域与值域:定义域为全体实数 R\mathbb{R},值域为开区间 (0,1)(0, 1)
  • 渐近线:存在两条水平渐近线 y=0y = 0y=1y = 1。当 zz \to -\infty 时,σ(z)0\sigma(z) \to 0;当 zz \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+ez)1\sigma(z) = (1 + e^{-z})^{-1}
  2. 应用链式法则:
σ(z)=ddz(1+ez)1=(1+ez)2(ez)\sigma'(z) = \frac{d}{dz}\left(1 + e^{-z}\right)^{-1} = -(1 + e^{-z})^{-2} \cdot \left(-e^{-z}\right)
  1. 化简得:
σ(z)=ez(1+ez)2\sigma'(z) = \frac{e^{-z}}{(1 + e^{-z})^2}
  1. 分子分母同乘 eze^z 或进行代数变形(分子加 1 减 1):
σ(z)=11+ez(111+ez)\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^)+(1y)log(1y^)]L(y, \hat{y}) = -[y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})]

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

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

链式法则应用

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

  • Lwi=Ly^y^wi\frac{\partial L}{\partial w_i} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial w_i}
  • Lb=Ly^y^b\frac{\partial L}{\partial b} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial b}

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

导数计算详解

1. LLy^\hat{y} 的导数

对对数损失函数求导:

Ly^=yy^+1y1y^\frac{\partial L}{\partial \hat{y}} = -\frac{y}{\hat{y}} + \frac{1 - y}{1 - \hat{y}}

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

2. y^\hat{y}wwbb 的导数

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

  • y^wi=y^(1y^)zwi=y^(1y^)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^(1y^)zb=y^(1y^)\frac{\partial \hat{y}}{\partial b} = \hat{y}(1 - \hat{y}) \cdot \frac{\partial z}{\partial b} = \hat{y}(1 - \hat{y})

3. 最终梯度表达式

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

  • Lwi=(yy^)xi\frac{\partial L}{\partial w_i} = -(y - \hat{y})x_i
  • Lb=(yy^)\frac{\partial L}{\partial b} = -(y - \hat{y})

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

梯度下降更新规则

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

  • wi:=wiαLwiw_i := w_i - \alpha \frac{\partial L}{\partial w_i}
  • b:=bαLbb := 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.3y^0.574443\hat y\approx0.574443,损失从 log20.693147\log2\approx0.693147 降至 0.5543550.554355

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

H=1Nipi(1pi)x~ix~iT0.H=\frac1N\sum_i p_i(1-p_i)\tilde x_i\tilde x_i^T\succeq0.

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

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

探索关联打开关联网络