本文主要介绍矩阵的两种经典的分解算法:满秩分解和奇异值分解。这两块内容非常基础,同时却又非常重要,在机器学习,模式识别,人工智能等领域有着非常广泛的应用。
满秩分解
定义与性质
定义1 满秩分解:对于 m×n m × n 的矩阵 A A ,假设其秩为 ,若存在秩同样为 r r 两个矩阵: (列满秩)和 Gr×n G r × n (行满秩),使得 A=FG A = F G ,则称其为矩阵 A A 的满秩分解。
定理1:满秩分解有两个性质,
- 满秩分解不唯一:假设存在
阶可逆方阵 D D ,则
;
- 任何非零矩阵一定存在满秩分解。证明如下;
假设存在初等变换矩阵 Bm×m B m × m ,使得
BA=(GO)(1) (1) B A = ( G O )其中 G G 是个 的行满秩矩阵。由上面的公式,可以推出,
A=B−1(GO)=(F|S)(GO)=FG(2) (2) A = B − 1 ( G O ) = ( F | S ) ( G O ) = F G公式第二行中,我们将 B−1 B − 1 分块为 (F|S) ( F | S ) ,其中 F F 为 矩阵(秩为 r r ), 为 r×n r × n 矩阵(秩为 r r )。
满秩分解的计算
如果能理解上面的证明过程,那么计算满秩分解就很容易了,因为方法与证明思路是一致的。
举个例子来说明,现在要计算下面矩阵 的满秩分解:
A=⎛⎝⎜−1120221−1−221−1⎞⎠⎟(3) (3) A = ( − 1 0 1 2 1 2 − 1 1 2 2 − 2 − 1 )首先,对 A A 进行初等变换,得到行满秩矩阵 和初等矩阵 B B .
可见,
B=⎛⎝⎜11101−1001⎞⎠⎟,G=(−10021023)(5) (5) B = ( 1 0 0 1 1 0 1 − 1 1 ) , G = ( − 1 0 1 2 0 2 0 3 )接着,可以算出
B−1=⎛⎝⎜1−1−2011001⎞⎠⎟=(F|S)(6) (6) B − 1 = ( 1 0 0 − 1 1 0 − 2 1 1 ) = ( F | S )因为 r=2 r = 2 ,所以可以得到
F=⎛⎝⎜1−1−2011⎞⎠⎟(7) (7) F = ( 1 0 − 1 1 − 2 1 )因此
A=FG=⎛⎝⎜1−1−2011⎞⎠⎟⋅(−10021023)(8) (8) A = F G = ( 1 0 − 1 1 − 2 1 ) ⋅ ( − 1 0 1 2 0 2 0 3 )另一种计算满秩分解的方法是用矩阵 A A 的Hermite标准型。具体做法如下。
Hermite标准型
先给出Hermite标准型的定义。
定义2 Hermite标准型:对于 的矩阵 H H ,假设其秩为 ,若 H H 满足以下3个条件,则称之为Hermite标准型。
- 的前 r r 行中,每行都至少含一个非零元素,且每行的第一个非零元是1,而后 行都是零元;
- 假设第 i i 行的第一个非零元(就是1)在第 列,则 j1<j2<⋯<jr j 1 < j 2 < ⋯ < j r ;
- H H 的 列是单位矩阵 Em E m 的前 r r 行(这个条件实际上覆盖了前2个条件);
由定义可以看出Hermite标准型就是将秩为 的 m×n m × n 矩阵经初等变换而成的阶梯型矩阵。所以也叫做Hermite最简型。
算出Hermite标准型后,对于矩阵的满秩分解 A=FG A = F G 来说,矩阵 F F 就是矩阵