在真实数据里,矩阵往往既不方、也不满秩:特征相关、样本不足、噪声导致的病态都会让“求逆”这件事变得不稳定甚至不存在。伪逆( Moore – Penrose inverse)可以把“逆”的直觉保留下来:它不追求完美解,而是把线性方程组的解定义成一个最合理的最小二乘解(并在多解时选最小范数那一个),因此在回归、控制、信号处理里非常常见。本文会从最小二乘视角给出伪逆的定义与四个 Penrose 条件,再用 SVD 把它的计算与低秩近似联系起来,解释为什么截断奇异值能让解更稳、什么时候需要正则化,以及这些结论在机器学习里怎么落地使用。
什么是伪逆?
对于给定的矩阵
伪逆通过以下优化问题定义:
其中:
是我们希望计算伪逆的矩阵。 是目标矩阵。 表示 Frobenius 范数,定义为:
简单来说,伪逆通过最小化矩阵乘积
Frobenius 范数
在进一步讨论伪逆之前,我们首先要了解一下 Frobenius 范数,这是矩阵优化问题中广泛使用的工具。
对于矩阵
它也可以通过矩阵的迹来表示:
其中
为什么将矩阵
的每个元素平方然后求和等价于求 的迹? 事实上,当我们计算
的对角线元素时,这些元素是 中每一行向量与自己相乘得到的平方和(即内积),所以最终结果相当于对每个元素的平方求和。通过这个公式可以看到 Frobenius 范数实际上是矩阵乘法结果中对角线元素之和的平方根,这与直接将矩阵元素平方求和再开平方的结果是一样的。
Frobenius 范数可以看作是欧几里得范数在矩阵上的推广,将矩阵的元素视为向量的元素来计算。
优化视角
从优化的角度来看,伪逆可以通过以下问题来定义:
这个问题的本质是寻找一个
$$
A^+ = _B | AB - I |_F^2 $$
同样地,左伪逆也可以通过类似的方式定义。
求解伪逆
为了解决上述优化问题,我们对目标函数求导:
令其等于零,得到:
$$
A^T (AB - M) = 0 $$
解得:
$$
B = (A^T A)^{-1} A^T M $$
当
$$
A^+ = (A^T A)^{-1} A^T $$
一般形式
对于不满秩的矩阵
$$
A^+ = _{} (A^T A + I)^{-1} A^T $$
这被称为Tikhonov 正则化或岭回归。
为了证明
的不可逆性
矩阵
引入正则化项
为了保证矩阵
需要证明
可逆性证明(三种方法)
正定性
首先,我们知道矩阵
考虑任意向量
$$
x^T (A^T A + I) x = x^T A^T A x + x^T I x = |Ax|_2^2 + |x|_2^2 $$
其中
$$
x^T (A^T A + I) x = |Ax|_2^2 + |x|_2^2 > 0 x $$
这表明
特征值的变化
假设
由于
行列式不为零
可逆矩阵的充要条件是行列式不为零。行列式可以通过特征值的乘积来计算:
由于
伪逆的性质
伪逆具有以下重要性质: 1. 对称性:
奇异值分解( SVD)与伪逆
伪逆的一个强大计算方法是通过奇异值分解(
SVD)。对于任意矩阵
$$
A = U V^T $$
其中:
和 是正交矩阵。 是包含 的奇异值的对角矩阵。
伪逆可以通过 SVD 计算为:
$$
A^+ = V ^+ U^T $$
其中
示例
考虑矩阵:
$$
A =$$
通过 SVD 分解
$$
A = U V^T $$
然后通过取
1 | import numpy as np |
伪逆的应用
线性系统求解
伪逆在求解无唯一解的线性方程组时尤为有效。对于线性方程组
$$
x = A^+ b $$
低秩近似
在机器学习中,伪逆常用于低秩矩阵近似,例如在主成分分析( PCA)中,通过伪逆找到最优投影,将高维数据压缩到低维。
控制理论
在控制系统中,伪逆用于设计控制器,即使系统可能不可完全控制或观测。伪逆通过最小二乘方法计算控制规律,从而减少误差。
数值稳定性与计算考虑
数值不稳定性的来源
在计算伪逆时,最常用的方法是通过奇异值分解 (SVD)。
SVD 将矩阵分解为三个部分:正交矩阵
问题在于,当某些奇异值
- 计算误差被放大。
- 最终结果不准确甚至可能溢出。
举个例子,假设有一个矩阵
这意味着与小奇异值对应的反转操作会导致非常大的数值。这些数值将导致在后续的矩阵乘法中产生巨大的计算误差。
Tikhonov 正则化:数值稳定性的方法
为了解决奇异值非常小时的数值不稳定问题,可以引入Tikhonov
正则化(也称为岭回归)。其核心思想是在计算过程中人为地增加一个小的正则化项
正则化方法通过修改原始问题来改善数值稳定性。通常的做法是修改伪逆计算公式,将伪逆表示为:
$$
A^+ = _{} (A^T A + I)^{-1} A^T $$
其中
数值稳定性的来源
通过添加
正则化的影响
在计算伪逆时,正则化项
- 如果
过大,正则化效果会过强,导致伪逆的解偏离实际的解。 - 如果
过小,则无法有效改善数值不稳定性。
因此,选择适当的
示例:使用正则化计算伪逆
假设我们有矩阵
1 | import numpy as np |
结论
伪逆是逆矩阵的推广,适用于更广泛的矩阵类型,包括非方阵或不可逆矩阵。它在优化、机器学习和控制理论中具有重要应用。通过奇异值分解,可以高效计算伪逆,并将其应用于实际问题。
参考文献
- 本文标题:矩阵低秩近似 —— 伪逆
- 本文作者:Chen Kai
- 创建时间:2020-12-03 09:00:00
- 本文链接:https://www.chenk.top/%E7%9F%A9%E9%98%B5%E4%BD%8E%E7%A7%A9%E8%BF%91%E4%BC%BC-%E2%80%94%E2%80%94-%E4%BC%AA%E9%80%86/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!