深度学习中线性代数回顾
一、范数
在机器学习中,我们使用称为**范数(norm)**的函数来衡量向量的大小。
1. Lp 范数
Lp 范数定义如下:
∣∣x∣∣p=(i∑∣xi∣p)p1
其中, p∈R,p≥1
范数(包括 Lp 范数)是将向量映射到非负值的函数,向量 x 的范数衡量从原点到点 x 的距离,有如下性质:
- f(x)=0⇒x=0
-
f(x+y)≤f(x)+f(y) (triangle inequality)
- ∀α∈R,f(αx)=∣α∣f(x)
2. L2 范数(Euclidean norm)
L2 可以简单用 xTx 计算。
3. L1 范数
L2 范数在原点附近增长十分缓慢,某些机器学习情况下,需要区分恰好是0的元素和非零但值很小的元素非常重要,于是,我们使用在各个位置斜率相同,
并且保持简单数学形式的函数: L1 范数,每当 x 中某个元素从0增加 ϵ ,对应的 L1 范数也增加 ϵ
∣∣x∣∣1=i∑∣xi∣
4. L∞ 范数
也被称为最大范数,表示向量中具有最大幅值的元素的绝对值:
∣∣x∣∣∞=imax∣xi∣
5. Frobenius 范数
∣∣A∣∣F=i,j∑Ai,j2
用于衡量矩阵的大小,类似与向量的 L2 范数
二、矩阵分解
1.特征分解
关于特征分解的概念、计算以及相关性质不在此赘述,仅作补充
每个实对称矩阵都可以分解成特征向量和实特征值: A=QΛQT
其中 Q 是 A 的特征值组成的正交矩阵,Λ 是对角矩阵。特征值 Λi,j 对应的特征向量是矩阵 Q 的第 i 列,记作 Q:,i
特征向量和特征值的作用效果如下图所示

这里矩阵 A 有两个标准正交的特征向量,对应特征值为 λ1 的 ν(1) 以及对应特征值为 λ2 的 ν(2)
左侧是所有单位向量 μ∈R2 的集合;右侧是所有 Aμ 点的集合,通过观察 A 拉伸单位圆的方式,我们看到它将 ν(i) 方向的空间拉伸了 λi 倍
注:
- 所有特征值都是正数的矩阵称为正定(positive definite)
- 所有特征值都是非负数的矩阵称为半正定(positive semidefinite)
- 所有特征值都是负数的矩阵称为负定(negative definite)
- 所有特征值都是非正数的矩阵称为半负定(negative semidefinite)
2.奇异值分解(SVD)
每个实数矩阵都有一个奇异值分解,但不一定都有特征分解,如非方阵
A=UDVT
假设 A 是一个 m×n 的矩阵,那么 U 是一个 m×m 的矩阵, D 是一个 m×n 的矩阵, V 是一个 n×n 的矩阵
- 矩阵 U 和 V 都定义为正交矩阵,而矩阵 D 定义为对角矩阵, D 不一定为方阵
- 对角矩阵 D 对角线上的元素称为 A 的奇异值(singular value),矩阵 U 的列向量称为左奇异向量(left singular vector),矩阵 V 的列向量称为右奇异向量(right singular vector)
- 矩阵 A 的左奇异向量是 AAT 的特征向量, A 的右奇异向量是 ATA 的特征向量
-
A 的非零奇异值是 ATA 特征值的平方根,同时也是 AAT 特征值的平方根
三、Moore-Penrose伪逆
- 用于非方阵求解线性方程问题
Definition Moore-Penrose pseudoinverse,矩阵 A 的伪逆定义如下:
A+=α↘0lim(ATA+αI)−1AT
计算时,使用 A+=VD+UT ,其中 U 、 D 和 V 是矩阵 A 奇异值分解后得到的矩阵。对角矩阵 D 的伪逆 D+ 是其非零元素取倒数之后再转置得到的。
- 对与线性方程 Ax=y⟹x=By
- 当矩阵 A 的列数多于行数时,使用伪逆求解线性方程时众多可能解法中的一种。特别地 x=A+y 是方程所有可行解中Euclidean norm ∣∣x∣∣2 最小的一个
- 当矩阵 A 的列数少于行数时,可能没有解,通过伪逆得到的 x 使得 Ax 和 y 的Euclidean距离 ∣∣Ax−y∣∣2 最小
四、迹运算
- 迹运算返回的是矩阵对角元素的和:
Tr(A)=i∑Ai,j
2. 迹运算描述矩阵 Frobenius 范数:
∣∣A∣∣F=Tr(AAT)
3.
Tr(ABC)=Tr(CAB)=Tr(BCA)
更一般地:
Tr(i=1∏nF(i))=Tr(F(n)i=1∏n−1F(i))
4. 即使循环转置后矩阵乘积得到的矩阵形状变了,迹运算地结果不变,假设矩阵 A∈Rm×n ,矩阵 B∈Rn×m
Tr(AB)=Tr(BA)
尽管 AB∈Rm×m 和 BA∈Rn×n
五、矩阵求导
1.行向量对元素求导
设yT=[y1,...,yn]是n维行向量,x是元素,则∂x∂yT=[∂x∂y1,...,∂x∂yn]
2.列向量对元素求导
设y=⎣⎢⎡y1⋮ym⎦⎥⎤是m维列向量,x是元素,则∂x∂y=⎣⎢⎡∂x∂y1⋮∂x∂ym⎦⎥⎤
3.矩阵对元素求导
设Y=⎣⎢⎡y11⋮ym1⋯⋱⋯y1n⋮ymn⎦⎥⎤是m×n矩阵,x是元素,则
∂x∂Y=⎣⎢⎡∂x∂y11⋮∂x∂ym1⋯⋱⋯∂x∂y1n⋮∂x∂ymn⎦⎥⎤
4.元素对行向量求导
设y是元素,XT=[x1,...,xq]是q维行向量,则∂XT∂y=[∂x1∂y,...,∂xq∂y]
5.元素对列向量求导
设y是元素,X=⎣⎢⎡x1⋮xp⎦⎥⎤是p维列向量,则∂X∂y=⎣⎢⎢⎡∂x1∂y⋮∂xp∂y⎦⎥⎥⎤
6.元素对矩阵求导
设y是元素,X=⎣⎢⎡x11⋮xp1⋯⋱⋯x1q⋮xpq⎦⎥⎤是p×q矩阵,则
∂X∂y=⎣⎢⎢⎡∂x11∂y⋮∂xp1∂y⋯⋱⋯∂x1q∂y⋮∂xpq∂y⎦⎥⎥⎤
7.行向量对列向量求导
设yT=[y1,...,yn]是n维行向量,X=⎣⎢⎡x1⋮xp⎦⎥⎤ 是p维列向量,则
∂X∂yT=⎣⎢⎢⎡∂x1∂y1⋮∂xp∂y1⋯⋱⋯∂x1∂yn⋮∂xp∂yn⎦⎥⎥⎤
8.列向量对行向量求导
设y=⎣⎢⎡y1⋮ym⎦⎥⎤是m维列向量,XT=[x1,...,xq]是q维行向量,则
∂XT∂y=⎣⎢⎢⎡∂x1∂y1⋮∂x1∂ym⋯⋱⋯∂xq∂y1⋮∂xq∂ym⎦⎥⎥⎤
注:参考《Deep Learning》,lan Goodfellow, Yoshua Bengio, Aaron Courville