目录
1 线性代数知识补充
1.1 范数
范数是将向量映射成一个非负数的函数,即 f : R n ⟼ R + f:\mathbb{R}^n\longmapsto\mathbb{R}^+ f:Rn⟼R+
严格说,对于 x,y ∈ R n \textbf{x,y}\in\mathbb{R^n} x,y∈Rn应该满足性质:
- f ( x ) = 0 ⇒ x = 0 f(\textbf{x}) = 0 \Rightarrow \textbf{x} = 0 f(x)=0⇒x=0
- f ( x + y ) ≤ f ( x ) + f ( y ) f(\textbf{x}+\textbf{y}) \le f(\textbf{x}) + f(\textbf{y}) f(x+y)≤f(x)+f(y)
- ∀ α ∈ R , f ( α x ) = ∣ α ∣ f ( x ) \forall \alpha\in\mathbb{R},f(\alpha\textbf{x}) = |\alpha|f(\textbf{x}) ∀α∈R,f(αx)=∣α∣f(x)
最常用的范数形式之一 L p L^p Lp范数定义为:
∥ x ∥ p = ( ∑ i ∣ x i ∣ p ) 1 p f o r p ∈ R , p ≥ 1 \Vert \textbf{x} \Vert_p = (\sum_i|x_i|^p)^\frac{1}{p}\\ for\ p\in\mathbb{R},p\ge1 ∥x∥p=(i∑∣xi∣p)p1for p∈R,p≥1
- 二范数是向量的欧氏距离
- 一范数是元素绝对值之和
- 无穷范数是元素绝对值的最大值
在深度学习中,为了衡量矩阵的大小,最常见的做法是使用Frobenius 范数,即
∥ A ∥ F = ∑ i , j A i , j 2 \Vert \textbf{A}\Vert_F=\sqrt{\sum_{i,j}A^2_{i,j}} ∥A∥F=i,j∑Ai,j2
(矩阵所有元素平方和开根号)
1.2 奇异值分解(singular value decomposition)
奇异值分解(SVD)是将矩阵分解为奇异值和奇异向量,它最有用的性质在于,可以拓展矩阵求逆到非方阵上,这将在1.3中 进行讨论。
对于矩阵 A m × n \textbf{A}_{m\times n} Am×n,可以分解为
A = U m × m D m × n V n × n T \textbf{A}=\textbf{U}_{m\times m}\textbf{D}_{m\times n}\textbf{V}^T_{n\times n} A=Um×mDm×nVn×nT
其中要求U和V为正交矩阵,D为对角阵(不一定为方阵)
- D对角上的元素称为A的奇异值
- U称为左奇异向量
- V称为右奇异向量
由于
A A T = UD V T V D T U T A A T = UD D T U T \textbf{A}\textbf{A}^T = \textbf{U}\textbf{D}\textbf{V}^T\textbf{V}\textbf{D}^T\textbf{U}^T\\ \textbf{A}\textbf{A}^T = \textbf{U}\textbf{D}\textbf{D}^T\textbf{U}^T\\ AAT=UDVTVDTUTAAT=UDDTUT
因为D不一定是方阵对角阵,这里不妨设 D = [ Λ O ] \textbf{D}=[\Lambda \ \ \textbf{O}] D=[Λ O]
则有
D D T = [ Λ O ] [ Λ O ] = Λ m × m 2 \textbf{D}\textbf{D}^T=[\Lambda \ \ \textbf{O}] \left[ \begin{matrix} \Lambda \\ \textbf{O} \end{matrix} \right]=\Lambda^2_{m\times m} DDT=[Λ O][ΛO]=