参考#
基本概念#
向量(vector)#
向量是数学、物理学和工程学中的一个基本概念,它表示具有大小和方向的量。向量可以用来表示力、速度、加速度等物理量。在数学中,向量既可以在几何上表示,也可以通过坐标系以数值形式表示。标量(scalar)指没有方向的量,和向量相区别。
向量支持四则运算方法。向量的基本性质:
- 大小(模):向量的大小或模是指向量的长度,通常用符号 $|\vec{v}|$ 表示。对于二维向量 $\vec{v} = (x, y)$,其模可以通过勾股定理计算:$|\vec{v}| = \sqrt{x^2 + y^2}$。
- 方向:向量的方向是指向量所指的方向,可以通过向量与坐标轴的夹角来描述。
- 零向量:零向量是一个特殊的向量,其大小为零,没有确定的方向。在坐标表示中,零向量表示为所有分量都为零的向量,如 ((0, 0)) 或 ((0, 0, 0))。
- 单位向量:单位向量是大小(模)为 1 的向量。单位向量通常用来表示方向。
比如这是一个二维向量 $\vec{v} = \begin{pmatrix} x \\ y \end{pmatrix}$
这是一个三维向量 $\vec{v} = \begin{pmatrix} x \\ y \\ z \end{pmatrix}$
向量空间#
矩阵#
这是一个三阶矩阵:$A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \ \end{pmatrix}$
行列式#
矩阵的转置#
假设有一个矩阵 (A) 如下:
$$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix}$$
矩阵 $A$ 的转置 $A^T$ 是:
$$A^T = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix}$$
在这个例子中,$A$ 是一个 $3 \times 2$ 矩阵,而 $A^T$ 是一个 $2 \times 3$ 矩阵,原矩阵的行变成了转置矩阵的列,原矩阵的列变成了转置矩阵的行。
分块矩阵#
矩阵的映射#
矩阵运算#
向量加法#
假设我们有两个 $2 \times 2$ 矩阵 $A$ 和 $B$ 如下:
$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}$
那么,矩阵 (A) 和矩阵 (B) 相加的结果 (C) 是:
$C = A + B = \begin{pmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix}$
这就是矩阵加法的基本运算过程。
矩阵与常数的乘积#
矩阵与 n 维向量的乘积#
矩阵与矩阵的乘积#
内积与外积
矩阵的乘方#
秩#
逆矩阵#
良性问题(可逆矩阵)#
恶性问题#
LU 分解#
特征值和特征向量#
2. 核心矩阵运算#
a) 矩阵加法#
规则:只有维度相同的矩阵才能相加。对应位置的元素相加。
示例:
A = [[1, 2], B = [[5, 6], A + B = [[1+5, 2+6], = [[6, 8], [3, 4]] [7, 8]] [3+7, 4+8]] [10, 12]]
b) 矩阵标量乘法#
规则:矩阵中的每个元素都乘以这个标量。
示例:
k = 2 A = [[1, 2], k * A = [[2*1, 2*2], = [[2, 4], [3, 4]] [2*3, 2*4]] [6, 8]]
c) 矩阵转置#
规则:将矩阵的行和列互换。记作
A^T。示例:
A = [[1, 2, 3], A^T = [[1, 4], [4, 5, 6]] [2, 5], [3, 6]]直观理解:沿着从左上到右下的对角线“翻转”矩阵。
d) 矩阵乘法 - 这是最重要的运算!#
规则:两个矩阵
A和B相乘,A的列数必须等于B的行数。- 如果
A是m x n的矩阵,B是n x p的矩阵,那么结果C是m x p的矩阵。
- 如果
计算方法:结果矩阵
C中第i行、第j列的元素c_ij,等于A的第i行 与B的第j列 对应元素的乘积之和。示例:
A = [[1, 2], (2x2) [3, 4]] B = [[5, 6], (2x2) [7, 8]] C = A * B 计算 C[0,0]:取 A 的第0行 [1, 2] 和 B 的第0列 [5, 7] = (1*5) + (2*7) = 5 + 14 = 19 计算 C[0,1]:取 A 的第0行 [1, 2] 和 B 的第1列 [6, 8] = (1*6) + (2*8) = 6 + 16 = 22 计算 C[1,0]:取 A 的第1行 [3, 4] 和 B 的第0列 [5, 7] = (3*5) + (4*7) = 15 + 28 = 43 计算 C[1,1]:取 A 的第1行 [3, 4] 和 B 的第1列 [6, 8] = (3*6) + (4*8) = 18 + 32 = 50 所以 C = [[19, 22], [43, 50]]在深度学习中的关键应用:
- 全连接层/线性层:神经网络每一层的计算本质上就是一次矩阵乘法
Y = XW + b,其中X是输入,W是权重矩阵,b是偏置向量。 - Embedding 查找:我们之前讲到,用 One-Hot 向量与 Embedding 矩阵相乘,等价于直接查找矩阵的某一行。
- 全连接层/线性层:神经网络每一层的计算本质上就是一次矩阵乘法
3. 点积 - 向量的特殊乘法#
规则:两个维度相同的向量对应元素相乘后求和。
示例:
a = [1, 2, 3] b = [4, 5, 6] dot_product = (1*4) + (2*5) + (3*6) = 4 + 10 + 18 = 32几何意义:点积可以衡量两个向量的相似度。如果两个向量方向相同,点积越大;方向垂直,点积为0。
与矩阵乘法的关系:矩阵乘法可以看作是很多个点积运算的集合。
A的每一行与B的每一列做点积,得到结果矩阵的一个元素。