在上一期中,我们介绍了线性代数的三个基本实体:标量、向量和矩阵,并且发现它们都是更一般的实体——张量的特定版本。在这篇文章中,我们将研究如何对这些实体进行加法和乘法等操作。尽管您可能很熟悉标量加法和乘法,但处理更一般的张量实体时规则有所不同。本文将准确定义这些操作,并提供数值示例,以帮助您更好地理解它们。虽然现在可能还不清楚这些操作在深度学习中的应用,但我们可以通过掌握这种语言的基础知识,更好地理解后续文章中构建神经网络模型所需要的更复杂思想。我们将从矩阵加法开始,然后探讨矩阵乘法,最终使我们能够讨论矩阵求逆这一主题,这也是本篇文章的重点。
矩阵加法
矩阵可以添加到标量、向量和其他矩阵中。每个操作都有一个精确的定义。
1)矩阵+矩阵加法 给定两个大小为mn的矩阵A、B,可以将矩阵C定义为矩阵和C=A+B。 也就是说,C是通过对A和B的各个元素进行逐元素求和来构造的。此操作仅在两个矩阵大小相等的情况下定义,以下广播的情况除外。该定义意味着C也具有大小mn。 矩阵加法的交换律和结合律:
这两个结果都源于这样一个事实,即正常的标量加法本身是满足交换律和结合律的,因为我们只是将元素相加在一起。
举例:
2)矩阵+标量加法 可以将标量值x添加到矩阵a以生成新的矩阵B。这意味着我们将相同的标量值添加到矩阵的每个元素。写为B=x+A。 标量矩阵加法再次满足了交换律和结合律,因为正常的标量加法满足交换律和结合律。
3)广播 对于机器学习中的某些应用,可以定义一种称为广播的速记符号。考虑A是m*n维实值矩阵,x是m维向量。可以定义B=A+x,尽管矩阵A和x的大小不相等。 也就是说,x的元素被复制到矩阵A的每一行中。由于x的值被“广播”到每一行,所以这个过程被称为广播。
- 矩阵乘法
1)矩阵转置
为了定义某些矩阵矩阵乘法运算,例如点积(下面讨论),需要定义矩阵的转置。大小为mn的矩阵a的换位由大小为nm的A^T表示,并由以下表达式按元素给出:
即转置交换了索引i和j,这具有沿对角线元素aii反射矩阵的效果。该操作是为非平方矩阵以及向量和标量(1*1矩阵)定义的。
注意:标量是其自身的转置;矩阵转置的转置是其自身。
2)矩阵矩阵乘法
矩阵矩阵乘法是一个比矩阵加法更复杂的操作,因为它不是简单地按元素相乘矩阵,而是涉及一个矩阵的整行和另一个矩阵中的整列。该操作仅针对特定大小的矩阵——第一个矩阵的列数必须与第二个矩阵的行数相同。
给定一个矩阵A和一个矩阵B,矩阵积C=AB按元素定义为:
也就是说,矩阵C=AB的元素是通过将A的第i行元素与B的第j列元素的乘积相加而给出的。
注意矩阵*矩阵乘法不是可交换的。即:
3)标量*矩阵乘法 标量矩阵乘法比矩阵矩阵乘法简单。给定一个矩阵A和一个标量lamda,标量矩阵乘积A通过将lamda A的每个元素乘以来计算。 如果我们取两个实值标量lamda,u,则有:
第一个结果表明,如果将两个矩阵相加,然后将它们乘以标量,就像将每个矩阵单独乘以标量,然后将其相加一样,将得到相同的答案。 第二个结果表明,如果将两个标量相加,然后将结果乘以一个矩阵,则会给出与单独将矩阵乘以每个标量并相加结果相同的答案。 第三个结果表明标量乘法的顺序无关紧要。如果你将矩阵乘以一个标量,然后将结果乘以另一个标量的话,它给出的答案与你先将两个标量相乘,然后再乘以矩阵的结果相同。 所有这些结果都遵循标量乘法和加法的规则。
4)阿达玛乘积 Hadamard Product
可以定义矩阵的元素乘法,这与上述矩阵矩阵乘法的定义不同。两个矩阵A和B的阿达玛乘积通过以下表达式计算:
也就是说,新矩阵的元素为其他矩阵中每个元素的标量倍数。阿达玛乘积也具有交换律。
阿达玛乘积过程具有广泛的应用,包括卫星传输和密码学中的纠错码、信号处理以及JPEG格式图像的有损压缩算法。
5)点积 Dot Product
矩阵*矩阵乘法的一个重要特例发生在两个向量之间,称为点积。两个n维向量之间点积的常用符号是x·y, x,y属于R^n,也可以写成x^T y,其中T代表x的转置。
给定两个列向量x,y。可以通过取1的转置来定义它们之间的点积(或标量积),以形成在矩阵*矩阵乘法规则内定义的积。这样的乘积产生标量值并且遵循交换律:
点积具有重要的几何意义。它是两个向量的欧几里得长度和它们之间夹角的余弦的乘积。在随后的文章中,将引入规范的概念,在这一点上,这一定义将被正式化。 另一种考虑点积的方法是,如果我们将向量的点积与向量本身相乘,它就是向量长度的平方:
因此,要求向量的欧几里得长度,只需取向量的点积的平方根即可:
点积是更一般的数学实体内积的一个特例。在更抽象的向量空间中,内积允许严格地描述一些直观的概念,例如向量的长度和角度。