基础 · 05

线性模型:从回归到分类

线性回归拟合一条线,感知机画一刀,logistic 回归加一层概率——三个模型,同一个几何骨架。

18 min read

为什么从线性开始

上一篇我们讨论了凸优化。线性回归和 Logistic 回归正是最经典的无约束凸优化问题——它们的损失函数像一个完美的碗,保证了梯度下降一定能找到全局最优解。而拉格朗日乘子等高级工具,我们将在后续的 SVM 中大显身手。

几乎所有 ML 模型的骨架都可以写成同一个形式:

f(x)=wx+bf(\mathbf{x}) = \mathbf{w} \cdot \mathbf{x} + b

这只是一个线性函数——一条线、一个面、一个超平面。但通过改变损失函数输出变换,同一个骨架可以变成三种完全不同的模型:

  • 预测连续值(房价、温度)→ 线性回归
  • 预测离散类别(猫/狗)→ 感知机
  • 预测概率(这张图 87% 是猫)→ Logistic 回归

理解这三者的关系,就是理解后面 SVM、神经网络、甚至 LLM 最后一层的起点。

线性回归:拟合一条线

最简单的回归问题:给你一组 (xi,yi)(x_i, y_i) 数据点,找一条直线 y^=wx+b\hat{y} = wx + b 让所有点的误差尽量小。

误差怎么衡量? 最常见的是均方误差(MSE)

L=1ni=1n(yiy^i)2=1ni=1n(yiwxib)2\mathcal{L} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 = \frac{1}{n}\sum_{i=1}^{n}(y_i - wx_i - b)^2

几何上:每个点到直线的竖直距离(残差)平方后加起来最小。拖动下面的数据点,看最小二乘拟合线如何变化:

y = 0.81x + 1.44MSE = 1.38
00224466881010
拖动蓝色圆点改变数据。拖动红色离群点远离趋势,观察拟合线如何被剧烈拉扯——这就是 MSE 对离群点敏感的代价。紫色直线是最小二乘拟合——让所有残差平方和最小的那条线。切换「显示残差」看每个点到直线的垂直距离。

怎么找到最优的 wwbbL\mathcal{L} 求偏导令其为零,可以得到解析解(正规方程):

w=(XX)1Xy\mathbf{w} = (X^\top X)^{-1} X^\top \mathbf{y}

其中 XX 是把所有样本叠成的矩阵,y\mathbf{y} 是目标向量。这个公式在统计上叫最小二乘估计(OLS),在几何上,预测值 y^\hat{\mathbf{y}} 就是y\mathbf{y} 投影到 XX 的列空间上,而 w\mathbf{w} 是对应的坐标。

注意:如果特征数量比样本还多(高维小样本),XXX^\top X 将不可逆,模型会彻底崩溃。怎么解决?这就需要下一篇讲的正则化技巧。

一个关键的概率解读:如果我们假设 yi=wxi+b+ϵy_i = \mathbf{w} \cdot \mathbf{x}_i + b + \epsilon,其中 ϵ\epsilon高斯噪声,那么最小化 MSE 恰好等价于极大似然估计(MLE)——找到让数据出现概率最大的参数。这把回归问题拉回到了概率的框架里。

感知机:最简单的分类器

回归预测连续值,分类预测离散类别。最简单的做法是用线性函数的符号当决策:

y^=sign(wx+b)\hat{y} = \text{sign}(\mathbf{w} \cdot \mathbf{x} + b)

wx+b>0\mathbf{w} \cdot \mathbf{x} + b > 0 预测为 +1 类,<0< 0 预测为 -1 类。几何上,wx+b=0\mathbf{w} \cdot \mathbf{x} + b = 0 就是一条超平面(2D 里是直线)——它把空间切成两半,每半边染一种颜色。关键点:w\mathbf{w} 是这个超平面的法向量(垂直于超平面),它决定了超平面的朝向;bb 决定了平面的平移。

感知机训练算法(Rosenblatt, 1958):

假设类别标签 yi{+1,1}y_i \in \{+1, -1\},遍历每个样本,如果分错了就更新权重:

ww+ηyixi,bb+ηyi\mathbf{w} \leftarrow \mathbf{w} + \eta\, y_i \mathbf{x}_i, \quad b \leftarrow b + \eta\, y_i

直觉上:分错的样本会把超平面往它的方向推一推。看对了就不动。

感知机的损失函数是所有误分类样本的"惩罚"之和:

L=i错分yi(wxi+b)\mathcal{L} = \sum_{i \in \text{错分}} -y_i(\mathbf{w} \cdot \mathbf{x}_i + b)

这个形式后来演变成了 SVM 的 Hinge Loss——只是加了一个"间隔"的概念。

Novikoff 收敛定理(1962):如果数据线性可分,感知机一定收敛。收敛速度只取决于数据的间隔大小——间隔越大收敛越快。

但感知机有两个致命缺陷:

  1. 解不唯一——找到的那条线取决于初始化和扫描顺序,没有"最优"的标准。(究竟哪条线最好?这将引出后面的主角:寻找最大间隔的 SVM
  2. 线性不可分就完全没办法——XOR 问题(对角两点一类、另一对角一类)感知机永远学不会。

第二个缺陷在 1969 年被 Minsky 和 Papert 严格证明,直接引发了 AI 的第一个寒冬。绕过这个限制需要非线性模型——但那是后面的故事。

Logistic 回归:加一层概率

感知机的问题是输出非黑即白(+1 或 -1),没有置信度。现实中我们更想要一个概率:"这张图 87% 是猫"。

Logistic 回归的做法:用 sigmoid 函数把线性分数压到 (0,1)(0, 1) 区间:

P(y=1x)=σ(wx+b)=11+e(wx+b)P(y=1 \mid \mathbf{x}) = \sigma(\mathbf{w} \cdot \mathbf{x} + b) = \frac{1}{1 + e^{-(\mathbf{w} \cdot \mathbf{x} + b)}}

σ\sigma 把任意实数 (,+)(-\infty, +\infty) 映射到 (0,1)(0, 1),正好可以当概率用。

为什么叫"回归"? 如果把 sigmoid 公式反过来推导,会发现:

ln(p1p)=wx+b\ln\left(\frac{p}{1-p}\right) = \mathbf{w} \cdot \mathbf{x} + b

左边是对数几率(log-odds)——事件发生概率与不发生概率之比的对数。所以 logistic 回归本质上是在用线性模型拟合对数几率,这就是它为什么叫"回归"。

拖动滑块感受:

w1.50
b0.00
P(y=1x)=σ(wx+b)P(y{=}1|x) = \sigma(wx+b)交叉熵 = 0.136
0.510
拖动 wwbb 调整 sigmoid 曲线。紫色虚线是决策边界(σ=0.5\sigma = 0.5处)。调大 ww 让边界更陡,曲线更像阶跃函数;调小则更平缓。

决策边界还是 wx+b=0\mathbf{w} \cdot \mathbf{x} + b = 0(对应 σ=0.5\sigma = 0.5),所以 logistic 回归还是线性分类器。但多出来的好处是:

  • 概率输出——不只告诉你"分到哪类",还有"模型有多确信"。
  • 处处可微——sigmoid 光滑可导,梯度下降稳定工作。

损失函数:交叉熵(即负对数似然):

L=1ni=1n[yilogp^i+(1yi)log(1p^i)]\mathcal{L} = -\frac{1}{n}\sum_{i=1}^{n}\left[y_i \log \hat{p}_i + (1 - y_i)\log(1 - \hat{p}_i)\right]

为什么不用 MSE?因为 sigmoid 把输出压到 (0,1)(0,1) 后,MSE 对"远端"样本的梯度几乎为零(sigmoid 的导数在两端很小),训练会卡住。交叉熵配合 sigmoid 则给出恒定的梯度规模,训练效率更高——这可以从概率视角严格推导(交叉熵就是 logistic 模型的负对数似然)。

多类扩展:当类别超过 2 个时,logistic 退化成 softmax 回归

P(y=kx)=ewkx+bkjewjx+bjP(y=k \mid \mathbf{x}) = \frac{e^{\mathbf{w}_k \cdot \mathbf{x} + b_k}}{\sum_j e^{\mathbf{w}_j \cdot \mathbf{x} + b_j}}

这就是 LLM 最后一层的形态——把隐状态映射成词表上的概率分布。

统一视角:损失函数决定一切

回过头看,这三个模型的骨架完全一样——都是 wx+b\mathbf{w} \cdot \mathbf{x} + b。真正区分它们的,是损失函数

模型输出损失函数概率解释
线性回归连续值1ni(yiy^i)2\frac{1}{n}\sum_i(y_i - \hat{y}_i)^2高斯噪声下的 MLE
感知机±1\pm 1i错分yi(wxi+b)\sum_{i \in \text{错分}} -y_i(\mathbf{w} \cdot \mathbf{x}_i + b)(无)
Logistic 回归[0,1][0, 1] 概率1ni[yilogp^i+(1yi)log(1p^i)]-\frac{1}{n}\sum_i\left[y_i \log \hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\right]Bernoulli 模型的 MLE
Softmax 回归多类概率1nilogP(yixi)-\frac{1}{n}\sum_i \log P(y_i \mid \mathbf{x}_i)Multinomial 的 MLE

这个视角很重要:选择损失函数 = 选择"什么叫好的模型"的定义。MSE 说"预测离真值近就好",交叉熵说"预测的分布贴近真实分布就好"。不同的定义,引导出不同的最优解。

还有一个统一的几何事实:所有的线性模型,无论损失函数怎么变,决策边界(或拟合函数)都只取决于数据的线性组合。如果数据本身有非线性结构(两个新月、同心圆),线性模型就只能认命——这是下一篇要解决的问题

这个想法在前沿里