Skip to content

Chapter 5 线性模型


我们要讲的故事

疾旋鼬用线性回归预测了房价——输出连续值。现在它拿着一个西瓜问:"这瓜好不好吃?" 这是分类问题——好瓜 (1) 还是坏瓜 (0)。

线性回归输出实值 \((-\infty, +\infty)\),我们需要把它"压缩"到 \([0, 1]\) 变成概率。

一、对率回归 (Logistic Regression)

从线性回归到分类

理想的分类函数是单位阶跃函数\(z < 0\) 输出 0,\(z > 0\) 输出 1。但阶跃函数不连续、不可微。

对率函数 (logistic function) 替代:

\[\sigma(z) = \frac{1}{1 + e^{-z}}\]

性质: - \(\sigma(z) \in (0, 1)\),天然适合做概率 - 单调可微,任意阶可导 - \(\sigma'(z) = \sigma(z)(1 - \sigma(z))\)(可自行验证:\(\frac{d}{dz}\frac{1}{1+e^{-z}} = \frac{e^{-z}}{(1+e^{-z})^2} = \sigma(z)(1-\sigma(z))\)

模型构建

\[P(y=1 \mid x) = \sigma(w^T x + b), \quad P(y=0 \mid x) = 1 - \sigma(w^T x + b)\]

统一写为:

\[P(y \mid x; w) = [\sigma(w^T x + b)]^y \cdot [1 - \sigma(w^T x + b)]^{1-y}\]

几率与对数几率

\[\frac{P(y=1 \mid x)}{P(y=0 \mid x)} = \frac{\sigma(w^T x + b)}{1 - \sigma(w^T x + b)} = e^{w^T x + b}\]

左边称为几率 (odds)——正例发生的相对可能性。取对数:

\[\log \frac{P(y=1 \mid x)}{P(y=0 \mid x)} = w^T x + b\]

这就是"对数几率回归"名称的由来。

注意:Logistic Regression 是分类算法!"Logistic"源自"Logit",与"逻辑 (Logic)"没有半毛钱关系。

优势: 1. 无需事先假设数据分布 2. 可得到类别的近似概率预测 3. 可直接应用数值优化算法求解

最大似然估计推导

给定数据集 \(\{(x^{(i)}, y^{(i)})\}_{i=1}^m\),似然函数:

\[L(w) = \prod_{i=1}^m [\sigma(w^T x^{(i)})]^{y^{(i)}} [1 - \sigma(w^T x^{(i)})]^{1-y^{(i)}}\]

对数似然:

\[\ell(w) = \sum_{i=1}^m \left[ y^{(i)} \log \sigma(w^T x^{(i)}) + (1-y^{(i)}) \log(1 - \sigma(w^T x^{(i)})) \right]\]

利用 \(\log\sigma(z) = -\log(1+e^{-z})\)\(\log(1-\sigma(z)) = -z - \log(1+e^{-z})\)

\[\ell(w) = \sum_{i=1}^m \left[ y^{(i)} w^T x^{(i)} - \log(1 + e^{w^T x^{(i)}}) \right]\]

最大化对数似然等价于最小化交叉熵损失

\[\mathcal{L}(w) = -\frac{1}{m}\sum_{i=1}^m \left[ y^{(i)} \log \hat{y}^{(i)} + (1-y^{(i)}) \log(1 - \hat{y}^{(i)}) \right]\]

交叉熵的信息论解释

熵 (Entropy):衡量随机变量的不确定性。\(H(P) = -\sum P(x)\log P(x)\)

交叉熵 (Cross Entropy):如果真实分布是 \(P\),你用 \(Q\) 编码,多花的比特数:\(H(P, Q) = -\sum P(x)\log Q(x)\)

\(P\)\(Q\) 越接近,交叉熵越小。最小化交叉熵等价于让预测分布接近真实分布。

KL 散度\(D_{\text{KL}}(P \| Q) = H(P, Q) - H(P) \geq 0\)。最小化交叉熵等价于最小化 KL 散度。

凸性证明

定理:对率回归的损失函数 \(\mathcal{L}(w)\) 是凸函数。

证明\(\ell(w) = \sum_i [y^{(i)} w^T x^{(i)} - \log(1 + e^{w^T x^{(i)}})]\)

  • 第一项 \(y^{(i)} w^T x^{(i)}\) 关于 \(w\) 是线性的(既凸又凹)
  • 第二项 \(\log(1 + e^{w^T x^{(i)}})\)\(\log\text{-sum-exp}\) 函数,是凸函数(可由 Hessian 半正定证明)
  • 因此 \(-\log(1 + e^{w^T x^{(i)}})\) 是凹函数

凹函数之和是凹函数,故 \(\ell(w)\) 是凹函数,\(\mathcal{L}(w)\) 是凸函数。\(\square\)

梯度计算

\[\nabla_w \ell(w) = \sum_{i=1}^m \left[ y^{(i)} - \sigma(w^T x^{(i)}) \right] x^{(i)} = \sum_{i=1}^m (y^{(i)} - \hat{y}^{(i)}) x^{(i)}\]

梯度的形式非常简洁:(真实值 − 预测值)× 输入。与线性回归的梯度形式完全一致。

求解

  • 梯度下降\(w \leftarrow w + \eta \nabla \ell(w)\)
  • 牛顿法\(w \leftarrow w - H^{-1}\nabla \ell(w)\),其中 Hessian \(H = -X^T S X\)\(S = \text{diag}(\hat{y}^{(i)}(1-\hat{y}^{(i)}))\)

二、Softmax 回归(多分类推广)

问题设定

\(C\) 个类别,\(y \in \{1, 2, \ldots, C\}\)。使用 \(C\) 个线性判别函数 \(f_c(x) = w_c^T x + b_c\)

判定规则:\(y = \arg\max_c f_c(x)\)。如果数据集是多类线性可分的,一定存在这样的线性分类器可以正确分开。

Softmax 函数

将多个标量映射为概率分布:

\[P(y = c \mid x) = \frac{e^{w_c^T x + b_c}}{\sum_{c'=1}^C e^{w_{c'}^T x + b_{c'}}}\]

性质:\(P(y=c \mid x) \in (0, 1)\)\(\sum_{c=1}^C P(y=c \mid x) = 1\)。当 \(C = 2\) 时退化为对率回归。

损失函数

使用 One-Hot 编码 \(y_c = \mathbb{I}(y = c)\),交叉熵损失:

\[\mathcal{L} = -\frac{1}{m}\sum_{i=1}^m \sum_{c=1}^C y_c^{(i)} \log P(y=c \mid x^{(i)})\]

梯度:\(\frac{\partial \mathcal{L}}{\partial w_c} = -\frac{1}{m}\sum_i [y_c^{(i)} - P(y=c \mid x^{(i)})] x^{(i)}\)

Log-Sum-Exp Trick:计算 \(\log\sum e^{z_c}\) 时,先减去最大值 \(M = \max_c z_c\) 避免数值溢出:\(\log\sum e^{z_c} = M + \log\sum e^{z_c - M}\)

三、线性判别分析 (LDA)

核心思想

LDA 寻找一个投影方向 \(w\),使得投影后不同类别的样本尽可能分开。既是分类方法,也是监督降维技术。

目标函数

两类数据:\(D_0\)(均值 \(\mu_0\),协方差 \(\Sigma_0\)),\(D_1\)(均值 \(\mu_1\),协方差 \(\Sigma_1\))。

投影到方向 \(w\) 上: - 类间距离:\(\|w^T\mu_0 - w^T\mu_1\|^2 = w^T S_b w\) - 类内散度:\(w^T\Sigma_0 w + w^T\Sigma_1 w = w^T S_w w\)

其中 \(S_b = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T\)(类间散度矩阵),\(S_w = \Sigma_0 + \Sigma_1\)(类内散度矩阵)。

最大化广义瑞利商

\[\max_w J(w) = \frac{w^T S_b w}{w^T S_w w}\]

求解

\(w\) 成倍缩放不影响 \(J(w)\),只需关心方向。令 \(w^T S_w w = 1\),用拉格朗日乘子法:

\[S_b w = \lambda S_w w\]

这是广义特征值问题。由于 \(S_b w = (\mu_0 - \mu_1) \cdot [(\mu_0 - \mu_1)^T w]\)(标量),方向已知:

\[w^* = S_w^{-1}(\mu_0 - \mu_1)\]

多分类 LDA

推广到 \(N\) 个类别:\(S_t = S_w + S_b\)。投影维度 \(d' = N - 1\)

LDA 降维维度为什么是 \(N-1\)?因为 \(\text{rank}(S_b) \leq \min(d, N-1)\)

四、多分类学习

一对一 (OvO)

\(N\) 个类别,训练 \(N(N-1)/2\) 个分类器,每个只区分两个类别。投票法决定。

  • 优点:每个分类器只用两类数据,训练时间短
  • 缺点:分类器数量 \(O(N^2)\)

一对其余 (OvR)

训练 \(N\) 个分类器,每个区分"第 \(k\) 类"与"其他"。

  • 优点:分类器数量 \(O(N)\)
  • 缺点:每个分类器用全部数据,训练时间长

纠错输出码 (ECOC)

多对多 (MvM):将若干类作为正类,若干类作为反类。编码矩阵每列对应一个二分类器。

预测时,计算预测码与各类编码的汉明距离,取最小的。

纠错能力:编码越长、类别间距离越远,纠错能力越强。即使某些分类器出错,仍可能得到正确结果。


2026.06