系列开篇用房价预测区分了模型、策略和算法,也提到独立同方差的高斯误差会让负对数似然化为残差平方和。这个结论还留下几个问题:模型怎样从一条直线扩展到曲线,平方损失为何选择条件均值,以及训练误差降低后,新样本上的误差为什么可能上升。

这里把固定基函数接上线性输出层的模型称为“线性回归网络”。统计学习中更常见的名称是基函数线性回归。网络视角便于看清每个节点怎样参与计算,但“线性”仍然是一个严格的数学限定:输出必须对待估参数保持线性,基函数本身可以是输入的非线性函数。

接下来的推导从这层限定出发,先看基函数如何决定模型能表示的曲线,再由高斯似然推到最小二乘及其投影几何。得到条件分布后,决策损失会确定应该用哪个数作为预测。把训练集的随机性纳入分析,还能进一步分辨预期测试误差中的偏差、方差和观测噪声。

线性基函数模型

设训练集为 D={(xn,tn)}n=1N\mathcal{D}=\{(\mathbf{x}_n,t_n)\}_{n=1}^N。选取 MM 个基函数,并把常数项写成 ϕ0(x)=1\phi_0(\mathbf{x})=1,模型为

y(x,w)=j=0M1wjϕj(x)=wTϕ(x).y(\mathbf{x},\mathbf{w}) = \sum_{j=0}^{M-1}w_j\phi_j(\mathbf{x}) = \mathbf{w}^{\mathsf T}\boldsymbol{\phi}(\mathbf{x}).

ϕ1(x)=x\phi_1(x)=x,模型就是带截距的一元直线。加入 x2,x3x^2,x^3 后,输出成为输入的多项式;使用中心为 μj\boldsymbol{\mu}_j、宽度为 sjs_j 的高斯径向基函数(Radial Basis Function,RBF),

ϕj(x)=exp(xμj222sj2),\phi_j(\mathbf{x}) = \exp\left( -\frac{\lVert\mathbf{x}-\boldsymbol{\mu}_j\rVert_2^2}{2s_j^2} \right),

模型又能组合出局部起伏。无论 ϕj(x)\phi_j(\mathbf{x}) 对输入多么复杂,只要训练时只调整 wjw_jyyw\mathbf{w} 就仍是线性的。反过来,如果基函数的中心、宽度或内部网络参数也参与训练,整个模型对所有待估参数一般不再是线性模型,后面的闭式解也不再直接成立。

输入向量先送入常数、线性、多项式和径向基函数四个固定基函数节点,各节点输出分别乘以权重后汇入一个恒等激活的线性输出节点,得到预测值 y
固定基函数先把输入映射为特征向量,线性输出层再做加权求和。曲线可以对输入呈非线性,但待估权重只以一次幂出现。作者绘制

把所有样本的基函数值按行排列,可得设计矩阵

Φ=[ϕ(x1)Tϕ(x2)Tϕ(xN)T]RN×M.\boldsymbol{\Phi} = \begin{bmatrix} \boldsymbol{\phi}(\mathbf{x}_1)^{\mathsf T}\\ \boldsymbol{\phi}(\mathbf{x}_2)^{\mathsf T}\\ \vdots\\ \boldsymbol{\phi}(\mathbf{x}_N)^{\mathsf T} \end{bmatrix} \in\mathbb{R}^{N\times M}.

于是,训练集上的全部预测可以写成 t^=Φw\widehat{\mathbf{t}}=\boldsymbol{\Phi}\mathbf{w}。这个矩阵同时记录了模型容量和数据几何:增加一列就是增加一个基函数;两列几乎相同,意味着对应权重很难由现有样本分别确定;某列只在训练区间外显著变化,则训练数据无法约束它在外推区域的影响。

高斯似然与最小二乘

线性回归还需要说明观测值为何偏离模型输出。一项常见假设是

tn=wTϕ(xn)+εn,εniidN(0,β1).t_n = \mathbf{w}^{\mathsf T}\boldsymbol{\phi}(\mathbf{x}_n)+\varepsilon_n, \qquad \varepsilon_n\overset{\mathrm{iid}}{\sim}\mathcal{N}(0,\beta^{-1}).

β\beta 是噪声精度,方差为 β1\beta^{-1}。iid 在这里是一项实质假设:给定输入后,各样本噪声相互独立、均值为零并具有相同方差。由此得到训练目标的条件似然:

p(tX,w,β)=n=1NN ⁣(tnwTϕ(xn),β1).p(\mathbf{t}\mid\mathbf{X},\mathbf{w},\beta) = \prod_{n=1}^N \mathcal{N}\!\left( t_n\mid \mathbf{w}^{\mathsf T}\boldsymbol{\phi}(\mathbf{x}_n), \beta^{-1} \right).

取负对数,可得

logp(tX,w,β)=β2tΦw22N2logβ+N2log(2π).-\log p(\mathbf{t}\mid\mathbf{X},\mathbf{w},\beta) = \frac{\beta}{2} \lVert\mathbf{t}-\boldsymbol{\Phi}\mathbf{w}\rVert_2^2 -\frac{N}{2}\log\beta +\frac{N}{2}\log(2\pi).

固定 β\beta 时,最大化似然与最小化残差平方和完全等价。在似然存在有限极值的情形下,同时估计 β\beta 也不会改变 w\mathbf{w} 的正规方程。因此,平方损失在这里有明确的概率来源:它对应加性、独立、同方差的高斯噪声模型。

对残差平方和求梯度,

wtΦw22=2ΦT(tΦw),\nabla_{\mathbf{w}} \lVert\mathbf{t}-\boldsymbol{\Phi}\mathbf{w}\rVert_2^2 = -2\boldsymbol{\Phi}^{\mathsf T} (\mathbf{t}-\boldsymbol{\Phi}\mathbf{w}),

令梯度为零,得到正规方程

ΦTΦw=ΦTt.\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi}\,\mathbf{w} = \boldsymbol{\Phi}^{\mathsf T}\mathbf{t}.

Φ\boldsymbol{\Phi} 满列秩时,ΦTΦ\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi} 可逆,唯一解为

wML=(ΦTΦ)1ΦTt.\mathbf{w}_{\mathrm{ML}} = (\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^{\mathsf T}\mathbf{t}.

这条公式适合推导,不适合照着实现。显式形成 ΦTΦ\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi} 会把设计矩阵的条件数平方,数值误差随之放大。实际程序通常用 QR 分解、奇异值分解或经过验证的最小二乘求解器。NumPy 的写法可以保持很短:

import numpy as np


def polynomial_features(x, degree):
    """返回 [1, x, x², ..., x^degree] 组成的设计矩阵。"""
    x = np.asarray(x, dtype=float)
    return np.vander(x, N=degree + 1, increasing=True)


phi = polynomial_features(x_train, degree=3)
w, *_ = np.linalg.lstsq(phi, t_train, rcond=None)

phi_test = polynomial_features(x_test, degree=3)
t_pred = phi_test @ w

若设计矩阵秩亏,满足正规方程的权重可能不唯一。lstsq 会借助奇异值分解返回一个最小范数解;更重要的是,所有最小二乘解在训练样本上的投影 Φw\boldsymbol{\Phi}\mathbf{w} 相同。权重是否唯一和拟合向量是否唯一,是两个不同问题。

若残差平方和大于零,将 wML\mathbf{w}_{\mathrm{ML}} 代回似然,还可得到噪声方差的最大似然估计:

σ^ML2=β^ML1=1NtΦwML22.\widehat{\sigma}_{\mathrm{ML}}^2 = \widehat{\beta}_{\mathrm{ML}}^{-1} = \frac{1}{N} \lVert\mathbf{t}-\boldsymbol{\Phi}\mathbf{w}_{\mathrm{ML}}\rVert_2^2.

由于同一批数据还用于估计权重,这个估计会系统性偏小。在固定设计、模型设定正确且噪声同方差时,若 r=rank(Φ)r=\operatorname{rank}(\boldsymbol{\Phi})N>rN>rSSE/(Nr)\mathrm{SSE}/(N-r) 才是噪声方差的无偏估计。

高斯性并不是求解最小二乘的代数条件。给定满列秩设计矩阵,只要 E[εΦ]=0\mathbb{E}[\boldsymbol{\varepsilon}\mid\boldsymbol{\Phi}]=\mathbf{0}Cov(εΦ)=σ2I\operatorname{Cov}(\boldsymbol{\varepsilon}\mid\boldsymbol{\Phi})=\sigma^2\mathbf{I},Gauss–Markov 定理就说明普通最小二乘在线性无偏估计量中具有最小协方差;这个结论不要求误差服从高斯分布。高斯假设进一步提供了前面的似然形式和有限样本下的精确分布推断。异方差、相关误差或明显的重尾噪声会分别影响协方差、最优性或区间推断,不能只看最小二乘仍能返回数值解就沿用原结论。

最小二乘与正交投影

正规方程还能从几何上直接得到。设计矩阵的第 jj

ϕj=[ϕj(x1)ϕj(xN)]T\boldsymbol{\phi}_j = \begin{bmatrix} \phi_j(\mathbf{x}_1)&\cdots&\phi_j(\mathbf{x}_N) \end{bmatrix}^{\mathsf T}

是一个位于 RN\mathbb{R}^N 的向量。所有可能的拟合结果 Φw\boldsymbol{\Phi}\mathbf{w} 构成这些列向量张成的子空间 C(Φ)\mathcal{C}(\boldsymbol{\Phi})。训练目标向量 t\mathbf{t} 通常不在这个子空间中,最小二乘要找的是子空间内离它最近的点 t^\widehat{\mathbf{t}}

观测空间中两条基函数列向量张成一个倾斜平面,目标向量 t 位于平面外,拟合向量 t 帽落在平面上,残差 r 从拟合点垂直指向目标点,直角符号标明残差与列空间正交
最小二乘把目标向量投影到设计矩阵的列空间。拟合向量属于列空间,残差垂直于列空间中的每个方向。作者绘制

记残差为 r=tt^\mathbf{r}=\mathbf{t}-\widehat{\mathbf{t}}。最近点的条件是,r\mathbf{r} 与列空间中的每个方向都正交。特别地,它与每一列 ϕj\boldsymbol{\phi}_j 正交,因此

ΦTr=ΦT(tΦw)=0,\boldsymbol{\Phi}^{\mathsf T}\mathbf{r} = \boldsymbol{\Phi}^{\mathsf T} (\mathbf{t}-\boldsymbol{\Phi}\mathbf{w}) = \mathbf{0},

这正是正规方程。若基函数中包含常数列 1\mathbf{1},正交条件还给出 1Tr=0\mathbf{1}^{\mathsf T}\mathbf{r}=0,即带截距最小二乘在训练集上的残差之和为零。

用 Moore–Penrose 伪逆 Φ+\boldsymbol{\Phi}^{+} 表示,投影可以统一写成

t^=ΦΦ+t.\widehat{\mathbf{t}} = \boldsymbol{\Phi}\boldsymbol{\Phi}^{+}\mathbf{t}.

即使 Φ\boldsymbol{\Phi} 秩亏,投影矩阵 ΦΦ+\boldsymbol{\Phi}\boldsymbol{\Phi}^{+}t^\widehat{\mathbf{t}} 仍然唯一。几何图景也解释了为什么增加基函数不会提高训练残差平方和:新的列空间至少包含原来的列空间,最近点不可能变远。不过,这个结论只涉及当前训练向量,不能推出新样本上的误差也会下降。

回归决策理论

概率模型学到的是条件分布 p(tx,D)p(t\mid\mathbf{x},\mathcal{D}),实际系统最终却要给出一个动作 aa,例如报价、剂量或温度预测。决策理论用损失函数 L(t,a)L(t,a) 衡量真实值为 tt 时采取动作 aa 的代价。给定输入后的条件风险为

R(ax)=L(t,a)p(tx,D)dt.R(a\mid\mathbf{x}) = \int L(t,a) p(t\mid\mathbf{x},\mathcal{D})\,dt.

使条件风险最小的动作才是最优预测,“回归”这个任务名称本身无法确定它。对平方损失 L(t,a)=(ta)2L(t,a)=(t-a)^2,设条件均值为 μ(x)=E[tx,D]\mu(\mathbf{x})=\mathbb{E}[t\mid\mathbf{x},\mathcal{D}],则

E[(ta)2x,D]=Var(tx,D)+(aμ(x))2.\mathbb{E}[(t-a)^2\mid\mathbf{x},\mathcal{D}] = \operatorname{Var}(t\mid\mathbf{x},\mathcal{D}) +(a-\mu(\mathbf{x}))^2.

第一项不随 aa 改变,第二项在 a=μ(x)a=\mu(\mathbf{x}) 时最小,所以平方损失下的最优点预测是条件均值。线性高斯模型的均值正是 wTϕ(x)\mathbf{w}^{\mathsf T}\boldsymbol{\phi}(\mathbf{x});采用最大似然点估计后,模型输出自然成为平方损失下的决策。

换一种损失,最优动作也会改变。绝对损失 ta|t-a| 对应条件中位数;分位数回归使用非对称的折线损失,最优动作是指定条件分位数。若低估需求造成的损失高于高估,直接预测条件均值未必符合业务代价。对多峰分布,条件均值甚至可能落在概率密度很低的位置。这时问题不在均值“算错了”,而在平方损失表达的决策目标与实际代价不一致。

高斯分布的均值、中位数和众数重合,因此几种常见点预测在理想线性高斯模型下看起来没有区别。一旦噪声偏斜、重尾或含有多个峰,似然模型和决策损失就必须分开选择:前者描述目标怎样分布,后者描述预测错误怎样计价。

偏差、方差与不可约噪声

一次训练只能得到一个模型,偏差—方差分析考察的却是重复抽取训练集并重新训练时,预测会怎样变化。设真实数据过程为

t=f(x)+ε,E[εx]=0,Var(εx)=σ2(x).t=f(\mathbf{x})+\varepsilon, \qquad \mathbb{E}[\varepsilon\mid\mathbf{x}]=0, \qquad \operatorname{Var}(\varepsilon\mid\mathbf{x})=\sigma^2(\mathbf{x}).

零条件均值意味着 f(x)=E[tx]f(\mathbf{x})=\mathbb{E}[t\mid\mathbf{x}],所以 ff 是平方损失希望恢复的真实回归函数。

从同一总体抽取不同训练集 D\mathcal{D},得到预测函数 yD(x)y_{\mathcal{D}}(\mathbf{x})。在固定输入 x\mathbf{x} 处,记这些模型的平均预测为

y(x)=ED[yD(x)].\overline{y}(\mathbf{x}) = \mathbb{E}_{\mathcal{D}}[y_{\mathcal{D}}(\mathbf{x})].

若测试噪声与训练集独立,平方损失的期望可以分解为

ED,ε[(tyD(x))2x]=(y(x)f(x))2偏差平方+ED[(yD(x)y(x))2]方差+σ2(x)不可约噪声.\begin{aligned} &\mathbb{E}_{\mathcal{D},\varepsilon} \left[(t-y_{\mathcal{D}}(\mathbf{x}))^2\mid\mathbf{x}\right]\\ &= \underbrace{\left( \overline{y}(\mathbf{x})-f(\mathbf{x}) \right)^2}_{\text{偏差平方}} + \underbrace{\mathbb{E}_{\mathcal{D}} \left[ (y_{\mathcal{D}}(\mathbf{x})-\overline{y}(\mathbf{x}))^2 \right]}_{\text{方差}} + \underbrace{\sigma^2(\mathbf{x})}_{\text{不可约噪声}}. \end{aligned}

偏差衡量平均模型与真实回归函数的距离。基函数太少或形状不合适时,函数空间无法表示 ff 在目标分布内的变化,即使反复收集数据,平均预测也可能持续偏离。方差衡量训练集稍有变化时模型输出的波动。高阶多项式、相互接近的基函数或样本稀少区域会让权重对观测扰动十分敏感。最后一项来自新观测自身的随机性,即使知道真实的 f(x)f(\mathbf{x}) 也无法由点预测消除。

这个分解是对训练集和新噪声取期望后的性质,不能从某一次训练误差和验证误差中逐项读出。增加基函数通常会扩大列空间并降低近似偏差,同时可能提高估计方差,但这只是常见趋势,不是任意数据、任意学习算法下都单调成立的定律。

在线性模型设定正确、设计矩阵固定且噪声方差为 σ2\sigma^2 时,满列秩最小二乘估计满足

Cov(w^Φ)=σ2(ΦTΦ)1.\operatorname{Cov}(\widehat{\mathbf{w}}\mid\boldsymbol{\Phi}) = \sigma^2 (\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi})^{-1}.

因此,新输入 x\mathbf{x} 处由参数估计带来的预测方差为

Var[y(x,w^)Φ]=σ2ϕ(x)T(ΦTΦ)1ϕ(x).\operatorname{Var} \left[y(\mathbf{x},\widehat{\mathbf{w}})\mid\boldsymbol{\Phi}\right] = \sigma^2 \boldsymbol{\phi}(\mathbf{x})^{\mathsf T} (\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi})^{-1} \boldsymbol{\phi}(\mathbf{x}).

这个表达式把“方差大”落到了具体结构上:当设计矩阵存在很小的奇异值,逆矩阵会放大相应方向;当新输入的基函数向量落在训练数据约束较弱的方向,外推的不确定性也会增大。

岭回归用一个可控偏差换取更小的方差。对已经中心化的数据,若所有权重都参与惩罚且 λ>0\lambda>0,它求解

\mathbf{w}_{\lambda} = \arg\min_{\mathbf{w}} \left{ \lVert\mathbf{t}-\boldsymbol{\Phi}\mathbf{w}\rVert_2^2 +\lambda\lVert\mathbf{w}\rVert_2^2 \right},

并得到

wλ=(ΦTΦ+λI)1ΦTt.\mathbf{w}_{\lambda} = (\boldsymbol{\Phi}^{\mathsf T}\boldsymbol{\Phi}+\lambda\mathbf{I})^{-1} \boldsymbol{\Phi}^{\mathsf T}\mathbf{t}.

Φ=USVT\boldsymbol{\Phi}=\mathbf{U}\mathbf{S}\mathbf{V}^{\mathsf T},最小二乘沿第 ii 个奇异方向使用系数 1/si1/s_i,岭回归将它改为 si/(si2+λ)s_i/(s_i^2+\lambda)。小奇异值方向受到更强抑制,观测噪声不再被大幅放大;代价是平均估计被拉向零,产生额外偏差。实际带截距模型通常不惩罚截距,可以用惩罚矩阵将常数项排除。

基函数种类、数量、RBF 宽度、多项式次数和 λ\lambda 都属于模型选择。它们应只用训练集和验证集或交叉验证确定,测试集留到方案固定后再评估。否则,测试集也参与了模型选择,报告的误差会低估真正面对新数据时的风险。

线性回归框架

线性回归网络先用固定基函数定义可表示的函数空间,再在线性输出层中估计权重。独立同方差的高斯噪声把最大似然变成残差平方和最小化;设计矩阵的列空间又把这个代数问题变成目标向量的正交投影。得到条件分布以后,平方损失选择条件均值作为点预测,其他损失则可能选择中位数或分位数。

训练误差只说明目标向量离当前列空间有多远。模型面对新数据时,还要承受函数空间造成的偏差、训练样本造成的方差和数据过程本身的噪声。基函数与正则化的作用也可以据此区分:前者改变可表示的子空间,后者改变模型在不稳定方向上使用这个空间的程度。

参考文献

  1. C. M. Bishop. Pattern Recognition and Machine Learning, Chapters 1.5 and 3. Springer, 2006
  2. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, 2nd edition. Springer Series in Statistics, 2009. DOI: 10.1007/978-0-387-84858-7
  3. A. E. Hoerl and R. W. Kennard. Ridge Regression: Biased Estimation for Nonorthogonal Problems. Technometrics, 1970. DOI: 10.1080/00401706.1970.10488634
  4. S. Geman, E. Bienenstock, and R. Doursat. Neural Networks and the Bias/Variance Dilemma. Neural Computation, 1992. DOI: 10.1162/neco.1992.4.1.1
  5. NumPy Developers. numpy.linalg.lstsq. NumPy Reference