LoRA微调大模型 - 从主元 pivot 的角度看矩阵的秩
LoRA微调大模型 - 从主元 pivot 的角度看矩阵的秩
flyfish
LoRA微调大模型 - 从方程组的角度看矩阵的秩
主元 (pivot )是经过一系列初等行变换将矩阵化为行阶梯形(row echelon form)或行最简形(reduced row echelon form)后,每行中第一个非零元素。
每个矩阵中的主元是什么
例1:简单的行阶梯形矩阵
考虑以下矩阵 A A A:
A = ( 1 2 3 0 4 5 0 0 6 ) A = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 4 & 5 \\ 0 & 0 & 6 \end{pmatrix} A= 100240356
在这个矩阵中:
- 第一行的第一个非零元素是 1。
- 第二行的第一个非零元素是 4。
- 第三行的第一个非零元素是 6。
因此,主元分别是 1, 4, 和 6。
例2:包含全零行的矩阵
考虑以下矩阵 B B B:
B = ( 1 2 3 0 0 0 0 5 6 ) B = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 5 & 6 \end{pmatrix} B= 100205306
在这个矩阵中:
- 第一行的第一个非零元素是 1。
- 第二行是全零行,没有主元。
- 第三行的第一个非零元素是 5。
因此,主元分别是 1 和 5。注意,第二行没有主元,因为它是全零行。
例3:更复杂的矩阵
考虑以下矩阵 C C C:
C = ( 0 2 3 1 4 5 0 0 6 ) C = \begin{pmatrix} 0 & 2 & 3 \\ 1 & 4 & 5 \\ 0 & 0 & 6 \end{pmatrix} C= 010240356
为了将其化为行阶梯形,我们首先交换第一行和第二行:
C ′ = ( 1 4 5 0 2 3 0 0 6 ) C' = \begin{pmatrix} 1 & 4 & 5 \\ 0 & 2 & 3 \\ 0 & 0 & 6 \end{pmatrix} C′= 100420536
在这个矩阵中:
- 第一行的第一个非零元素是 1。
- 第二行的第一个非零元素是 2。
- 第三行的第一个非零元素是 6。
因此,主元分别是 1, 2, 和 6。
例4:需要进一步变换的矩阵
考虑以下矩阵 D D D:
D = ( 1 2 3 2 4 6 3 6 9 ) D = \begin{pmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 3 & 6 & 9 \end{pmatrix} D= 123246369
为了将其化为行阶梯形,我们进行以下变换:
- 将第二行减去第一行的 2 倍:
R 2 ← R 2 − 2 ⋅ R 1 R_2 \leftarrow R_2 - 2 \cdot R_1 R2←R2−2⋅R1
( 1 2 3 0 0 0 3 6 9 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 3 & 6 & 9 \end{pmatrix} 103206309 - 将第三行减去第一行的 3 倍:
R 3 ← R 3 − 3 ⋅ R 1 R_3 \leftarrow R_3 - 3 \cdot R_1 R3←R3−3⋅R1
( 1 2 3 0 0 0 0 0 0 ) \begin{pmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} 100200300
在这个矩阵中:
- 第一行的第一个非零元素是 1。
- 第二行和第三行都是全零行,没有主元。
因此,主元只有 1。
例5:已经处于简化行阶梯形的矩阵
考虑以下矩阵 E E E:
E = ( 1 0 0 0 1 0 0 0 1 ) E = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} E= 100010001
在这个矩阵中:
- 第一行的第一个非零元素是 1。
- 第二行的第一个非零元素是 1。
- 第三行的第一个非零元素是 1。
因此,主元分别是 1, 1, 和 1。
引用Gilbert Strang《Introduction to Linear Algebra》的说法
数字 m m m和 n n n给出了矩阵的大小,但不一定给出线性系统的真实大小。像 0 = 0 0 = 0 0=0这样的方程不应该被计算在内。如果在矩阵 A A A中有两行完全相同,那么在消元过程中第二行将会消失。同样,如果第三行是第一行和第二行的组合,那么在三角矩阵 U U U以及行最简形 R R R中,第三行将变为全零行。我们不希望计算零行。矩阵 A A A的真实大小由它的秩给出。
秩的定义:矩阵 A A A的秩是主元的数量。这个数量用 r r r表示。
这个定义是从计算的角度给出的,我想对秩 r r r再多说一些。最终的矩阵 R R R将有 r r r个非零行。从一个 3 × 4 3\times4 3×4且秩 r = 2 r = 2 r=2的例子开始:有四列的矩阵 A = [ 1 1 2 4 1 2 2 5 1 3 2 6 ] A=\begin{bmatrix}1&1&2&4\\1&2&2&5\\1&3&2&6\end{bmatrix} A= 111123222456 ,它的行最简形为 R = [ 1 0 2 3 0 1 0 1 0 0 0 0 ] R=\begin{bmatrix}1&0&2&3\\0&1&0&1\\0&0&0&0\end{bmatrix} R= 100010200310 。
矩阵 A A A和 R R R的秩是 2 2 2