其实矩阵是一个很深刻的东西,是当代人工智能以及数学领域的一个伟大基石,矩阵是在线性方程组求解中非常重要的东西…,矩阵是在行列式的基础上演变而来的,其实有时候计算机就是黑魔法,因为总有些天才,高手像魔法师一样变出一些传世的黑魔法
标量,向量,矩阵,张量#
x=x1x2⋮xn
矩阵与线性方程组#
其实就是 线性方程组 去演化成 矩阵形式,
⎩⎨⎧a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋮am1x1+am2x2+⋯+amnxn=bm根据这些线性方程组,就可以得到他的系数矩阵:
A=a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn然后在这个矩阵的右侧加入线性方程组的常数项,就可以构建成增广矩阵:
[A∣B]=a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amnb1b2⋮bm这里就涉及一个:
- 平凡解:唯一解
- 非凡解:无穷解
- 齐次方程组:当常数项都为0
在齐次方程组中,如果 n > m 则方程有无穷解(非凡解)
矩阵算术#
- 加减法:矩阵的每一个元素加减
Cij=Aij+Bij
- 标量乘法
bA→(bA)ij=b⋅Aij
- 转置
(AT)ij=Aji
- 矩阵乘法
cij=k=1∑naikbkj可以理解为左侧矩阵 A 的第 i 行与右侧矩阵 B 的第 j 列对应元素相乘后求和。进行乘法时,必须保证矩阵 A 的列数等于矩阵 B 的行数。
我们通常使用范数衡量向量的大小,例如 Lp 范数:
∥x∥p=(i∑∣xi∣p)p1其中,L1 范数是各元素绝对值之和,也称为曼哈顿范数;L2 范数对应欧几里得距离;L∞ 范数表示向量中绝对值最大的元素。
特殊类型的矩阵#
对角矩阵#
其实就是除了对角,其他元素都为0
Dij=0(i=j)正交矩阵#
行向量和列向量之间两两正交,并且每个向量的长度为 1(即 L2 范数为 1)。可以将其理解成由两两垂直且长度为 1 的列向量组成的方阵:
关键性质:
- AiAiT=1
- AiAjT=0(i=j)
根据上述性质可以推导出:
AAT=I其中,I 表示单位矩阵。
行列数相同的是方阵,对角矩阵不一定是方阵,长方形的矩阵也可能是对角矩阵(广义)
矩阵逆元#
如果存在一个矩阵:
AB=BA=I那么可以称矩阵 A 是非奇异矩阵,也可以说矩阵 A 可逆。
奇异矩阵#
如何快速判断一个矩阵是非奇异矩阵
- A−1 存在
- det(A)=0
- rank(A)=n
- A 的行向量和列向量线性无关
- Ax=0 只有零解 x=0
- 对于任意 b,Ax=b 都有唯一解,因为 x=A−1b
解释:#
- det(A)=0。行列式可以理解为线性变换对面积或体积的缩放比例;如果比例为 0,空间会被压缩到更低维度,因此无法通过逆变换恢复。
行列式#
det 可以理解成 线性变换对面积的缩放倍数,对于一个矩阵,我们可以理解成有 N 个 M 维度的向量,其实就是正对角元素累乘和-反对角元素累乘和
特征值与特征向量#
这个是一个非常重要的设计
[!NOTE] 在矩阵变化 A 中,能不能找到一些“特殊方向(方向可以理解成向量)”,使得在这些方向上,矩阵只是简单的 放大和缩小?
其实就是 在 矩阵变化 A 中 找不变量
Av=λv其中,v 是特征向量,λ 是特征值。通过特征分解,可以将矩阵分解成一组特征向量和对应的特征值。
,怎么求 这个特征值呢?
Av−λv=0(A−λI)v=0det(A−λI)=0其实也就是 A−λI 为奇异矩阵,
所以将 A 转化为:
A=VΛV−1所以:
Ax=VΛV−1xx
矩阵乘一个向量,本质上是 在对矩阵的“列向量”做线性组合
正定性#
判断正定:
Q(x)=xTAx
- 半正定矩阵:所有特征值都是非负
- 负定矩阵:所有特征值都是负数
- 半负定矩阵:所有特征值都是非正数
奇异值分解#
奇异值分解就是 将 矩阵 A 分解成三个矩阵的乘积
A=UDVT这里 A 是一个 m×n 的矩阵,U 是一个 m×m 的矩阵,D 是一个 m×n 的矩阵,V 是一个 n×n 的矩阵,这些矩阵都有一些特殊的结构,U,V是正交矩阵,D是一个对角矩阵,D 的对角元素是 A 的奇异值,U 的列向量是 左奇异向量,V的列向量是 右奇异向量
其实就是任何一个矩阵的线性变化 都可以理解成 “旋转/反射 -> 拉伸 -> 旋转/反射”
向量空间#
其实就是定义了 矩阵的运算
- 交换律
- 结合律
- 分配律
但是对于矩阵乘法不能使用交换律,这个运算大部分针对于 常数 和 矩阵的计算
子空间#
一组向量通过线性组合所能产生的所有向量组成的集合,就是其生成空间
条件:
- 数乘封闭
x∈Sax∈S
- 加法封闭
x,y∈Sx+y∈S重要的结果:所有子空间一定包含 零向量(a=0),如果要满足上述条件的,比如 在二维空间中只有经过原点的直线才是子空间,这里重点介绍一下生成空间的定义:
span(v1,⋯,vn)={i=1∑ncivi:ci∈R}线性无关#
对于
Ax=b是否有解,当且仅当:
b∈Col(A),如果要求 任意b∈Rm,Ax = b 都有解,必须满足Col(A)=Rm.
为什么要求 n \beq m, 因为 Rm 本身是一个 m 维空间,至少需要 m 个独立方向(因为b 相当于 n 个 m 维度的列向量线性组合),并且线性无关才行。
线性相关要求:#
一组 向量: v1,....,vn,
对于 一组 不全为 0 的系数:c1,....,Cn,
使得:
c1v1+c2v2+...+cnvn=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)#
二阶导数矩阵,
参考资料