【理解线性代数】(四)线性运算的推广与矩阵基础

1. 数值加法和乘法

数值加法与乘法,是小学数学课程中的基本数学运算。例如:

加法:1+1=2
乘法:2*2=4

在这个知识层次下,运算的基本单位是数字。

2. 从数值到向量

数值加法,可以看作一维空间中的向量加法,即:

加法:(1) + (1) = (2)

数值乘法,可以看作一维空间中的向量乘法,即:

乘法:(2) * (2) = 2 * 2 * cos(0) = 4

通过将数值推广成一维向量,实现了数值和向量概念的统一。在这个知识层次下,向量是运算的基本单位。

3. 向量到矩阵

向量加法和乘法,总是两两进行运算,这种运算比较简单。

现实应用中,往往需要对很多向量组成的向量集合进行批量运算,向量批量运算有何规律?为了研究向量的批量运算,需要将一个向量集合视为一个整体,这个整体看起来是矩形的数字阵列,所以叫做 矩阵。例如下图是一个矩阵,此矩阵由 (a, b, c) 和 (d, e, f) 两个三维向量组成:
( a b c d e f ) \begin{pmatrix} a & b & c\\ d & e & f \end{pmatrix} (adbecf)

矩阵的行数表示向量个数,矩阵的列数表示向量的维度。

目前,矩阵仅仅表示多个向量的组合,没有其他任何含义,不需要想得太复杂。

下面将根据我们自己的理解,对矩阵运算规则进行推导,然后再和教科书上的运算规则进行比对,从而验证我们的理论。

3.1 矩阵加法

矩阵加法含义很简单,就是一组向量加上另外一组向量,对应位置的向量相加即可。因为向量相加,必须在两个向量之间进行,所以矩阵相加,两个相加的矩阵包含的向量个数必须相等,否则会因为缺少向量而无法进行。

可以正确进行的矩阵加法如下:
( a 1 b 1 c 1 d 1 e 1 f 1 ) + ( a 2 b 2 c 2 d 2 e 2 f 2 ) = ( a 1 + a 2 b 1 + b 2 c 1 + c 2 d 1 + d 2 e 1 + e 2 f 1 + f 2 ) \begin{pmatrix} a1 & b1 & c1\\ d1 & e1 & f1 \end{pmatrix} + \begin{pmatrix} a2 & b2 & c2\\ d2 & e2 & f2 \end{pmatrix} = \begin{pmatrix} a1+a2 & b1+b2 & c1+c2\\ d1+d2 & e1+e2 & f1+f2 \end{pmatrix} (a1d1b1e1c1f1)+(a2d2b2e2c2f2)=(a1+a2d1+d2b1+b2e1+e2c1+c2f1+f2)

无法进行的矩阵加法如下:
( a 1 b 1 c 1 d 1 e 1 f 1 ) + ( a 2 b 2 c 2 ) = 非法 \begin{pmatrix} a1 & b1 & c1\\ d1 & e1 & f1 \end{pmatrix} + \begin{pmatrix} a2 & b2 & c2 \end{pmatrix} = 非法 (a1d1b1e1c1f1)+(a2b2c2)=非法

3.2 矩阵乘法

下面从简单向复杂推导矩阵乘法运算规则。

3.2.1 1行3列矩阵 * 1行3列矩阵

设矩阵A:
A = ( a 1 b 1 c 1 ) A= \begin{pmatrix} a1 & b1 & c1 \end{pmatrix} A=(a1b1c1)

和矩阵B
B = ( a 2 b 2 c 2 ) B= \begin{pmatrix} a2 & b2 & c2 \end{pmatrix} B=(a2b2c2)

进行乘法运算,因为只有两个向量,可以尝试将这两个向量进行点乘运算,即:
A ∗ B = a 1 a 2 + b 1 b 2 + c 1 c 2 = ( a 1 a 2 + b 1 b 2 + c 1 c 2 ) A * B = a1a2 + b1b2 + c1c2 = (a1a2 + b1b2 + c1c2) AB=a1a2+b1b2+c1c2=(a1a2+b1b2+c1c2)

结果是一个数值,也可以看作是一个一维向量。

矩阵A包含1个3维向量,矩阵B包含1个三维向量,矩阵B可以代表三维空间中的一个一维空间,所以A中的所有向量投影到B,最终的结果变成了一个一维向量,符合我们对向量点乘及矩阵的理解。

3.2.2 2行3列矩阵 * 1行3列矩阵

增加矩阵A的行数,设矩阵A:
A = ( a 1 b 1 c 1 d 1 e 1 f 1 ) A= \begin{pmatrix} a1 & b1 & c1 \\ d1 & e1 & f1 \end{pmatrix} A=(a1d1b1e1c1f1)

和矩阵B
B = ( a 2 b 2 c 2 ) B= \begin{pmatrix} a2 & b2 & c2 \end{pmatrix} B=(a2b2c2)

进行乘法运算,尝试分别进行点乘运算,B跑过去乘A,结果写在A中向量对应的位置,即:
A ∗ B = ( a 1 a 2 + b 1 b 2 + c 1 c 2 d 1 a 2 + b 1 b 2 + c 1 c 2 ) A * B = \begin{pmatrix} a1a2 + b1b2 + c1c2 \\ d1a2 + b1b2 + c1c2 \end{pmatrix} AB=(a1a2+b1b2+c1c2d1a2+b1b2+c1c2)

结果矩阵是一个2行1列的矩阵。

矩阵A包含2个3维向量,矩阵B包含1个三维向量,矩阵B可以代表三维空间中的一个一维空间,所以A中的所有向量投影到B,最终的结果变成了2个一维向量,符合我们对向量点乘及矩阵的理解。

3.2.3 2行3列矩阵 * 2行3列矩阵

设矩阵A:
A = ( a 1 b 1 c 1 d 1 e 1 f 1 ) A= \begin{pmatrix} a1 & b1 & c1 \\ d1 & e1 & f1 \end{pmatrix} A=(a1d1b1e1c1f1)

和矩阵B
B = ( a 2 b 2 c 2 d 2 e 2 f 2 ) B= \begin{pmatrix} a2 & b2 & c2 \\ d2 & e2 & f2 \end{pmatrix} B=(a2d2b2e2c2f2)

进行乘法运算,尝试分别进行点乘运算,即:
A ∗ B = ( a 1 a 2 + b 1 b 2 + c 1 c 2 a 1 d 2 + b 1 e 2 + c 1 f 2 d 1 a 2 + e 1 b 2 + f 1 c 2 d 1 d 2 + e 1 e 2 + f 1 f 2 ) A * B = \begin{pmatrix} a1a2 + b1b2 + c1c2 & a1d2+b1e2+c1f2\\ d1a2 + e1b2 + f1c2 & d1d2+e1e2+f1f2 \end{pmatrix} AB=(a1a2+b1b2+c1c2d1a2+e1b2+f1c2a1d2+b1e2+c1f2d1d2+e1e2+f1f2)

结果矩阵是一个2行2列的矩阵。

矩阵A包含2个3维向量,矩阵B包含2个三维向量,矩阵B可以代表三维空间中的一个二维平面空间(两条线组成一个面),所以A中的所有向量投影到B,最终的结果变成了2个2维向量,符合我们对向量点乘及矩阵的理解。

3.2.4 矩阵不能相乘的情况

如果两个矩阵列数不同,也就是维度不同,还能相乘吗?

不能,因为向量点乘要求两个向量具有相同的维度,如果两个矩阵列数不同,矩阵中的向量互相无法进行点乘。不同维度的向量,坐标个数不一样,无法做乘法。

3.2.5 推广


A ∗ B = C A * B = C AB=C
为例。

只要矩阵A和矩阵B的列数相同,不管矩阵A、矩阵B各自有多少行,都可以进行相乘。并且有:

  • 结果矩阵C包含的向量个数和A中的向量个数相同,投影过程是一个线性变换,向量个数不会增加也不会减少,故投影前后向量个数不变。
  • 结果矩阵C的向量维度和矩阵B的维度相同,因为矩阵C包含的向量,是矩阵A向矩阵B的投影,所以它们全部位于矩阵B所代表的空间中,所以C和B的维度必然相同。

3.2.6 和书本理论进行比较

书本上的矩阵规则和我们理解的矩阵只有一点不同。还是以
A ∗ B = C A * B = C AB=C
为例。

书本上将矩阵B,进行了转置。也就是说,B矩阵中的向量,按照我们的理解,应该一行一行依次摆放,但是书本上规定应该竖着依次摆放。为什么?因为书本规定,矩阵A乘矩阵B,矩阵A的每一个行向量要和矩阵B的每一个列向量进行点乘,而我们的运算规则是矩阵A的每一个行向量要和矩阵B的每一个行向量进行点乘,所以在书本上规定的运算规则下,必须将向量B进行转置。其实运算结果和原理是完全一样的。


下一篇:《矩阵乘法进阶》

你可能感兴趣的:(线性代数,矩阵,机器学习)