返回首页

Matrix-黑客帝国

2026-08-04 2026-08-16 学习 学习
1977 字 10 分钟
目录

介绍#

其实矩阵是一个很深刻的东西,是当代人工智能以及数学领域的一个伟大基石,矩阵是在线性方程组求解中非常重要的东西…,矩阵是在行列式的基础上演变而来的,其实有时候计算机就是黑魔法,因为总有些天才,高手像魔法师一样变出一些传世的黑魔法

标量,向量,矩阵,张量#

  • 标量:数值
  • 向量:就是一排数
x=(x1x2xn)x= \begin{pmatrix} x_1\\ x_2\\ \vdots\\ x_n \end{pmatrix}
  • 矩阵:二维数组
  • 张量:可以理解成更高维度的数组

矩阵与线性方程组#

其实就是 线性方程组 去演化成 矩阵形式,

{a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm\begin{cases} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = b_1 \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = b_2 \\ \vdots \\ a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n = b_m \end{cases}

根据这些线性方程组,就可以得到他的系数矩阵

A=[a11a12a1na21a22a2nam1am2amn]A= \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}

然后在这个矩阵的右侧加入线性方程组的常数项,就可以构建成增广矩阵

[AB]=[a11a12a1nb1a21a22a2nb2am1am2amnbm][A \mid B] = \left[ \begin{array}{cccc|c} a_{11} & a_{12} & \cdots & a_{1n} & b_1 \\ a_{21} & a_{22} & \cdots & a_{2n} & b_2 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} & b_m \end{array} \right]

这里就涉及一个:

  • 平凡解:唯一解
  • 非凡解:无穷解
  • 齐次方程组:当常数项都为0

在齐次方程组中,如果 n > m 则方程有无穷解(非凡解)

矩阵算术#

  1. 加减法:矩阵的每一个元素加减
Cij=Aij+BijC_{ij} = A_{ij} + B_{ij}
  1. 标量乘法
bA(bA)ij=bAijbA \rightarrow (bA)_{ij} = b \cdot A_{ij}
  1. 转置
(AT)ij=Aji(A^T)_{ij} = A_{ji}
  1. 矩阵乘法
cij=k=1naikbkjc_{ij} = \sum_{k=1}^{n} a_{ik}b_{kj}

可以理解为左侧矩阵 AA 的第 ii 行与右侧矩阵 BB 的第 jj 列对应元素相乘后求和。进行乘法时,必须保证矩阵 AA 的列数等于矩阵 BB 的行数。

范数#

我们通常使用范数衡量向量的大小,例如 LpL^p 范数:

xp=(ixip)1p\|x\|_p = \left( \sum_i |x_i|^p \right)^{\frac{1}{p}}

其中,L1L_1 范数是各元素绝对值之和,也称为曼哈顿范数L2L_2 范数对应欧几里得距离;LL_{\infty} 范数表示向量中绝对值最大的元素。

特殊类型的矩阵#

对角矩阵#

其实就是除了对角,其他元素都为0

Dij=0(ij)D_{ij} = 0 \quad (i \neq j)

对称矩阵#

A=ATA = A^T

正交矩阵#

行向量和列向量之间两两正交,并且每个向量的长度为 1(即 L2L_2 范数为 1)。可以将其理解成由两两垂直且长度为 1 的列向量组成的方阵关键性质

  1. AiAiT=1A_iA_i^T = 1
  2. AiAjT=0(ij)A_iA_j^T = 0 \quad (i \neq j)

根据上述性质可以推导出:

AAT=IAA^T = I

其中,II 表示单位矩阵。

方阵#

行列数相同的是方阵,对角矩阵不一定是方阵,长方形的矩阵也可能是对角矩阵(广义)

单位矩阵#

单位矩阵其实就是对角元素为1

矩阵逆元#

如果存在一个矩阵:

AB=BA=IAB = BA = I

那么可以称矩阵 AA 是非奇异矩阵,也可以说矩阵 AA 可逆。

奇异矩阵#

如何快速判断一个矩阵是非奇异矩阵

  1. A1A^{-1} 存在
  2. det(A)0\det(A) \neq 0
  3. rank(A)=n\operatorname{rank}(A) = n
  4. AA 的行向量和列向量线性无关
  5. Ax=0Ax = 0 只有零解 x=0x = 0
  6. 对于任意 bbAx=bAx=b 都有唯一解,因为 x=A1bx=A^{-1}b
解释:#
  1. det(A)0\det(A) \neq 0。行列式可以理解为线性变换对面积或体积的缩放比例;如果比例为 0,空间会被压缩到更低维度,因此无法通过逆变换恢复。

行列式#

det 可以理解成 线性变换对面积的缩放倍数,对于一个矩阵,我们可以理解成有 N 个 M 维度的向量,其实就是正对角元素累乘和-反对角元素累乘和

特征值与特征向量#

这个是一个非常重要的设计

[!NOTE] 在矩阵变化 A 中,能不能找到一些“特殊方向(方向可以理解成向量)”,使得在这些方向上,矩阵只是简单的 放大和缩小?

其实就是 在 矩阵变化 A 中 找不变量

Av=λvAv = \lambda v

其中,vv 是特征向量,λ\lambda 是特征值。通过特征分解,可以将矩阵分解成一组特征向量和对应的特征值。 ,怎么求 这个特征值呢?

Avλv=0(AλI)v=0det(AλI)=0Av - \lambda v = 0 \\ (A - \lambda I)v = 0 \\ det(A - \lambda I) = 0

其实也就是 AλIA - \lambda I 为奇异矩阵,

所以将 A 转化为:

A=VΛV1A = V\Lambda V^{-1}

所以:

Ax=VΛV1xAx = V\Lambda V^{-1}x

x 矩阵乘一个向量,本质上是 在对矩阵的“列向量”做线性组合

正定性#

判断正定:

Q(x)=xTAxQ(x) = x^TAx
  1. 半正定矩阵:所有特征值都是非负
  2. 负定矩阵:所有特征值都是负数
  3. 半负定矩阵:所有特征值都是非正数

奇异值分解#

奇异值分解就是 将 矩阵 A 分解成三个矩阵的乘积

A=UDVTA = UDV^T

这里 A 是一个 m×nm \times n 的矩阵,U 是一个 m×mm \times m 的矩阵,D 是一个 m×nm \times n 的矩阵,V 是一个 n×nn \times n 的矩阵,这些矩阵都有一些特殊的结构,U,V是正交矩阵,D是一个对角矩阵,D 的对角元素是 A 的奇异值,U 的列向量是 左奇异向量,V的列向量是 右奇异向量

其实就是任何一个矩阵的线性变化 都可以理解成 “旋转/反射 -> 拉伸 -> 旋转/反射”

向量空间#

其实就是定义了 矩阵的运算

  1. 交换律
  2. 结合律
  3. 分配律 但是对于矩阵乘法不能使用交换律,这个运算大部分针对于 常数 和 矩阵的计算

子空间#

一组向量通过线性组合所能产生的所有向量组成的集合,就是其生成空间 条件:

  1. 数乘封闭
xSaxSx \in S \\ ax \in S
  1. 加法封闭
x,ySx+ySx, y \in S \\ x + y \in S

重要的结果:所有子空间一定包含 零向量(a=0),如果要满足上述条件的,比如 在二维空间中只有经过原点的直线才是子空间,这里重点介绍一下生成空间的定义:

span(v1,,vn)={i=1ncivi:ciR}\operatorname{span}(v_1,\cdots,v_n) = \left\{ \sum_{i=1}^{n} c_i v_i : c_i \in \mathbb{R} \right\}

线性无关#

对于

Ax=bAx = b

是否有解,当且仅当:

bCol(A)b \in Col(A)

,如果要求 任意bRmb \in \mathbb{R}^m,Ax = b 都有解,必须满足Col(A)=RmCol(A) = \mathbb{R}^m. 为什么要求 n \beq\beq m, 因为 Rm\mathbb{R}^m 本身是一个 m 维空间,至少需要 m 个独立方向(因为b 相当于 n 个 m 维度的列向量线性组合),并且线性无关才行。

线性相关要求:#

一组 向量: v1,....,vnv_1,....,v_n, 对于 一组 不全为 0 的系数:c1,....,Cnc_1,....,C_n, 使得:

c1v1+c2v2+...+cnvn=0c_1v_1 + c_2v_2 + ... + c_nv_n = 0

对于一个维度为m 的空间最多只有 m 个线性无关的向量,这个很好理解,就是对于 一个 m 维 的空间 相当于只有 m 个 基向量 就可以组成 这个 空间中的所有向量,所以 Rank(A) <= min(n, m),又因为 最多m 个 线性无关向量,要满足 b 是 在这个 空间中,最少需要 m 个 线性无关向量,所以 只有 Rank(A) = m 的时候 这个 b 才能满足。

NOTE

最重要的部分,我看完B 站视频再补充,这个 梯度对于深度学习的设计非常重要

雅可比矩阵(Jacobian)#

一阶导数矩阵,其实要理解这个 雅可比矩阵,我们应该考虑极限 + 导数,在一个 极小的位置,F(x) 对 x 的影响 可以看成 线性变换

Hessian 矩阵(Hessian)#

二阶导数矩阵参考资料

评论