文章目录
第二章 线性代数
简要介绍深度学习算法中涉及到的线性代数知识。
掌握深度学习中所需要的线性代数和矩阵求导有关的数学知识
线性代数基础 花书书本[p27-p46]部分
矩阵求导 https://github.com/soloice/Matrix_Derivatives
2.1 标量、向量、矩阵和张量
- 标量(scalar):一个单独的数,用小写字母表示,常被设为变量,如 n n n,使用时需指定数据类型。
- 向量(vector):一列有序排列的数,用粗体的小写变量表示,如 x \textbf{x} x,可以通过脚标对元素索引。
- 矩阵(matrix):一个二维数组,用粗体的大写变量表示,如 x \textbf{x} x,可以通过行列位置对元素索引。
- 张量(tensor):数组中的元素分布在若干维坐标的规则网格中,用字体 A \textbf{A} A表示。举例解释,把二维数组放在三维坐标系中,维度加1。
- 简单运算:
- 转置(transpose):以主对角线(左上到右下)- 为轴做镜像操作。
- 矩阵相加:矩阵形状相同
- 标量和矩阵相乘或相加:标量与矩阵每个元素相乘或相加
- 广播(broadcasting):向量和矩阵相加
2.2 矩阵和向量相乘
-
矩阵乘积(matrix product):两个矩阵 A \textbf{A} A和 A \textbf{A} A相乘, A \textbf{A} A的列数必须和 B \textbf{B} B的行数相等。
$ A:m \times n;B:n \times p;C=AB:m \times p $
C i , j = ∑ k A i , k B k , j C_{i,j}=\sum _{k} A_{i,k}B_{k,j} Ci,j=k∑Ai,kBk,j -
元素对应乘积(element-wise product)或Hadamard 乘积(Hadamard product):两个矩阵中对应元素的乘积,记为 A ⨀ B A \bigodot B A⨀B
-
点积(dot product):两个相同维数的向量 x \textbf{x} x和 y \textbf{y} y相乘
-
性质:
- 分配率
A ( B + C ) = A B + A C A(B + C) = AB + AC A(B+C)=AB+AC - 结合律
A ( B C ) = ( A B ) C A(BC) = (AB)C A(BC)=(AB)C - 一般不满足交换律
A B ≠ B A AB \neq BA AB̸=BA - 转置
( A B ) T = B T A T (AB)^{T}=B^{T}A^{T} (AB)T=BTAT
- 分配率
-
线性方程组:
A x = b Ax=b Ax=b
2.3 单位矩阵和逆矩阵
-
单位矩阵(identity matrix):任意向量或矩阵和单位矩阵相乘,都不会改变,记为 y \textbf{y} y。所有沿主对角线的元素都是1,而所有其他位置的元素都是 0。
-
矩阵逆(matrix inversion):矩阵满足如下条件
A − 1 A = I n A^{-1}A=I_{n} A−1A=In
2.4 线性相关和生成子空间
- 线性组合(linear combination):把
A
\textbf{A}
A的列向量看做一个元素,则
A
\textbf{A}
A看做一个行向量,可用下式表示:
A x = ∑ i x i A : , i Ax=\sum _{i} x_{i}A_{:,i} Ax=i∑xiA:,i - 生成子空间(span):一组向量的线
性组合,是指每个向量乘以对应标量系数之后的和,即:
∑ i c i v ( i ) \sum _{i} c_{i}v^{(i)} i∑civ(i) - 线性相关(linear dependence):某个向量是一组向量中某些向量的线性组合
- 线性无关(linear independent):一组向量中
的任意一个向量都不能表示成其他向量的线性组合 - 方阵(square):矩阵行和列相等
- 奇异矩阵(singular):列向量线性相关的方阵,不可逆
2.5 范数
- 范数(norm):衡量向量大小
∥ x ∥ p = ( ∑ i ∣ x i ∣ p ) 1 p \left \| x \right \|_{p}=\left ( \sum _{i}\left | x_{i} \right | ^{p} \right ) ^{\frac{1}{p}} ∥x∥p=(i∑∣xi∣p)p1 - 欧几里得范数(Euclidean norm):
p
=
2
p = 2
p=2,它表示从原点
出发到向量 x \textbf{x} x 确定的点的欧几里得距离。在机器学习中频繁使用,不指明 p p p值时,默认为欧几里得距离。 -
L
1
L1
L1范数:在各个位置斜率相同
∥ x ∥ 1 = ∑ i ∣ x i ∣ \left \| x \right \|_{1}= \sum _{i}\left | x_{i} \right | ∥x∥1=i∑∣xi∣ - 最大范数(max norm):向量中具有最大幅值的元素的绝对值
∥ x ∥ ∞ = max i ∣ x i ∣ \left \| x \right \|_{\infty }= \max \limits_{i}\left | x_i \right | ∥x∥∞=imax∣xi∣ - Frobenius 范数(Frobenius norm):衡量矩阵的大小
∥ A ∥ F = ∑ i , j A i , j 2 \left \| A \right \|_{F}= \sqrt{\sum _{i,j}A_{i,j}^{2}} ∥A∥F=i,j∑Ai,j2
2.6 特殊类型的矩阵和向量
- 对角矩阵(diagonal matrix):只在主对角线上含有非零元素,其他位置都是零。例如,单位矩阵,用 d i a g ( v ) diag(v) diag(v)表示
- 对称矩阵(diagonal matrix):转置和自己相等的矩阵
- 单位向量(unit vector)是具有单位范数(unit norm)的向量:
∥ x ∥ 2 = 1 \left \| x \right \|_{2}= 1 ∥x∥2=1
- 正交(orthogonal):两个向量之间的夹角是90 度
x ⊤ y = 0 x^{\top }y=0 x⊤y=0 - 标准正交(orthonormal):向量不仅互相正交,并且范数都为1
- 正交矩阵(orthogonal matrix)是指行向量和列向量是分别标准正交的方阵:
A ⊤ A = A A ⊤ = I , A − 1 = A ⊤ A^{\top }A=AA^{\top }=I,A^{-1}=A^{\top } A⊤A=AA⊤=I,A−1=A⊤
2.7 特征分解
-
特征分解(eigendecomposition):将矩阵分
解成一组特征向量和特征值。 -
方阵 A \textbf{A} A 的特征向量(eigenvector)是指与 A \textbf{A} A 相乘后相当于对该向量进行缩放
的非零向量v,标量λ被称为这个特征向量对应的特征值(eigenvalue)
A v = λ v Av = \lambda v Av=λv
-
特征分解(eigendecomposition):假设矩阵 A \textbf{A} A 有 n n n 个线性无关的特征向量,将特征向量连接成一个矩阵 V \textbf{V} V,使得每一列是一个特征向量;将特征值连接成一个向量 λ \mathit{\mathit{\lambda}} λ, A \textbf{A} A的特征分解为:
A = V d i a g ( λ ) V − 1 A = V diag(\lambda) V_{-1} A=Vdiag(λ)V−1 -
正定(positive definite)所有特征值都是正数的矩阵;
x T A x = 0 ⇒ x = 0 x^{T}Ax= 0\Rightarrow x=0 xTAx=0⇒x=0 -
半正定(positive semidefinite):所有特征值都是非负数的矩阵;
∀ x , x T A x ⩾ 0 \forall x,x^{T}Ax\geqslant 0 ∀x,xTAx⩾0 -
负定(negative definite):所有特征值都是负数的矩阵;
-
半负定
(negative semidefinite):所有特征值都是非正数的矩阵。
2.8 奇异值分解
- 奇异值分解(singular value decomposition, SVD),将矩阵分
解为奇异向量(singular vector)和奇异值(singular value)。每
个实数矩阵都有一个奇异值分解,但不一定都有特征分解。
假设
A
\textbf{A}
A 是一个
m
×
n
m \times n
m×n 的矩阵,那么
U
\textbf{U}
U是一个
m
×
m
m \times m
m×m 的矩阵,
D
\textbf{D}
D是一个
m
×
n
m \times n
m×n的矩阵,V 是一个
n
×
n
n \times n
n×n矩阵。矩阵
U
\textbf{U}
U 和
V
\textbf{V}
V 都定义为正交矩阵,而矩阵
D
\textbf{D}
D 定义为对角矩阵。注意,矩阵
D
\textbf{D}
D 不一定是方阵。
A
=
U
D
V
T
A=UDV^{T}
A=UDVT
- 奇异值(singular value):对角矩阵 D \textbf{D} D 对角线上的元素;
- 左奇异向量(left singular vector):矩阵 U \textbf{U} U 的列向量;
- 右奇异向量(right singular vector):矩阵 V \textbf{V} V 的列向量。
知乎参考资料(https://zhuanlan.zhihu.com/p/31386807)
2.9 Moore-Penrose伪逆
- Moore-Penrose 伪逆(Moore-Penrose pseudoinverse):。矩阵
A
\textbf{A}
A 的伪逆定义为:
A + = lim α → 0 ( A T A + α I ) − 1 A T = V D + U T A ^{+}=\lim_{\alpha \rightarrow 0}(A^{T}A+\alpha I)^{-1}A^{T}=VD^{+} U^{T} A+=α→0lim(ATA+αI)−1AT=VD+UT
其中,矩阵 U \textbf{U} U, D \textbf{D} D 和 V \textbf{V} V是矩阵 A \textbf{A} A奇异值分解后得到的矩阵。对角矩阵 D \textbf{D} D 的伪逆 D + D^{+} D+ 是其非零元素取倒数之后再转置得到的.
2.10 迹运算
- 迹运算返回的是矩阵对角元素的和:
T r ( A ) = ∑ i A i , i ∥ A ∥ F = T r ( A A T ) Tr(A)=\sum_{i}A_{i,i}\left \| A \right \|_{F}=\sqrt{Tr(AA^{T})} Tr(A)=i∑Ai,i∥A∥F=Tr(AAT) - 性质:
- 转置不变,
T r ( A ) = T r ( A T ) Tr(A)=Tr(A^{T}) Tr(A)=Tr(AT) - 交换律,
T r ( A B C ) = T r ( C A B ) = T r ( B C A ) Tr(ABC) = Tr(CAB) = Tr(BCA) Tr(ABC)=Tr(CAB)=Tr(BCA) - 标量在迹运算后仍然是它自己。
a = T r ( a ) a = Tr(a) a=Tr(a)
- 转置不变,
2.11 行列式
- 行列式,记作 d e t ( A ) det(A) det(A),是一个将方阵 A \textbf{A} A映射到实数的函数。行列式等于矩阵特征值的乘积。
2.12 实例:主成分分析
- 主成分分析(principal components analysis, PCA)是一个简单的机器学习算法,可以通过基础的线性代数知识推导,可用来降维操作。自行学会推导。