线性代数学习1 标量、向量、矩阵和张量
标量(scalar)
一个标题就是一个单独的数。用斜体表示标量。标量通常使用小写变量名称。
在介绍标题时,会明确它是哪种类型的数,如:
定义实数标量时,可能会说:
“令 s∈Rs∈R 表示一条线的斜率”;
在定义自然数标量时,可能会说
“令n∈Nn∈N”表示元素的数目。
向量(vector)
一个向量是一列数,这些数是有序排列的。向量中的元素可以用 x1x1 这样来表示 。
我们可以把向量看作空间中的点,每个元素是不同坐标轴上的坐标。
如果要定义包含元素索引的集合,如 x1、x3、x6x1、x3、x6 , 我们定义集合
S=1,3,6S=1,3,6
然后写作: xSxS。
使用符号 −− 表示集合补集中的索引,如
x−1x−1 表示xx中除了 x1x1外的所有元素。
x−Sx−S 表示除了 x1、x3、x6x1、x3、x6 外所有元素构成的向量。
行列式
行列式在数学中,是一个函数,其定义域为det的矩阵A,取值为一个标量,写作det(A)或 | A | 。无论是在线性代数、多项式理论,还是在微积分学中(比如说换元积分法中),行列式作为基本的数学工具,都有着重要的应用。
行列式可以看做是有向面积或体积的概念在一般的欧几里得空间中的推广。或者说,在 n 维欧几里得空间中,行列式描述的是一个线性变换对”体积”所造成的影响。
矩阵(matrix)
矩阵是一个二维数组,通常使用大写变量名称,如AA
一个实数矩阵高m宽度n,可以表示为 A∈Rm∗nA∈Rm∗n
A1,1A1,1 表示左上的元素
Am,nAm,n 表示右下的元素
通过 “:” 来表示水平坐标, 以表示垂直坐标 ii 中的所有元素。如:
Ai,:Ai,: 表示 AA 中垂直坐标 ii 上的一横排元素。这也被称为 AA 的第 ii 行。
同样的,通过”A:,iA:,i 来表示 AA 的第ii 列。
张量(tensor)
在某些情况下,我们会讨论坐标超过两维的数组,一般的,一个数组中的元素分布在若干维坐标的规则网格中,我们称之为张量。我们使用字体 A 来表示张量“A”。张量A中坐标为(i,j,k)(i,j,k) 的元素记作 Ai,j,kAi,j,k .
转置(transpose)
以对角线为轴的矩阵的镜像,从左上到右下称为主对角线(main diagonal)。
定义为:
(AT)i,j=Aj,i(AT)i,j=Aj,i
向量可以看作只有一列的矩阵, 对应地,向量的转置可以看作只有一行的矩阵。
标题的转置等于自身。
矩阵运算
矩阵可以进行加法、乘法计算。
深度学习中,允许矩阵和向量相加:
C=A+bC=A+b,其中 Ci,j=Ai,j+bjCi,j=Ai,j+bj,即向量b和矩阵A的每一行相加。这是一种隐式地复制向量b到很多位置的方式,称为广播(broadcasting)。
矩阵乘法
两个矩阵的标准乘积不是两个矩阵中对应元素的乘积。
两个矩阵 AA 和 BB 的矩阵乘积(matrix product)是第三个矩阵 CC 。
为了使乘法可被定义,矩阵AA的列数和矩阵 BB的行数相等。如果矩阵AA的形状是 m∗nm∗n, 矩阵BB 的形状是 m∗pm∗p , 我们可以通过将两个或多个矩阵并列放置以书写矩阵乘法。例如:
具体地,该乘法操作定义为
示例:
元素对应乘积(Hadamard乘积)
如果是元素对应乘积(element-wise product)或者Hadamard乘积,记为 :
点积
两个相同维数的向量 xx 和 yy 的点积(dot poduct)可看作矩阵乘积 xTyxTy。我们可以把矩阵乘积 C=ABC=AB 中计算 Ci,jCi,j 的步骤看作 AA的第 ii 行和 BB 的第 jj 列之间的点积。
矩阵乘法分配律
矩阵乘积结合律
矩阵乘积并不满足交换律,然而两个向量的点积满足交换律:
矩阵乘积的转置有着简单的形式:
单位矩阵(identity matrix)
单位矩阵所有沿对角线的元素都是1, 而其它位置的所有元素都是0.如:
任意向量和单位矩阵相乘,都不会改变。我们将保持 nn 维向量不变的单位矩阵记作 InIn。形式上, In∈Rn∗nIn∈Rn∗n。
逆矩阵
矩阵 AA 的逆矩阵记作 A−1A−1, 其定义的矩阵满足如下条件:
求解 Ax=bAx=b
Ax=bAx=b
A−1Ax=A−1bA−1Ax=A−1b
Inx=A−1bInx=A−1b
x=A−1bx=A−1b
这取决于我们能否找到一个逆矩阵 A−1A−1 。
当逆矩阵 A−1A−1 存在时,有几种不同的算法都能找到它的闭解形式。理论上,相同的逆矩阵可用于多次求解不同向量 bb 的议程。然而,逆矩阵 A−1A−1 主要是作为理论工具使用的,并不会在大多数软件应用程序中实际使用。这是因为逆矩阵 A−1A−1 在数字计算机上只能表现出有限的精度,有效使用向量 bb 的算法通常可以得到更精确的 xx。