【笔记——李沐动手学深度学习】2.3 线性代数
2.3.1 标量
标量由只有一个元素的张量表示。 下面的代码将实例化两个标量,并执行一些熟悉的算术运算,即加法、减、乘法、除法和指数。
2.3.2 向量
人们通过一维张量表示向量。一般来说,张量可以具有任意长度,取决于机器的内存限制。
我们可以使用下标来引用向量的任一元素,例如可以通过 x i x_i xi来引用第 i i i个元素。
注意,元素 x i x_i xi是一个标量,所以我们在引用它时不会加粗。
大量文献认为列向量是向量的默认方向。
在数学中,向量 x \mathbf{x} x可以写为:
x = [ x 1 x 2 ⋮ x n ] , \mathbf{x} =\begin{bmatrix}x_{1} \\x_{2} \\ \vdots \\x_{n}\end{bmatrix}, x= x1x2⋮xn ,
- 其中 x 1 , … , x n x_1,\ldots,x_n x1,…,xn是向量的元素。在代码中,我们(通过张量的索引来访问任一元素)。
- 注意:下标从0计数。
2.3.2.1 长度、维度和形状
2.3.3 矩阵
调用函数来实例化张量时,我们可以[通过指定两个分量 m m m和 n n n来创建一个形状为 m × n m \times n m×n的矩阵]。
矩阵的转置
对称矩阵
2.3.4 张量
当我们开始处理图像时,张量将变得更加重要,图像以 n n n维数组形式出现。
个人认为:
标量代表一个元素
向量代表一维数组
矩阵代表二维数组
张量则代表多维(>2),但是张量也可以代表标量/向量/矩阵
2.3.5 张量算法的基本性质
矩阵加法: 将两个相同形状的矩阵相加,会在这两个矩阵上执行元素加法。
Hadamard积: 两个矩阵的按元素乘法(Hadamard product)(数学符号 ⊙ \odot ⊙)。
A ⊙ B = [ a 11 b 11 a 12 b 12 … a 1 n b 1 n a 21 b 21 a 22 b 22 … a 2 n b 2 n ⋮ ⋮ ⋱ ⋮ a m 1 b m 1 a m 2 b m 2 … a m n b m n ] . \mathbf{A} \odot \mathbf{B} = \begin{bmatrix} a_{11} b_{11} & a_{12} b_{12} & \dots & a_{1n} b_{1n} \\ a_{21} b_{21} & a_{22} b_{22} & \dots & a_{2n} b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} b_{m1} & a_{m2} b_{m2} & \dots & a_{mn} b_{mn} \end{bmatrix}. A⊙B= a11b11a21b21⋮am1bm1a12b12a22b22⋮am2bm2……⋱…a1nb1na2nb2n⋮amnbmn .
将张量乘以或加上一个标量不会改变张量的形状,其中张量的每个元素都将与标量相加或相乘。
2.3.6 降维
元素和, 可以表示任意形状张量的元素和
指定张量沿哪一个轴来通过求和降低维度
- 对于二维而言,轴0为行,轴1为列。
axis=0
代表行消失,多行变为一行。
平均值
2.3.6.1 非降维求和
有时在调用函数来计算总和或均值时保持轴数不变会很有用。
由于sum_A
在对每行进行求和后仍保持两个轴,我们可以(通过广播将A
除以sum_A
)。
铅某个轴计算A元素的累积总和
2.3.7 点积
一维向量的点积
可以通过执行按元素乘法,然后进行求和来表示两个向量的点积
2.3.8 矩阵-向量积
2.3.9 矩阵-矩阵乘法
2.3.10 范数
L 2 L_2 L2范数: 向量元素平方和的平方根
∥ x ∥ 2 = ∑ i = 1 n x i 2 , \|\mathbf{x}\|_2 = \sqrt{\sum_{i=1}^n x_i^2}, ∥x∥2=i=1∑nxi2,
L 1 L_1 L1 范数: 向量元素的绝对值之和
深度学习中更经常地使用 L 2 L_2 L2范数的平方,也会经常遇到 L 1 L_1 L1范数。
- 与 L 2 L_2 L2范数相比, L 1 L_1 L1范数受异常值的影响较小。
为了计算 L 1 L_1 L1范数,我们将绝对值函数和按元素求和组合起来。
∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ . \|\mathbf{x}\|_1 = \sum_{i=1}^n \left|x_i \right|. ∥x∥1=i=1∑n∣xi∣.
Frobenius范数: 矩阵元素平方和的平方根