线性回归的几何解释

2026-06-26 五 22:31 2026-08-02 日 12:52

1. 本文核心总结

求解线性方程组 \(Xw = y\),可从矩阵 X 的形状与秩出发,统一理解最小二乘、最小范数解与岭回归:

  • 若 X 为方阵且满秩,则存在唯一精确解,直接求逆即可:\(w = X^{-1}y\)。
  • 若 X 列满秩(超定系统,方程数多于未知数),通常无精确解。可通过投影将问题转为最小二乘:\(\min_w \|Xw - y\|^2\),得到正规方程解。用 SVD 分解 \( X = U\Sigma V^T \) 后,解为: \[ \hat{w} = V\Sigma^{-1}U^T y \]
  • 若 X 行满秩(欠定系统,未知数多于方程数),解不唯一。可通过添加最小范数约束使解唯一,即 \(\min \|w\|^2\) 同时满足 \(Xw = y\),其解同样可由 SVD 表达为: \[ \hat{w} = V\Sigma^{-1}U^T y \]
  • 若 X 行列均不满秩,上述形式统一为伪逆解:先投影到列空间保证拟合,再取最小范数保证唯一,二阶段优化编码于同一代数表达中。
  • 若 \(X, y\) 存在噪声或不确定性,无需执着于精确二阶段优化。可同时优化拟合误差与模型复杂度,得到岭回归: \[ \hat{w} = (X^T X + \lambda I)^{-1} X^T y \] 其 SVD 分解形式为: \[ \hat{w} = V (\Sigma^2 + \lambda I)^{-1} \Sigma^T U^T y \] 拆解为按奇异值逐分量处理: \[ \boxed{\hat{w} = V \cdot \text{diag}\left( \frac{\sigma_i}{\sigma_i^2 + \lambda} \right) \cdot U^T y} \] 其中 \(\lambda\) 对奇异值进行平滑衰减,抑制小奇异值对应的噪声方向,增强解的稳定性与泛化能力。

2. 满秩情况方程求解

给定 Xw=y 求解 w,如果 X 是可逆的方阵,可以直接得到唯一解:

\[ w=X^{-1}y \]

X 可逆意味着它的列是相互独立的,这些列可以作为列空间的一组基,因此 w 是以 X 的列作为基时 y 在 X 的列空间的坐标系数。

这是只使用线性代数的几何模型(行列和左右零空间)下对方程 Xw=y 的解的核心解释。

3. 列满秩过约束问题

如果 X 形状是 (m,n) ,且 m>n ,那么它的行数大于列数,在形状上矩阵是高瘦型的。

由于矩阵的秩 r 不可能超过列数和行数,因此 r<=n<m。

X 的列以及 y 都是 \( \mathbb{R}^m \) 空间的向量,而由于 r<m, X 的列空间只是高维的 \( \mathbb{R}^m \) 中的低维超平面。

y 要么恰好在维度为 r 的列空间中,要么不在。但高维空间点恰好在特定低维子空间的概率几乎为 0 (想象三维空间里随机一个点落在 x-y 平面的概率),于是 y 几乎不会在 X 的列空间。

这种情况方程 Xw=y 是无解的。

如果一般的 f(x)=y 方程无解,人们还能期望什么呢?

这往往不是数学本身能回答的,需要知道 f(x)=y 在解决什么具体的问题。

在数学之外,也就是对外部世界进行建模的思考中,每个线性方程被解释成一个约束,而行多于列意味着约束数量比变量数更多,这会导致约束无法被全部满足。

一种想法是,既然无法满足所有约束,那么删掉一些,问题可能就有解了。

这是一种对原问题的修改或者“放松”。

对于 Xw=y ,我们当然也能删除行使得约束越来越少最终有解,甚至可以每次随机删除一些方程,然后求解,最后把多次随机删除后得到解求平均,只要你能说服这种做法对于解决问题是合理的,那都可以尝试。

3.1. 投影后的问题

在线性空间的几何视角下,Xw=y 无解意味着 y 不在 X 的列空间,此时不存在任何线性组合能够精确得到 y。

比如 X 是 x-z 平面,而 y 是 (1,2,3) ,它不在该平面上。

由于这里本身就有几何意义,那么可以从这种线性几何中找出一种“放松”问题的解释:

既然 y 不在 X 的列空间里(一个超平面),而是悬浮在平面之外,那么可以找 X 的列空间中和 y 最接近的向量。

线性空间的一个典型代表是欧式空间,其中有对距离的“自然”定义,即 \( |x-y|^2 \) ,它来自于现实中人类对物理空间的某种稳定感知(欧式空间可以看作是对物理空间稳定感知结果的数学对应物)。

即便不使用微积分,直觉上可以推测出点到平面的最短距离是该点到平面投影点的距离,而投影和正交有关。

根据正交性质, y-Xv 应该垂直于投影 Xv 本身,即: \( (Xv)^T(y-Xv)=0 \)

于是得到了方程 \( v^TX^TXv = v^TXy \) 。

然而这个方程是约束不足的,我们只讨论了投影向量 Xv 和垂线 y-Xv 垂直,但投影的完整语义是 y-Xv 和整个列空间垂直,而 X 的列空间是由于它的列张成的,因此 y-Xv 只需要垂直于 X 的所有列即可:

\( X^T(y-Xv)=0 \) ,然后得到 \( X^Ty=X^TXv \) ;

这称为正规方程。

从代数形式上看,当我们无法求解 Xw=y 的时候,两边乘以一个 \( X^T \) 就自然得到了一个后备的方程。

如果 \( X^TX \) 可逆,那么 \( v = (X^TX)^{-1}X^Ty \) 就是需要求解的目标系数。

现在问题是,在 X 是高瘦形状的前提下,\( X^TX \) 要满足什么额外条件才会是可逆的?

\( X^TX \) 可逆等价于它不存在 0 特征根,即 \( X^TXv = \lambda v \) 中 \( \lambda \neq 0 \) ;

两边乘以 \( v^T \) 得到 \( v^TX^TXv=\lambda v^Tv \) ,即 \( (Xv)^2 = \lambda v^Tv \)

如果某个特征向量 v 对应的特征值 \( \lambda \) 为 0 ,说明向量 \( Xv \) 模长为 0, 而特征向量 v 从定义上要求是非 0 的,这说明存在非 0 向量 v 使得 Xv=0 。

这意味着 X 的列不相互独立,也就是 X 的 rank 小于宽度 n 。

因此,如果在 X 是列满秩的情况下, \( X^TX \) 就是可逆的, \( v = (X^TX)^{-1}X^Ty \) 是合法的表达式。

\( (X^TX)^{-1}X^T \) 称为 X 的左逆矩阵,因为它从左边乘以 X 就得到标准的单位矩阵

但右乘 X 则是 \( X(X^TX)^{-1}X^T \), 它是到 X 列空间的投影矩阵 P ,因为给定任何向量 \( y\in R^{m} \), P 作用于 y 之后得到 \( Py = X(X^TX)^{-1}X^Ty \), 这就是 \( Xv \) ,也就是问题转换之后 y 到 X 列空间的投影。

3.2. SVD 的解释

尽管 \( v = (X^TX)^{-1}X^Ty \) 已经是一个不错的解形式的了,也有明确的几何解释: y 到 X 的列空间的投影向量的系数。

但其中的 \( (X^TX)^{-1} \) 以及 \( X^Ty \) 两个子模块的几何意义不容易进一步说清。

于是考虑对子模块继续拆分,矩阵是有非常多不同的分解方式,比如 QR, LU, SVD 等,任何一种分解都提供了一种新的看待矩阵的视角,因此通过切换视角,也许就能发掘这个解更丰富的性质。

由于 \( X^TX \) 形式和求逆的存在,X 的 SVD 分解 \( X = U\Sigma V^T \) 在这里非常合适(当然后文会展示这种分解在线性回归下的真正意义)。

这里 U 和 V 都是正交矩阵, \( \Sigma \) 是形状为 \( (m,n) \) 的对角矩阵,主对角线元素 \( \sigma_i \ge 0 \),其余位置为零。

正交矩阵和对角矩阵都是有非常好的数学性质,尤其在转置和求逆上,比如正交矩阵的转置就是它的逆: \( UU^T=I \), 它的列是相互独立的,可以作为空间的正交基。

在这个分解下,可以得到 \( X^TX = V\Sigma^TU^TU\Sigma V^T \) = \( V\Sigma^T\Sigma V^T \) 同样可以得到 \( XX^T = U\Sigma V^TV\Sigma^TU^T \) = \( U\Sigma\Sigma^T U^T \)

也就是说 V 的列向量由 \( X^TX \)(大小为 \( n\times n \))的单位特征向量构成;由于 \( X^TX \) 是实对角矩阵,其特征向量 V 能张成整个 \( \mathbb{R}^n \) 空间,且可以约定 V 的前 r 列(\( V_1,\dots,V_r \))张成 X 的行空间,后 n-r 列(\( V_{r+1},\dots,V_n \))张成 X 的零空间(即 Xv=0 ,对应 X 的特征根为 0 对应的特征向量 )。

U 的列向量则由 \( XX^T \)(大小为 \( m\times m \))的单位特征向量构成。U 的列能张成整个 \( \mathbb{R}^m \) 空间,可以约定其前 r 列(\( U_1,\dots,U_r \))张成 X 的列空间,后 m-r 列(\( U_{r+1},\dots,U_m \))张成 \( X^T \) 的零空间(即左零空间)。

U 和 V 两者通过非零奇异值 \( \sigma_i \) 相关联(即 \( X^TX \) 与 \( XX^T \) 共享相同的非零特征值 \( \sigma_i^2 \))。

一个向量 \(w\in\mathbb{R}^n\) 可以写成行空间分量与零空间分量之和,即 \( c_1V_1+c_2V_2+\dots+c_rV_r + \dots + c_nV_n \)

在当前 m>n 且列满秩 r=n 的情况下,输入向量 w 在 X 的行空间中,因此它在 V 表示下写成:

\( c_1V_1+c_2V_2+ \dots + c_nV_n \)

它乘以正交矩阵 \( V^T \) 结果是 \( V^Tw \), 这相当于是提取出 w 在 V 的列作为基的空间中的坐标系数,即 \( c = (c_1,c_2\dots c_n)^T \)

这些系数都是 w 在 X 的行空间的分量(X 零空间只有 0, 因此没有零空间分量)。

继续乘以 \( \Sigma \) 得到 \( \Sigma c \) ,由于 \( \Sigma \) 形状是 (m,n),且前 n 行的对角线上都是非 0 奇异值,因此相乘的过程中, c 的所有分量都被奇异值缩放,且通过补 0 的方式转到了 \( \mathbb{R}^m \) 空间。

\( z = (c_1\sigma_1,c_2\sigma_2,\dots c_n\sigma_n, 0,\dots)^T \)

z 的后 m-n 个元素都为 0 表明只有 X 的列空间分量有实际贡献。

再左乘 U 之后是在 \( R^m \) 空间进行了一次基变换,完全用 X 的列的线性组合来表示,写成 \( c_1\sigma_1 U_1 + c_2\sigma_2 U_2 \dots + c_n \sigma_n U_n \)

3.3. SVD 分解后的投影解

将 \( U\Sigma V^T \) 代入 \( v = (X^TX)^{-1}X^Ty \)

得到: \( v=(V\Sigma^T U^TU\Sigma V^T)^{-1} (V\Sigma^TU^T)y \)

整理后 \( v=(V \Sigma^T \Sigma V^T)^{-1} (V\Sigma^T U^T) y \)

继续整理为 \( v = V(\Sigma^T\Sigma)^{-1}V^T V \Sigma^T U^T y\)

因为 \( \Sigma^T\Sigma \) = \( \operatorname{diag} (\sigma_1^2,\dots,\sigma_n^2). \) 这是 (n,n) 形状的

它的逆等于 \( \operatorname{diag} (\frac{1}{\sigma_1^2},\dots,\frac{1}{\sigma_n^2}) \), 和 (n,m) 形状的 \( \Sigma^{T} \) 相乘相当于给后者每行乘以上了对应的对角系数得到:

\((\Sigma^T\Sigma)^{-1}\Sigma^T \) = \(diag \left( \frac1{\sigma_1}, \dots, \frac1{\sigma_n}, 0,\dots \right )\)

这是一个 nxm 的对角上是奇异值倒数的矩阵,可以写成 \( \Sigma^{+} \) (被称为伪逆,因为它不是方阵不能求逆,但这是最接近逆的概念的矩阵了)

所以 \( (\Sigma^T\Sigma)^{-1}\Sigma^T = \Sigma^{+} \)

因此 \( v= V\Sigma^{+}U^Ty.\)

向量 \(y\in\mathbb{R}^m\) 可以写成列空间分量与左零空间分量之和,即 \( d_1U_1+d_2U_2+\dots+d_rU_r + \dots + d_mU_m \)。

在 m>n 且 n=r 的条件下则写成 \( d_1U_1+d_2U_2+\dots+d_nU_n + \dots + d_mU_m \)。

它乘以正交矩阵 \( U^T \) 结果是 \( U^Ty \),这相当于是提取出 \( y \) 在 \( U \) 的列作为基的空间中的坐标系数,即 \( d = (d_1,d_2\dots d_r, \dots d_m)^T \)。

继续乘以 \( \Sigma^{+} \) 得到 \( \Sigma^{+}d \),由于 \( \Sigma^{+} \) 维度是 (n,m), n<m, 那么,它的后 m-n 列是全 0 的,因此在相乘的过程中,奇异值只会对 d 的前 n 个分量进行缩放,还有 m-n 个被丢弃了,这可以看作是 y 在 V 空间坐标系下到 X 列空间的投影过程。

缩放后得到的是一个以下形式的长度为 \( n \) 的向量。

\( z = (d_1/\sigma_1,d_2/\sigma_2,\dots d_n/\sigma_n)^T \)

此时 z 也到了 \( \mathbb{R}^n \) 空间。

再左乘 V 之后是在 \( \mathbb{R}^n \) 空间进行了一次基变换,完全用 \( X \) 的行空间基的线性组合来表示,写成 \( (d_1/\sigma_1)V_1 + (d_2/\sigma_2)V_2 \dots + (d_n/\sigma_n)V_n \)。

对比上一节 w 经过 X 变换的描述,这完全是 X 变换的逆过程。

4. 回归和优化问题

到目前为止还没有引入回归,纯粹是在相对抽象的线性空间几何解释下谈论问题,通过投影把目标映射到 X 的列空间去求解。 如果 X 的列相互独立,那么新问题的解是 \( v = (X^TX)^{-1}X^Ty \) ,或者引入 SVD 分解得到另一种封闭解形式: \( v= V\Sigma^{+}U^Ty.\)

要切换到“回归”视角,需要从 X 的行的意义入手,Xw=y 的每行是一个线性约束,针对的是单个样本 X[i],每一行的 X[i] 和 y[i] 都是样本的一个属性,但 y[i] 是要预测的目标属性,而 X[i] 则是预测的证据。

w 被解释成了 X[i] 和 y[i] 之间的线性规律,通过这个规律,给定 X[i] 就能去预测 y[i] 。

这个规律写成数学则是 \( y_i=w^Tx \) ;这里小写的 x 指代 X 中的任意行 X[i]。

对于每一行数据都想使得 \( w^Tx \) 预测的结果尽可能接近对应的真实预测值 \( y_i \) 。

而一种衡量“接近”的数学方式是残差的平方和,即最小化 \( \mid Xw-y\mid^2 \) 。

求梯度后置为 0 的方程就是: \( X^T(Xw-y)=0 \)

同样得到了正规方程 \( X^TXw = X^Ty \)

所以回归问题额外出现了误差最小化的概念,这也是几何意义上的,但和向量空间里的几何形式不同,内在逻辑则是一致的。

4.1. 偏置项 b 和特征工程

线性回归模型更常见的形式是 \( y_i=w^Tx + b\) ,这有一个偏置 b,此时 Xw=y 中 X 的某一列(一般是最后一列)会是全 1 ,X 是一个被填充后的对象。

然而是否有 b 并不是线性回归问题的核心,而是建模时对模型“好坏”的选择偏好,如果你观察到的数据总体就是能被过原点的直线很好地近似表示,那么可以不需要偏置。

甚至你观察到数据可能要用 \( x^2 \) 而不是 \( x \), 那么 \( y=ax^2+b \) 也是回归,此时 X 中存储的就是各个元素的平方项以及一列纯 1 项的拼接,它仍然是 Xw=y 的问题,对 X 的变换其实可以看作一种特征工程,而这类工程是由于具体问题里数据的语义和预测目标所决定的(特定领域知识)。

特征工程属于传统机器学习的范畴,其核心是已经把线性回归需要的矩阵 X 构造出来,然后就能得到正规方程以及对应的封闭解。

而深度学习是将 X 的构造也参数化,整个学习过程中梯度不会止步于 X, 因此需要继续链式法则,这也意味着无法找到一个封闭的解,只能依赖于梯度下降等数值优化方法。

4.2. 损失函数的问题

我们为什么选择了 \( |Xw-y|^2 \) 而不是 \( |Xw-y|_1 \) 或者 \( \max_i |(Xw-y)_i| \) 等其他形式?

从数学一侧来看,平方函数光滑且凸,有很好的计算性质,线性回归里直接导出了正规方程及其封闭解。

同时平方误差对应欧氏空间中两个点(向量)之间的距离,当预测目标本身具有空间位置含义时(比如预测路上的车辆),这种度量是自然的。

因此,这种工具被数学家抛出,至于使用者为什么要选择它,那更多是一种经验判断,并且是实践中尝试出来的。

很多时候由于好的数学性质,人们不需要依托强有力的解释,比如预测房价问题中,价格之间的平方损失并不如物体之间距离那么自然,但还是可以用平方损失,因为这样做好算,尽管不是精确的,但至少能拿出一个结果。

甚至我们会因为这个模型本身数学性质好,而尽量把现实问题的数据转成更符合这种模型的形式,比如改变量纲,归一化等。

引入概率模型后,会有一些新的解释,比如如果观测数据是在真实规律基础上叠加独立高斯噪声产生的,那么最小化平方误差等价于最大化观测数据出现的概率(最大似然估计),见 线性回归的统计和概率解释

5. 行满秩欠约束问题

现在关注欠约束的问题:矩阵 X 的秩 r 小于宽度 n, 这里先假设其高度 m 小于 n ,并且 r=m, 即行满秩,这和前文的列满秩问题完全对偶。

此时线性约束比自由变量少,会有无穷多个解。

在过约束中,我们面临的选择是如何找到一个新的问题,使得它和原始问题最接近。这里遇到的是,如何增加一个强约束,从无数个解中选择一个“最好”的解。

最常见的是最小化 Xw=y 中 w 的模长,即 \( \min_w |w|^2 \), 同时满足 Xw=y 。

为什么选择它呢?

和为什么选择投影来处理过约束的情况类似,数学家本身尝试过很多度量标准,但 \( |w|^2 \) 本身和欧式距离是相容的,并且马上我们会知道,它的计算性质和最小二乘一样好,能得到封闭解。

而具体问题中是否要使用这个标准,是经验问题,需要在实践中去检验。

当然可以引入一些理论上的解释,赋予 Xw=y 一些具体“意义”,比如 w 被解释为模型参数,它用来描述外部世界的某些对象之间的关系,比如房子的面积和所在地区对房价的影响。

然后哲学里的奥卡姆剃刀原则就可以介入,其声称所有解释能力相同的模型中,最简单的那个最好。

但这并没有太多说服力,即便它在实践中表现良好,可以作为一个经验值准则,但 w 的二范数小并不意味着模型简单, (0.2123 0.101) 两个数都很小,但这两个数的复杂度(或者说信息量)比 (5,5) 更高。

所以,在缺乏具体的问题背景时,还是回到数学本身,和最小二乘选择平方损失类似,最小化二范数会使得计算上变得简单,比如它是可微的,凸的有封闭解。

5.1. 最小范数问题

求解 \( \min_w |w|^2, s.t. Xw=y \) 可以用拉格朗日法, \( w^2+\lambda^T(Xw-y)=0 \)

对 w 和 \( \lambda \) 求导,会得到 \( 2w + X^T\lambda = 0 \) 和 \( Xw=y \)

因此有: \( w=-\frac12 X^T\lambda \) ,代入到 Xw=y 有:

\( -\frac{1}{2}XX^T \lambda = y \)

由于假设是行满秩的,那么 \( XX^T \) 可逆,于是有 \( \lambda = -2(XX^T)^{-1}y \) ,代入到 w 的表达式有

\( w = X^T(XX^T)^{-1}y \)

其中 \( X^T(XX^T)^{-1} \) 乘到 X 右边后会得到单位矩阵,乘到 X 左边得到 \( X^T(XX^T)^{-1}X \), 这是 X 行空间的投影矩阵。 所以它称为 X 的右逆。

这个性质和前文最小二乘 \( \min_w |Xw-y|^2 \) 得到的 \( w=(X^TX)^{-1}X^Ty \) 非常对偶。

而把 \( X=U\Sigma V^T \) 代入右逆得到 \( V\Sigma^TU^T (U \Sigma \Sigma^T U^T)^{-1} \) = \( V\Sigma^TU^TU(\Sigma\Sigma^T)^{-1}U^T \) = \( V\Sigma^{+}U^T \)

这个结果和最小二乘中左逆代入 SVD 后结果完全一样。

5.2. SVD 分解后的最小范数解

向量 \(y\in\mathbb{R}^m\) 可以写成列空间分量与左零空间分量之和,即 \( d_1U_1+d_2U_2+\dots+d_rU_r + \dots + d_mU_m \)。

在当前场景的解释上,由于 m<n 且行满秩 m=r, 那么 \( y = d_1U_1+d_2U_2+\dots+ d_m U_m \) 。

它乘以正交矩阵 \( U^T \) 结果是 \( U^Ty \),提取出 \( y \) 在 \( U \) 的列作为基的空间中的坐标系数,即 \( d = (d_1,d_2, \dots , d_m)^T \)

\( \Sigma^{+} \) 形状是 (n,m),前 n 行是对角矩阵,后 n-m 行是 0 。

乘以 \( \Sigma^{+} \) 后 d 的每个分量都乘以对应的 \( \frac{1}{\sigma_i} \), 但因为后 n-m 行是 0, 因此会得到

\( z = (d_1/\sigma_1,d_2/\sigma_2,\dots d_m/\sigma_m, 0,\dots,0)^T \)

这是个长度为 n 的系数向量。

之后乘以 V (范数不变)回到输入空间:

\[ (d_1/\sigma_1)V_1 + (d_2/\sigma_2)V_2 + \dots + (d_m/\sigma_m)V_m \]

而其中后 n-m 个分量对应的是零空间分量,全部被抛弃了。

哪一步是选择了范数最小的解呢?

这里要补充一个正交矩阵的性质,即向量乘以正交矩阵之后,范数是不变的, \( || U^Ty || = y^TUU^Ty = y^Ty = ||y||^2 \) 。 同样乘以 V 也不会改变范数。

因此最小范数的选择是乘以伪逆 \( \Sigma^+ \) 所蕴含的。

因为 \( \Sigma^+ \) 是 (n,m) 形状且 n>m,它的输出空间维度比输入空间维度更大,但伪逆的定义是后 n-m 为 0, 完全将其舍弃,这相当于舍弃了那些对最小二乘误差无贡献的自由度。

因为,所有解都可以统一写成 \[ w = V \begin{pmatrix} d_1/\sigma_1 \\ \vdots \\ d_m/\sigma_m \\ c_1 \\ \vdots \\ c_{n-m} \end{pmatrix}, \]

这里 \( Xw = U\Sigma V^T w \) , 代入后结果就是 y 。

其中 \( c_i \) 是任意的。这些参数会改变解的范数,而伪逆正是通过令所有 \(c_i=0\),唯一地给出了范数最小的那个解,这使得最终 w 只由 V 中行空间分量线性组合二成,即最小范数解是在 X 的行空间里。

6. 行列都不满秩情况

列满秩和行满秩情况下两种不同的几何解释对应的是相同的 \( V\Sigma^{+}U^Ty \) 方程,而即便行和列都不满秩,由于任何矩阵 X 都可以进行 SVD 分解,因此 \( V\Sigma^{+}U^T \) 永远存在,这被称为伪逆。

它给我们一个提示,任何 Xw=y 都可以得到一个 \( w^*=V\Sigma^{+}U^Ty \) 形式的解。

6.1. Xw=y 的正向解释

我们先对一般的 \( Xw=U\Sigma V^Tw \) 进行解释。

向量 \(w\in\mathbb{R}^n\) 可以写成行空间分量与零空间分量之和,即 \( c_1V_1+c_2V_2+\dots+c_rV_r + \dots + c_nV_n \)

它乘以正交矩阵 \( V^T \) 结果是 \( V^Tw \), 这相当于是提取出 w 在 V 的列作为基的空间中的坐标系数,即 \( c = (c_1,c_2\dots c_r, \dots c_n)^T \)

前 r 个系数是 w 在 X 的行空间的分量,后 n-r 个系数是 w 在 X 的零空间中的分量。

它继续乘以 \( \Sigma \) 得到 \( \Sigma c \) ,由于 \( \Sigma \) 中只有前 r 列是非 0 的,且维度是 (m,n) ,因此得到的是一个以下形式的长度为 m 的向量

\( z = (c_1\sigma_1,c_2\sigma_2,\dots c_r\sigma_r, 0,\dots)^T \)

这一步对 w 在 X 行空间的分量缩放,且通过补 0 的方式转到了 \( \mathbb{R}^m \) 空间,即只有 X 的列空间分量有实际贡献。

再左乘 U 之后是在 \( R^m \) 空间进行了一次基变换,完全用 X 的列的线性组合来表示,写成 \( c_1\sigma_1 U_1 + c_2\sigma_2 U_2 \dots c_r \sigma_r U_r \)

6.2. Xw=y 求逆的解释

现在反过来解释 \( w = V\Sigma^+ U^T y \)

向量 \(y\in\mathbb{R}^m\) 可以写成列空间分量与左零空间分量之和,即 \( d_1U_1+d_2U_2+\dots+d_rU_r + \dots + d_mU_m \)。

它乘以正交矩阵 \( U^T \) 结果是 \( U^Ty \),提取出 \( y \) 在 \( U \) 的列作为基的空间中的坐标系数,即 \( d = (d_1,d_2, \dots d_r + \dots + d_m)^T \)

\( \Sigma^{+} \) 形状是 (n,m),前 r 行和前 r 列是对角矩阵,其余都为 0.

乘以 \( \Sigma^{+} \) 后 d 的前 r 个分量乘以对应的 \( \frac{1}{\sigma_i} \), 但因为后 m-r 列是 0, 因此后 m-r 个系数被舍弃,这对应的是投影。

而又因为后 n-r 行是 0, 因此最后得到向量:

\( z = (d_1/\sigma_1,d_2/\sigma_2,\dots d_r/\sigma_r, 0,\dots,0)^T \)

这是个长度为 n 的系数向量,这 n-r 行置为 0 对应选择最小范数的解。

之后乘以 V 回到输入空间:

\[ (d_1/\sigma_1)V_1 + (d_2/\sigma_2)V_2 + \dots + (d_m/\sigma_m)V_m \]

注意,投影和选择最小范数逻辑上是有先后顺序的,我们必须先确定 y 的投影结果 y', 才能知道 Xw=y' 是否有解, 如果有无穷解,才能选择范数最小的哪个。

但在 SVD 实现中,这两步直接同时被 \( \Sigma^+ \) 合并为一次对角线缩放和置 0 。

这是因为 SVD 找到了一个好的坐标系,把这种依赖关系给解耦了,这是最为经典且可理解的表征选择的例子:

好的表征能够把一个串行、耦合的问题,变成若干互不干扰的独立问题。

总结来看:

  • 若 X 列满秩(\(r=n \le m\)),则零空间消失(后 \(n-r=0\)),最小范数选择步骤自动退化为唯一解,无需额外取舍;
  • 若 X 行满秩(\(r=m \le n\)),则列空间充满整个 \( \mathbb{R}^m \)(后 \(m-r=0\)),投影步骤退化为恒等变换,无误差地满足方程。
  • 若 X 是可逆方阵,直接求逆进行基变换,中间没有任何投影和选择(信息丢失),只是切换视角。

7. 不确定性和岭回归

如果只从数学的角度看, Xw=y 无解就可以去找投影向量,投影后还有多个解,那么找最小范数。

但从建模的角度看, X 和 y 都 是人搜集到的数据,它对于要解决的问题本身来说是有噪声的,比如人们记录的数据有笔误,或者测量结果就是有误差。

如果用伪逆去求解,那么相当于把不准确地 y 精确地投影到了不准确的 X 的列空间,然后再选出最小的 w ,这每一步都可能放大了最初的噪音。(注意尽管在 SVD 坐标系下是同时达到,但在一般坐标系下,必须先满足投影再最小化范数,是分阶段的,数学写法是 min \( \|w\| \quad s.t. \quad \min \|y-Xw\|^2 \))

伪逆的解 \( w^* = V \operatorname{diag} \left( \frac1{\sigma_i} \right) U^Ty \) 中,如果某个奇异值 \( \sigma_i \) 很小,那么解的数值会爆炸,而这个奇异值可能在精确的 X 下为 0 (为 0 的奇异值不会被求倒数),是噪声导致它有微小值,这里就把噪声急剧放大了。

因此一种思路是打破伪逆解形式中蕴含的两阶段优化方案,直接把两个要优化的目标融合成一个,这就得到岭回归:

\[ \hat{w} = \arg\min_{w} \left\{ \| \mathbf{y} - \mathbf{X}w \|_2^2 + \lambda \| w \|_2^2 \right\}, \quad \lambda > 0 \]

展开损失: \[ L(w) = (\mathbf{y} - \mathbf{X}w)^T(\mathbf{y} - \mathbf{X}w) + \lambda w^T w \]

w 求梯度并置零: \[ \frac{\partial L}{\partial w} = -2\mathbf{X}^T(\mathbf{y} - \mathbf{X}w) + 2\lambda w = 0 \]

整理得: \[ (\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I}) w = \mathbf{X}^T \mathbf{y} \]

最终封闭解为: \[ \hat{w} = (\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^T \mathbf{y} \]

它和左逆解的区别仅仅在于在 \( X^TX \) 上增加了一个 \( \lambda I \), 我们来分析其可逆性:

设 \(\mu\) 为 \(\mathbf{X}^T\mathbf{X}\) 的任意一个特征值,对应的特征向量为 \(v \neq 0\)。

因为 \(\mathbf{X}^T\mathbf{X}\) 是**半正定矩阵,所以它的所有特征值均满足 \( \mu \ge 0 \)

矩阵 \((\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})\),作用在特征向量 \(v\) 上: \[ (\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})v = \mathbf{X}^T\mathbf{X}v + \lambda v = \mu v + \lambda v = (\mu + \lambda)v \]

这说明 \((\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I})\) 和 \( X^TX \) 有有相同特征向量,但特征值是 \(\mu + \lambda\)。

因为 \(\mu \ge 0\) 且 \(\lambda > 0\),所以: \[ \mu + \lambda > 0 \]

所有特征值都严格大于 0,因此该矩阵是正定矩阵。正定矩阵必然是非奇异的(行列式不为 0),所以一定可逆。

因此岭回归的这个解不需要考虑 X 的秩的情况,总是成立。

7.1. SVD 的解释

将 SVD 分解替换 X:

\[ \hat{w} = (V \Sigma^T \Sigma V^T + \lambda \mathbf{I})^{-1} V \Sigma^T U^T y \]

\( \Sigma^T\Sigma \) 写成 \( \Sigma^2 \) ,并利用正交性 \( \mathbf{I} = VV^T \) 和矩阵乘法结合率: \[ V \Sigma^2 V^T + \lambda \mathbf{I} = V (\Sigma^2 + \lambda \mathbf{I}) V^T \]

其逆为: \[ (V (\Sigma^2 + \lambda \mathbf{I}) V^T)^{-1} = V (\Sigma^2 + \lambda \mathbf{I})^{-1} V^T \]

得到: \[ \hat{w} = V (\Sigma^2 + \lambda \mathbf{I})^{-1} \Sigma^T U^T y \]

\( \Sigma^2 + \lambda \mathbf{I} \) 是 nxn 的对角矩阵,前 r 个对角元为 \(\sigma_i^2+\lambda\),后 n-r 个对角元为 \(\lambda\)。其逆是 \(n\times n\) 对角阵,前 r 个对角元为 \(1/(\sigma_i^2+\lambda)\),后 n-r 个为 \(1/\lambda\)。

\(\Sigma^T\) 是 \(n\times m\) 矩阵,只有左上角 \(r\times r\) 块是非零对角元 \(\sigma_i\),其余位置全为 0。

二者相乘 \((\Sigma^T\Sigma + \lambda I)^{-1} \cdot \Sigma^T\) 是一个 \(n\times m\) 矩阵。由于 \((\Sigma^T\Sigma + \lambda I)^{-1}\) 是对角阵,它只会缩放 \(\Sigma^T\) 中每一行的非零元素。

  • 对于前 r 行:第 i 行的非零元是第 i 列的 \(\sigma_i\),乘以 \(1/(\sigma_i^2+\lambda)\),得到 \(\sigma_i/(\sigma_i^2+\lambda)\)。
  • 对于后 n-r 行:\(\Sigma^T\) 在这些行上全为零,即使对角元是 \(1/\lambda\),乘上 0 后依然为 0。

因此最终得到的 \(n\times m\) 矩阵,只有前 \(r\) 个对角位置非零,值为 \(\sigma_i/(\sigma_i^2+\lambda)\),其余位置全为 0。

最终为:

\[ \boxed{\hat{w} = V \cdot \text{diag}\left( \frac{\sigma_i}{\sigma_i^2 + \lambda} \right) \cdot U^T y} \]

它和普通二阶段优化的线性回归形式的区别仅仅在于把 \( \text{diag}(\frac{1}{\sigma_i}) \) 变成了 \( \text{diag}(\frac{\sigma_i}{\sigma_i^2 + \lambda}) \), 将该矩阵记为 \( \Sigma^{\lambda} \)

向量 \(y\in\mathbb{R}^m\) 可以写成列空间分量与左零空间分量之和,即 \( d_1U_1+d_2U_2+\dots+d_rU_r + \dots + d_mU_m \)。

乘以正交矩阵 \( U^T \) 提取出 \( y \) 在 \( U \) 的列作为基的空间中的坐标系数,即 \( d = (d_1,d_2, \dots d_r + \dots + d_m)^T \)

\( \Sigma^{+} \) 形状是 (n,m),前 r 行和前 r 列是对角矩阵,其余都为 0.

乘以 \( \Sigma^{\lambda} \) 后 d 的前 r 个分量乘以对应的 \( \frac{\sigma_i}{\sigma_i^2+\lambda} \), 但因为后 m-r 列是 0, 因此后 m-r 个系数被舍弃,这对应的是投影。

而又因为后 n-r 行是 0, 因此最后得到向量:

\( z = (\frac{d_1\sigma_1}{(\sigma_1^2+\lambda)},\frac{d_2\sigma_1}{(\sigma_1^2+\lambda)},\dots \frac{d_r\sigma_r}{(\sigma_r^2+\lambda)}, 0,\dots,0)^T \)

这是个长度为 n 的系数向量,这 n-r 行置为 0 对应选择最小范数的解。

之后乘以 V 回到输入空间,最终解 w 还是在 X 的行空间里。

注意,这里还是有投影,还是有最小范数的选择,修正部分出现奇异值上,行空间内各主成分方向的缩放因子从 \(1/\sigma_i\) 变成了 \(\sigma_i/(\sigma_i^2+\lambda)\) ,此时即便 \( \sigma_i \) 是噪音或固有的很小的值,选择适当的 \( \lambda \) 也可以起到平滑的作用,使得噪声不会被倒数放大,更具体的:

  • 当 \( \sigma_i \gg \lambda \) 时,回到一般线性回归解:对于噪声不明显的特征方向,还是遵循一般逆变换过程。
  • 当 \( \sigma_i \ll \lambda \) 时,\( \frac{\sigma_i}{\sigma_i^2+\lambda} \approx \frac{\sigma_i}{\lambda} \to 0 \) ,这意味着,对于很小的 \( \sigma \), 原本被急剧放大,这里则被压制,可以解释为忽视数据中不显著的特征,这使得模型更不容易过拟合,因为那些不显著的特征很可能是噪音而非信号,注意这个解释比奥卡姆剃刀或者控制模型容量更加具有说服力,来自严格的数学推导。
radioLinkPopups

如对本文有任何疑问,欢迎通过 github issue 邮件 metaescape at foxmail dot com 进行反馈