k阶子式
k阶子式是线性代数中用来描述矩阵局部行列式的概念。简单说:从\(m\times n\)矩阵中任取k行、k 列,交叉位置的元素按原顺序组成一个\(m\times n\) 矩阵,它的行列式就叫一个 k阶子式,通常记作\(D_k\)。
设矩阵 \(A\) 是 \(m\times n\) 的。任选 \(k\) 行(比如第 \(i_1,i_2,\dots,i_k\) 行)和 \(k\) 列(比如第 \(j_1,j_2,\dots,j_k\) 列),由这些行和列交叉处的元素组成的 \(k\times k\) 行列式:
\[D_k = \begin{vmatrix} a_{i_1 j_1} & a_{i_1 j_2} & \cdots & a_{i_1 j_k} \\ a_{i_2 j_1} & a_{i_2 j_2} & \cdots & a_{i_2 j_k} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i_k j_1} & a_{i_k j_2} & \cdots & a_{i_k j_k} \end{vmatrix}\]就称为矩阵A的一个 k阶子式。
- k的范围:\(1 \le k \le \min(m,n)\)。
- 当k = min(m,n)时,称为最高阶子式。
- 一共有 \(\binom{m}{k}\binom{n}{k}\) 个不同的 \(k\) 阶子式(按位置区分)。
矩阵的秩是线性代数中最核心的概念之一。它衡量的是矩阵所包含的“有效信息量”,或者说矩阵的行(列)向量组中线性无关向量的最大个数。
下面我从定义、计算、性质和直观意义四个层面帮你彻底理清。
矩阵的秩
矩阵 \(A_{m\times n}\) 的秩,记作 r(A) 或 rank(A)。
定义1:矩阵中最高阶非零子式的阶数。 如果存在某个 r 阶子式不为 0,而所有 r+1 阶子式(如果存在)全为 0,那么 r(A)=r。
注:r阶子式不为0指的是r阶子式的行列式值不为0。
定义2:矩阵的行向量组(或列向量组)中,线性无关向量的最大个数。
这两个定义是等价的,一个从行列式角度,一个从向量组角度,描述的是同一件事。
基本性质
| 性质 | 说明 |
|---|---|
| \(0 \le r(A) \le \min(m,n)\) | 秩不超过行数和列数的较小者 |
| \(r(A)=0\) | 当且仅当 \(A\) 是零矩阵 |
| \(r(A)=m\) | 行满秩(行向量组线性无关) |
| \(r(A)=n\) | 列满秩(列向量组线性无关) |
| \(r(A)=m=n\) | 满秩,此时 \(A\) 可逆,\(|A|\neq0\) |
| \(r(A)=r(A^T)\) | 转置不改变秩 |
| \(r(AB)\le\min(r(A),r(B))\) | 乘积的秩不超过各因子的秩 |
| 初等变换不改变秩 | 这是行变换法求秩的依据/计算方法 |
秩的几何意义
向量组视角
把矩阵的每一行看成一个向量。如果第3行是第1行和第2行的线性组合,那第3行就是多余的,不贡献新信息。秩就是真正独立、不冗余的行向量个数。
方程组视角
对于线性方程组 Ax=b,令 r(A) = 系数矩阵的秩,\(r(A \mid b)\) = 增广矩阵的秩,那么可以得到:
\(r(A) < r(A\mid b)\):方程组矛盾无解
\(r(A) = r(A\mid b)\) = n:有唯一解
\(r(A) = r(A\mid b)\) < n:方程组有自由变量,存在有无穷多解
将线性方程组的增广矩阵化为行最简形后,主元列对应的变量称为主变量(或约束变量),非主元列对应的变量称为自由变量。自由变量的个数 = 未知数个数n − 系数矩阵的秩 r(A)。
下面用最简短的例子分别说明三种情况。设未知数个数为 \(n\)。
1) 无解
方程组: \(\begin{cases} x+y=1\\ x+y=2 \end{cases}\)
矩阵形式: \(A=\begin{pmatrix}1&1\\1&1\end{pmatrix},\quad b=\begin{pmatrix}1\\2\end{pmatrix}\)
增广矩阵: \((A|b)=\begin{pmatrix}1&1&1\\1&1&2\end{pmatrix}\)
\(r(A)=1,r(A\mid b)=2,r(A) < r(A\mid b)\),无解。
2) 有唯一解
方程组: \(\begin{cases} x+y=3\\ x-y=1 \end{cases}\)
矩阵形式: \(A=\begin{pmatrix}1&1\\1&-1\end{pmatrix},\quad b=\begin{pmatrix}3\\1\end{pmatrix}\)
增广矩阵: \((A|b)=\begin{pmatrix}1&1&3\\1&-1&1\end{pmatrix}\)
\(r(A)=2,r(A\mid b)=2,未知数个数 n=2,r(A)=r(A\mid b)=n=2\),所以 有唯一解:x=2, y=1。
3) 有无穷多解
方程组: \(\begin{cases} x+y=1\\ 2x+2y=2 \end{cases}\)
矩阵形式: \(A=\begin{pmatrix}1&1\\2&2\end{pmatrix},\quad b=\begin{pmatrix}1\\2\end{pmatrix}\)
增广矩阵: \((A|b)=\begin{pmatrix}1&1&1\\2&2&2\end{pmatrix}\)
\(r(A)=1,r(A\mid b)=1\),未知数个数 n=2,因为 \(r(A)=r(A\mid b)=1<n=2\),所以 有无穷多解。
空间视角
- \(r(A)\) 等于矩阵列空间的维数,也等于行空间的维数。
- \(n - r(A)\) 等于零空间(解空间)的维数,即自由变量的个数。
矩阵的低秩分解-LORA(Low-rank Matrix Factorization)
矩阵的低秩分解是一种将一个矩阵近似表示为两个(或多个)低秩矩阵乘积的技术。其核心思想是:很多实际应用中的高维矩阵,其内在结构可以用较少的隐含因子来解释,因此可以用低秩矩阵来近似原始矩阵,从而实现数据压缩、去噪、缺失值填补、推荐系统等功能。
基本概念
设有一个矩阵 \(A \in \mathbb{R}^{m \times n}\),它的秩为 \(r = \text{rank}(A)\)。低秩分解的目标是找到两个矩阵 \(U \in \mathbb{R}^{m \times k}\) 和 \(V \in \mathbb{R}^{k \times n}\),使得:
\[A \approx UV\]其中 \(k \ll \min(m, n)\),即 k 远小于矩阵的行数和列数,此时 UV 的秩最多为 k,称为低秩近似。
方法1-奇异值分解(SVD)
对任意实矩阵 A,其 SVD 为:
\[A = U \Sigma V^\top\]其中 U 和 V 是正交矩阵,\(\Sigma\) 是对角矩阵,对角线元素为奇异值 \(\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r > 0\)。
最佳秩-k 近似(在 Frobenius 范数或谱范数意义下)由截断 SVD 给出:
\[A_k = \sum_{i=1}^k \sigma_i u_i v_i^\top = U_k \Sigma_k V_k^\top\]这是一种低秩分解。理论上的最优解,缺点是计算复杂度高,且要求矩阵完整不能有缺失值。
方法2-矩阵分解(Matrix Factorization, MF)
常用于推荐系统(如 Netflix、电商推荐)。假设用户-物品评分矩阵 \(R \in \mathbb{R}^{m \times n}\) 很大很稀疏,我们希望找到:
\[R_{ij} \approx (U V)_{ij} = \mathbf{u}_i^\top \mathbf{v}_j\]其中:
- \(\mathbf{u}_i \in \mathbb{R}^k\):用户 i 的隐向量(latent factor)
- \(\mathbf{v}_j \in \mathbb{R}^k\):物品 j 的隐向量
通过最小化已知评分的误差(如平方损失)并加入正则项:
\[\min_{U,V} \sum_{(i,j) \in \Omega} (R_{ij} - \mathbf{u}_i^\top \mathbf{v}_j)^2 + \lambda (\|U\|_F^2 + \|V\|_F^2)\]其中 \(\Omega\) 是已观测到的评分位置集合。
优点是可以处理缺失数据,适合大规模稀疏矩阵,缺点是非凸优化,可能陷入局部最优。
方法3-非负矩阵分解(NMF)
如果要求所有元素非负(如图像、文本词频),可使用 NMF:
\[A \approx WH, \quad W \ge 0, H \ge 0\]常用于主题建模、图像部件提取等。
应用场景
| 应用领域 | 说明 |
|---|---|
| 推荐系统 | 用户-物品交互矩阵低秩近似,预测未评分项 |
| 图像处理 | 图像压缩、去噪(图像可视为矩阵) |
| 自然语言处理 | 词-文档矩阵分解(如 LSA/LSI) |
| 数据降维 | 用低维隐空间表示高维数据 |
| 系统识别/控制 | 系统传递函数的低阶近似 |
想象一个电影评分表(用户 vs 电影),虽然表格很大(比如 100 万用户 × 1 万部电影),但用户的偏好其实由少数几个因素决定,比如“喜欢动作片”、“讨厌恐怖片”、“偏好老电影”等。这些就是隐因子(latent factors)。低秩分解就是试图从已有评分中自动学习这些隐因子,并用它们重建整个评分矩阵。