理解矩阵的一些基本运算定义。

转置 transpose

矩阵的转置是以对角线为轴的镜像,左上到右下的对角线称为主对角线。矩阵$\bf A$的转置矩阵记为$\bf A^T$。

转置的定义为:$(A^T){i,j}=A{j,i}$

向量是一个只有一列的矩阵,所以向量的转置是一个只有一行的矩阵。为了便于书写,有时会将向量元素作为行矩阵写在文本中,然后使用转置操作将其变为标准的列向量,来定义一个向量,比如 $\bf x \rm = [x_1,x_2,x_3]^T$。

标量可以看作只有一个元素的矩阵,所以其转置矩阵即为其本身,$a=a^T$。

矩阵的加法

只要两个矩阵的形状一样,就可以把两个矩阵相加。两个矩阵相加,是指对应位置的元素相加。

$\bf C=A+B$ 即为 $C_{i,j} = A_{i,j} + B_{i,j}$

标量与矩阵的乘法

标量与矩阵做乘法即为标量与矩阵的每个元素做乘法。$\bf D \rm = a * C_{i,j}$

标量与矩阵的加法

标量与矩阵的加法即为标量与矩阵的每个元素做加法。$\bf D \rm = C_{i,j} + a$

向量与矩阵的加法

向量与矩阵的加法即为向量与矩阵的每一行的对应元素相加,这并不是一个常规写法,而是在深度学习领域的特殊表达,它的物理意义是广播

$\bf C = a + B$ 即为 $C_{i,j} = a_j + B_{i,j}$

矩阵的标准乘积

矩阵的乘法只有在第一个矩阵的列数等于第二个矩阵的行数是才有意义。一个$m\times n$的矩阵与一个$n\times p$的矩阵的乘积是一个$m\times p$矩阵。矩阵$\bf A$和矩阵$\bf B$的乘积记作矩阵$\bf AB$。

定义可以由公式表达:$(AB){i,j} = \sum{r=1}^nA_{i,r}B_{r,j} = A_{i,1}B_{1,j}+A_{i,2}B_{2,j}+\cdots+A_{i,n}B_{n,j}$

如果直接使用矩阵乘积的定义来计算是比较繁琐的,所以有一些简化的运算法。

  • 向量方法

    将矩阵的乘法转化为标量与向量的乘积,然后再做向量的加法。

    $\bf A \rm= \begin{bmatrix} A_{1,1} A_{1,2} \cdots\ A_{2,1} A_{2,2} \cdots \ \cdots \cdots \ddots \end{bmatrix} \bf B \rm = \begin{bmatrix} B_{1,1} B_{1,2} \cdots\ B_{2,1} B_{2,2} \cdots \ \cdots \cdots \ddots \end{bmatrix}$

    $AB = \begin{bmatrix} A_{1,1}[B_{1,1} B_{1,2} \cdots]+A_{1,2}[B_{1,1} B_{1,2} \cdots]+\cdots \ A_{2,1}[B_{1,1} B_{1,2} \cdots]+A_{2,2}[B_{1,1} B_{1,2} \cdots]+\cdots \ \vdots\end{bmatrix}$

    下面是wiki提供的一个示例

    向量方法

  • 向量表方法

    将矩阵的乘法转换成向量的乘法。即将第一个矩阵的每一行看成一个向量,把第二个矩阵的每一列看成一个矩阵。那么矩阵的乘法就转换成向量的乘法。

    $A= \begin{bmatrix} A_1 \ A_2 \ A_3 \ \vdots\end{bmatrix} B = \begin{bmatrix} B_1 B_2 B_3 \cdots \end{bmatrix}$

    $AB = \begin{bmatrix} A_1B_1 \ A_1B_2 \ A_1B_3 \ \cdots \ A_2B_1 \ A_2B_2 \ A_2B_3 \ \cdots \ \cdots\end{bmatrix}$

矩阵的标准乘积遵循分配律和结合律,但不满足交换律。

矩阵的标准乘积的转置满足规则$\bf (AB)^T = B^TA^T$

矩阵的阿达马乘积 Hadamard product

两个相同维度的矩阵,逐点相乘,称之为hadamard乘积,也叫做元素对应乘积,记为 $\bf A \bigodot B$

向量的点积

两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。

若$a=[a_1,a_2,\cdots] \ b=[b_1,b_2,\cdots] $则$ a\cdot b = a_1b_1 + a_2b_2 + \cdots $

向量的点积满足交换律。

矩阵与向量的乘法

矩阵$\bf A$与向量$ \bf x$的乘积是向量$\bf b$,可以记为$\bf Ax=b$。

计算方法是$b_1 = A_{1,:}\bf x = A_{1,1}x_1+A_{1,2}x_2+\cdots$,以此类推。

END