7.1.2 向量空间# 7.1.2.1 向量相加和缩放# 我们可以把一个向量 x ∈ R n x \in \mathbb{R}^n x ∈ R n 看成 n 维欧几里得空间里的一个点。一个向量空间是一系列向量的集合,这些向量可以互相相加或乘以标量来缩放。
7.1.2.2 线性无关,张成和基向量# 如果一组向量 { x 1 , x 2 , … , x n } \{x_1,x_2,\dots,x_n\} { x 1 , x 2 , … , x n } 中没有向量可以被表示成其余向量的线性组合,那么这组向量被认为线性无关 。反之,如果一个向量可以被表示为其余向量的线性组合,这组向量就是线性相关的。
一组向量 { x 1 , x 2 , … , x n } \{x_1,x_2,\dots,x_n\} { x 1 , x 2 , … , x n } 的张成 span 指的是由 { x 1 , x 2 , … , x n } \{x_1,x_2,\dots,x_n\} { x 1 , x 2 , … , x n } 的所有线性组合组成的集合。
s p a n ( { x 1 , … , x n } ) ≜ { v : v = ∑ i = 1 n α i x i , α i ∈ R } \mathrm {span}(\{ x_1,\dots,x_n \}) \triangleq \left \{ v:v=\sum_{i=1}^n \alpha_ix_i,\ \ \alpha_i \in \mathbb{R} \right \} span ({ x 1 , … , x n }) ≜ { v : v = i = 1 ∑ n α i x i , α i ∈ R } 当 { x 1 , x 2 , … , x n } \{x_1,x_2,\dots,x_n\} { x 1 , x 2 , … , x n } 是一组线性无关向量且 x i ∈ R n x_i \in \mathbb{R}^n x i ∈ R n ,则 s p a n ( { x 1 , … , x n } ) = R n \mathrm {span}(\{ x_1,\dots,x_n \})=\mathbb{R}^n span ({ x 1 , … , x n }) = R n . 换句话说,任何向量 v ∈ R n v \in \mathbb{R}^n v ∈ R n 可以被写成 { x 1 , x 2 , … , x n } \{x_1,x_2,\dots,x_n\} { x 1 , x 2 , … , x n } 的线性组合。
一个基 basis B \mathcal B B 是一组张成整个空间的线性无关向量,即 s p a n ( B ) = R n \mathrm {span}(\mathcal B)=\mathbb{R}^n span ( B ) = R n .
7.1.2.3 线性映射与矩阵# 一个线性映射 或线性变换 指的是任何满足下面条件的函数 f : V → W f:\mathcal V \rightarrow \mathcal W f : V → W :
f ( v + w ) = f ( v ) + f ( w ) f(v+w)=f(v)+f(w) f ( v + w ) = f ( v ) + f ( w ) ,f ( a v ) = a f ( v ) f(a\ \boldsymbol v)=af(\boldsymbol v) f ( a v ) = a f ( v ) for all v , w ∈ V v,w \in \mathcal V v , w ∈ V
假设 V = R n , W = R m \mathcal V = \mathbb{R}^n,\ \mathcal W = \mathbb{R}^m V = R n , W = R m ,我们可以按如下方式对任意 x ∈ R n x\in \mathbb{R}^n x ∈ R n 计算 y = f ( x ) ∈ R m y=f(x)\in \mathbb{R}^m y = f ( x ) ∈ R m :
y = ( ∑ j = 1 n a 1 j x j , … , ∑ j = 1 n a m j x j ) y = \left( \sum_{j=1}^n a_{1j}x_j,\dots,\sum_{j=1}^n a_{mj}x_j \right) y = ( j = 1 ∑ n a 1 j x j , … , j = 1 ∑ n a mj x j ) 上式可以简化为用一个 m × n m\times n m × n 的矩阵 A \mathrm A A 乘以向量 x x x :
y = A x y = \mathrm A x y = A x 具体见 Section 7.2.
如果函数可逆:
x = A − 1 y x = \mathrm A^{-1}y x = A − 1 y 具体见 Section 7.3.
7.1.2.4 矩阵的值域空间和零值空间# 假设我们把一个矩阵 A ∈ R m × n \mathrm A \in \mathbb{R}^{m\times n} A ∈ R m × n 看成 R n \mathbb{R}^n R n 空间的 m 个向量,矩阵的值域空间 range (又称 column space )为 A \mathrm A A 的列向量的张成,即:
r a n g e ( A ) ≜ { v ∈ R m : v = A x , x ∈ R n } \mathrm {range}(\mathrm A) \triangleq \{ v\in \mathbb{R}^m:v=\mathrm Ax,x\in\mathbb{R}^n \} range ( A ) ≜ { v ∈ R m : v = A x , x ∈ R n } range 可以理解为可以由矩阵 A \mathrm A A 生成的所有向量的集合;它是 R m \mathbb{R}^m R m 的子空间,维数由 A \mathrm A A 的秩决定(见 Section 7.1.4.3)
零值空间 nullspace 是所有乘以矩阵 A \mathrm A A 后为 0 的向量集合,即:
n u l l s p a c e ( A ) ≜ { x ∈ R n : A x = 0 } \mathrm {nullspace}(\mathrm A)\triangleq \{ x\in \mathbb{R}^n:\mathrm A x =0 \} nullspace ( A ) ≜ { x ∈ R n : A x = 0 } A \mathrm A A 的行的张成是 A \mathrm A A 的 nullspace 的补集。
上图展示了矩阵 range 和 nullspace 的直观表示。下面我们会在 Section 7.5.4 讨论如何计算这两个空间。
7.1.2.5 线性投影# 一个向量 y ∈ R m y \in \mathbb{R}^m y ∈ R m 的在 s p a n ( { x 1 , … , x n } ) , x i ∈ R m \mathrm{span}(\{x_1,\dots,x_n\}),\ x_i\in \mathbb{R}^m span ({ x 1 , … , x n }) , x i ∈ R m 上的投影 是指在 s p a n ( { x 1 , … , x n } ) \mathrm{span}(\{x_1,\dots,x_n\}) span ({ x 1 , … , x n }) 空间上且和 y y y 的欧式距离 ∣ ∣ v − y ∣ ∣ 2 ||v-y||_2 ∣∣ v − y ∣ ∣ 2 尽可能接近的向量。我们记为 P r o j ( y ; { x 1 , … , x n } ) \mathrm{Proj}(y;\{x_1,\dots,x_n\}) Proj ( y ; { x 1 , … , x n }) ,定义如下:
P r o j ( y ; { x 1 , … , x n } ) = arg min v ∈ s p a n ( { x 1 , … , x n } ) ∣ ∣ v − y ∣ ∣ 2 \mathrm{Proj}(y;\{x_1,\dots,x_n\})=\mathop{\arg\min}_{v\in\mathrm{span}(\{x_1,\dots,x_n\})} ||v-y||_2 Proj ( y ; { x 1 , … , x n }) = arg min v ∈ span ({ x 1 , … , x n }) ∣∣ v − y ∣ ∣ 2 给定一个满秩矩阵 A ∈ R m × n \mathrm A \in \mathbb{R}^{m\times n} A ∈ R m × n 且 m ≥ n m\geq n m ≥ n ,我们可以定义向量 y ∈ R m y\in \mathbb{R}^m y ∈ R m 在 A \mathrm A A 的 range 上的投影为:
P r o j ( y ; { x 1 , … , x n } ) = arg min v ∈ R ( A ) ∣ ∣ v − y ∣ ∣ 2 = A ( A T A ) − 1 A T y \mathrm{Proj}(y;\{x_1,\dots,x_n\})=\mathop{\arg\min}_{v\in\mathcal{R}(\mathrm A)} ||v-y||_2 = \mathrm A(\mathrm A^\mathsf T\mathrm A)^{-1}\mathrm A^\mathsf Ty Proj ( y ; { x 1 , … , x n }) = arg min v ∈ R ( A ) ∣∣ v − y ∣ ∣ 2 = A ( A T A ) − 1 A T y 这个公式和 Section 11.2.2.2 的 normal equation 是一致的。
7.1.3 向量和矩阵的范数# 本部分中我们讨论如何度量向量和矩阵的“大小”。
7.1.3.1 向量范数# 向量的范数 ∣ ∣ x ∣ ∣ ||x|| ∣∣ x ∣∣ 不正规地说就是向量长度的一种测量。正式的说法是,一个范数是满足下列4个条件的任意函数 f : R n → R f:\mathbb{R}^n\rightarrow \mathbb{R} f : R n → R :
Non-negativity :对所有 x ∈ R n , f ( x ) ≥ 0 x\in \mathbb{R}^n,\ f(x)\geq0 x ∈ R n , f ( x ) ≥ 0 Definiteness :f ( x ) = 0 i f a n d o n l y i f x = 0 f(x)=0\ \mathrm{if\ and\ only\ if\ }x=0 f ( x ) = 0 if and only if x = 0 Absolute value homogeneity :对所有 x ∈ R n , t ∈ R , f ( t x ) = ∣ t ∣ f ( x ) x\in \mathbb{R}^n,\ t\in \mathbb{R},\ f(tx)=|t|f(x) x ∈ R n , t ∈ R , f ( t x ) = ∣ t ∣ f ( x ) Triangle inequality ::对所有 x , y ∈ R n , f ( x + y ) ≤ f ( x ) + f ( y ) x,y\in \mathbb{R}^n,\ f(x+y)\leq f(x)+f(y) x , y ∈ R n , f ( x + y ) ≤ f ( x ) + f ( y ) 下面是常用范数:
p-norm :∣ ∣ x ∣ ∣ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p , f o r p ≥ 1 ||x||_p=(\sum_{i=1}^n|x_i|^p)^{1/p},\ \mathrm{for\ } p\geq1 ∣∣ x ∣ ∣ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1/ p , for p ≥ 1 2-norm :∣ ∣ x ∣ ∣ 2 = ∑ i = 1 n x i 2 ||x||_2=\sqrt{\sum_{i=1}^n x_i^2} ∣∣ x ∣ ∣ 2 = ∑ i = 1 n x i 2 ,又称欧式范数。注意性质:∣ ∣ x ∣ ∣ 2 2 = x T x ||x||^2_2=x^\mathsf T x ∣∣ x ∣ ∣ 2 2 = x T x 1-norm :∣ ∣ x ∣ ∣ 1 = ∑ i = 1 n ∣ x i ∣ ||x||_1=\sum_{i=1}^n |x_i| ∣∣ x ∣ ∣ 1 = ∑ i = 1 n ∣ x i ∣ Max-norm :∣ ∣ x ∣ ∣ ∞ = m a x i ∣ x i ∣ ||x||_{\infty}=\mathrm{max}_i|x_i| ∣∣ x ∣ ∣ ∞ = max i ∣ x i ∣ 0-norm :∣ ∣ x ∣ ∣ 0 = ∑ i = 1 n I ( ∣ x i ∣ > 0 ) ||x||_0 = \sum_{i=1}^n\mathbb I(|x_i|>0) ∣∣ x ∣ ∣ 0 = ∑ i = 1 n I ( ∣ x i ∣ > 0 ) . 这是伪范数,因为它不满足同质性,它指的是 x x x 中的非零元素的数量。如果我们定义 0 0 = 0 0^0 =0 0 0 = 0 ,我们可以把它写成 ∣ ∣ x ∣ ∣ 0 = ∑ i = 1 n x i 0 ||x||_0 = \sum_{i=1}^nx_i^0 ∣∣ x ∣ ∣ 0 = ∑ i = 1 n x i 0 .7.1.3.2 矩阵范数# 由于矩阵并没有长度的概念,因此将矩阵范数看作是对矩阵长度的度量并不可行。
假设我们认为一个矩阵 A ∈ R m × n \mathrm A \in \mathbb{R}^{m\times n} A ∈ R m × n 定义了一个线性函数 f ( x ) = A x f(x)=\mathrm A x f ( x ) = A x 我们定义 A \mathrm A A 的 诱导范数 induced norm 为对输入的最大放大倍数:
∣ ∣ A ∣ ∣ p = max x ≠ 0 ∣ ∣ A x ∣ ∣ p ∣ ∣ x ∣ ∣ p = max ∣ ∣ x ∣ ∣ = 1 ∣ ∣ A x ∣ ∣ p ||\mathrm A||_p=\max_{x\neq0}\frac{||\mathrm A x||_p}{||x||_p}=\max_{||x||=1}||\mathrm A x||_p ∣∣ A ∣ ∣ p = x = 0 max ∣∣ x ∣ ∣ p ∣∣ A x ∣ ∣ p = ∣∣ x ∣∣ = 1 max ∣∣ A x ∣ ∣ p 通常令 p = 2 p=2 p = 2 ,此时:
∣ ∣ A ∣ ∣ 2 = λ m a x ( A T A ) = max i σ i ||A||_2= \sqrt{\lambda_{max}(\mathrm A^\mathsf T\mathrm A)}=\max_i\sigma_i ∣∣ A ∣ ∣ 2 = λ ma x ( A T A ) = i max σ i 其中 σ i \sigma_i σ i 是 A \mathrm A A 的奇异值。
核范数 ,又叫迹范数 ,定义为:
∣ ∣ A ∣ ∣ ∗ = t r ( A T A ) = ∑ i σ i ||\mathrm A||_*=\mathrm{tr}(\sqrt{\mathrm A^\mathsf T\mathrm A})=\sum_i\sigma_i ∣∣ A ∣ ∣ ∗ = tr ( A T A ) = i ∑ σ i 其中 A T A \sqrt{\mathrm A^\mathsf T\mathrm A} A T A 是矩阵平方根。由于奇异值总是非负的,我们有:
∣ ∣ A ∣ ∣ ∗ = ∑ i ∣ σ i ∣ = ∣ ∣ σ ∣ ∣ 1 ||\mathrm A||_* = \sum_i|\sigma_i|=||\sigma||_1 ∣∣ A ∣ ∣ ∗ = i ∑ ∣ σ i ∣ = ∣∣ σ ∣ ∣ 1 使用该范数作为正则项会鼓励许多奇异值变为0,进而导致一个低秩矩阵。更一般的情况下,我们可以定义 Schatten p-norm 为:
∣ ∣ A ∣ ∣ p = ( ∑ i σ i p ( A ) ) 1 / p ||\mathrm A||_p = \left( \sum_i \sigma_i^p(\mathrm A) \right )^{1/p} ∣∣ A ∣ ∣ p = ( i ∑ σ i p ( A ) ) 1/ p 如果我们将一个矩阵当成一个向量,我们就可以用向量范数定义矩阵范数,∣ ∣ A ∣ ∣ = ∣ ∣ v e c ( A ) ∣ ∣ ||\mathrm A||=||\mathrm{vec(A)}|| ∣∣ A ∣∣ = ∣∣ vec ( A ) ∣∣ . 如果向量范数是 2-norm,对应的矩阵范数称作 Frobenius norm :
∣ ∣ A ∣ ∣ F = ∑ i = 1 m ∑ j = 1 n a i j 2 = t r ( A T A ) = ∣ ∣ v e c ( A ) ∣ ∣ 2 ||\mathrm A||_F = \sqrt{\sum_{i=1}^m\sum_{j=1}^n a_{ij}^2}= \sqrt{\mathrm{tr}(\mathrm A^\mathsf T\mathrm A)}=||\mathrm{vec(A)}||_2 ∣∣ A ∣ ∣ F = i = 1 ∑ m j = 1 ∑ n a ij 2 = tr ( A T A ) = ∣∣ vec ( A ) ∣ ∣ 2 如果 A \mathrm A A 的计算代价太大,但 A v \mathrm A v A v 的代价很小(对一个随机向量 v v v ),我们可以用 Hutchinson trace estimator 对 Frobenius norm 做一个随机近似:
∣ ∣ A ∣ ∣ F 2 = t r ( A T A ) = E [ v T A T A v ] = E [ ∣ ∣ A v ∣ ∣ 2 2 ] ||\mathrm A||_F^2 = \mathrm{tr}(\mathrm A^\mathsf T \mathrm A)= \mathbb E[v^\mathsf T \mathrm A^\mathsf T\mathrm Av]=\mathbb E[||\mathrm A v||_2^2] ∣∣ A ∣ ∣ F 2 = tr ( A T A ) = E [ v T A T A v ] = E [ ∣∣ A v ∣ ∣ 2 2 ] 其中 v ∼ N ( 0 , I ) v \sim \mathcal N (\boldsymbol{0},\mathrm{I}) v ∼ N ( 0 , I ) .
7.1.4 矩阵的性质# 本部分讨论矩阵的各种标量性质。
7.1.4.1 方阵的迹 trace# 方阵 A ∈ R n × n \mathrm A\in \mathbb{R}^{n\times n} A ∈ R n × n 的迹,记为 t r ( A ) \mathrm{tr(A)} tr ( A ) ,定义为矩阵对角线元素之和:
t r ( A ) ≜ ∑ i = 1 n A i i \mathrm{tr(A)} \triangleq \sum_{i=1}^n \mathrm A_{ii} tr ( A ) ≜ i = 1 ∑ n A ii 迹拥有以下性质,令 c ∈ R c\in \mathbb{R} c ∈ R 为一个标量,A , B ∈ R n × n \mathrm{A,B}\in \mathbb{R}^{n\times n} A , B ∈ R n × n 均为方阵吗,λ i \lambda_i λ i 为 A \mathrm A A 的特征值:
t r ( A ) = t r ( A T ) t r ( A + B ) = t r ( A ) + t r ( B ) t r ( c A ) = c t r ( A ) t r ( A B ) = t r ( B A ) t r ( A ) = ∑ i = 1 n λ i \mathrm{tr(A)}=\mathrm{tr(A^\mathsf T)}\\ \mathrm{tr(A+B)}=\mathrm{tr(A)} + \mathrm{tr(B)}\\ \mathrm{tr}(c\mathrm A) = c\ \mathrm{tr(A)}\\ \mathrm{tr(AB)}=\mathrm{tr(BA)}\\ \mathrm{tr(A)} = \sum_{i=1}^n \lambda_i\quad tr ( A ) = tr ( A T ) tr ( A + B ) = tr ( A ) + tr ( B ) tr ( c A ) = c tr ( A ) tr ( AB ) = tr ( BA ) tr ( A ) = i = 1 ∑ n λ i 重要性质:cyclic permutation property ,对 A B C \mathrm {ABC} ABC 为方阵的 A , B , C \mathrm {A,B,C} A , B , C 有:
t r ( A B C ) = t r ( B C A ) = t r ( C A B ) \rm tr(ABC) = tr(BCA) = tr(CAB) tr ( ABC ) = tr ( BCA ) = tr ( CAB ) 由此我们还可以推导出迹技巧 ,可以将标量内积 x T A x x^\mathsf T \mathrm A x x T A x 重写为:
x T A x = t r ( x T A x ) = t r ( x x T A ) x^\mathsf T \mathrm A x = \mathrm{tr}(x^\mathsf T \mathrm A x)= \mathrm{tr}(xx^\mathsf T \mathrm A ) x T A x = tr ( x T A x ) = tr ( x x T A ) 有些情况下,直接计算矩阵 A \mathrm A A 的代价高昂,但计算矩阵向量乘积 A v \mathrm A v A v 的代价较低。假设 v v v 是一个随机向量且 E [ v v T ] = I \mathbb E [vv^\mathsf T] = \mathrm I E [ v v T ] = I . 在这种情况下,我们可以用下列关系对 t r ( A ) \mathrm {tr(A)} tr ( A ) 进行蒙特卡洛近似:
t r ( A ) = t r ( A E [ v v T ] ) = E [ t r ( A v v T ) ] = E [ t r ( v T A v ) ] \mathrm {tr(A)}=\mathrm{tr(A}\mathbb E [vv^\mathsf T])= \mathbb E [\mathrm {tr(A}vv^\mathsf T)]= \mathbb E[\mathrm{tr}(v^\mathsf T\mathrm Av)] tr ( A ) = tr ( A E [ v v T ]) = E [ tr ( A v v T )] = E [ tr ( v T A v )] 这被称为 Hutchinson trace estimator .
7.1.4.2 方阵的行列式# 方阵的行列式 determinant 记为 det ( A ) \rm \det(A) det ( A ) or ∣ A ∣ |\rm A| ∣ A∣ 是对一个单位体积在线性变换后的变化程度的度量。(更正式的定义较为复杂,这里不需要讨论)
行列式的性质,其中 A , B ∈ R n × n \mathrm {A,B} \in \mathbb{R}^{n\times n} A , B ∈ R n × n :
∣ A ∣ = ∣ A T ∣ ∣ c A ∣ = c n ∣ A ∣ ∣ A B ∣ = ∣ A ∣ ∣ B ∣ ∣ A ∣ = 0 i f f A i s s i n g u l a r ∣ A − 1 ∣ = 1 / ∣ A ∣ i f A i s n o t s i n g u l a r ∣ A ∣ = ∏ i = 1 n λ i w h e r e λ i a r e t h e e i g e n v a l u e s o f A |\mathrm A|=|\mathrm A^\mathsf T|\\ |c\mathrm A| = c^n|\mathrm A|\\ |\mathrm {AB}| = |\mathrm A||\mathrm B|\\ |\mathrm A| =0 \ \ \rm iff \ A\ is\ singular\\ |\mathrm A^{-1}| =1/|\mathrm A| \ \ \rm if \ A\ is\ not\ singular\\\ |\mathrm A| =\prod_{i=1}^{n}\lambda_i \ \ \mathrm {where}\ \lambda_i \ \rm are\ the\ eigenvalues\ of\ A ∣ A ∣ = ∣ A T ∣ ∣ c A ∣ = c n ∣ A ∣ ∣ AB ∣ = ∣ A ∣∣ B ∣ ∣ A ∣ = 0 iff A is singular ∣ A − 1 ∣ = 1/∣A∣ if A is not singular ∣A∣ = i = 1 ∏ n λ i where λ i are the eigenvalues of A 对于一个正定矩阵 A \mathrm A A ,我们可以写成如下形式:A = L L T \mathrm {A =LL^\mathsf T} A = L L T ,其中 L \mathrm L L 是下三角 Cholesky 分解。此时可得:
det ( A ) = det ( L ) det ( L T ) = det ( L ) 2 log det ( A ) = 2 log det ( L ) = 2 log ∏ i L i i = 2 t r a c e ( log ( d i a g ( L ) ) ) \mathrm {\det(A)=\det(L)\det(L^\mathsf T)=\det(L)^2}\\ \log\det(\mathrm A)=2\log\det(\mathrm L)=2\log\prod_i L_{ii}= 2\mathrm{trace}(\log(\rm{diag(L)})) det ( A ) = det ( L ) det ( L T ) = det ( L ) 2 log det ( A ) = 2 log det ( L ) = 2 log i ∏ L ii = 2 trace ( log ( diag ( L ) )) 7.1.4.3 矩阵的秩# 矩阵 A \mathrm A A 的列矩 column rank 是它的列张成的空间的维度,行距 row rank 是它的行张成的空间的维度。线性代数的一个基本事实:对任意矩阵 A \mathrm A A ,c o l u m n r a n k ( A ) = r o w r a n k ( A ) \rm columnrank(A)=rowrank(A) columnrank ( A ) = rowrank ( A ) ,因此这个量就简化为 A \rm A A 的秩,记为 r a n k ( A ) \rm rank(A) rank ( A ) . 秩的基本性质如下:
For A ∈ R m × n , r a n k ( A ) ≤ min ( m , n ) \mathrm A \in \mathbb{R}^{m\times n},\ \mathrm{rank(A)}\leq\min(m,n) A ∈ R m × n , rank ( A ) ≤ min ( m , n ) . 如果 r a n k ( A ) = min ( m , n ) \mathrm{rank(A)}=\min(m,n) rank ( A ) = min ( m , n ) ,则 A \mathrm A A 是满秩 full rank 的,否则就是欠秩 rank deficient 的。 For A ∈ R m × n , r a n k ( A ) = r a n k ( A T ) = r a n k ( A T A ) = r a n k ( A A T ) \mathrm A \in \mathbb{R}^{m\times n},\ \mathrm{rank(A)}=\mathrm{rank(A^\mathsf T)}=\mathrm{rank(A^\mathsf T A)}=\mathrm{rank(AA^\mathsf T)} A ∈ R m × n , rank ( A ) = rank ( A T ) = rank ( A T A ) = rank ( A A T ) . For A ∈ R m × n , B ∈ R n × p , r a n k ( A B ) ≤ min ( r a n k ( A ) , r a n k ( B ) ) \mathrm A \in \mathbb{R}^{m\times n},\ \mathrm B\in \mathbb{R}^{n\times p},\ \rm rank(AB)\leq\min(rank(A),rank(B)) A ∈ R m × n , B ∈ R n × p , rank ( AB ) ≤ min ( rank ( A ) , rank ( B )) . For A , B ∈ R m × n , r a n k ( A + B ) ≤ r a n k ( A ) + r a n k ( B ) \mathrm {A,B} \in \mathbb{R}^{m\times n},\ \rm rank(A+B) \leq rank(A) + rank(B) A , B ∈ R m × n , rank ( A + B ) ≤ rank ( A ) + rank ( B ) . 另外可以证明方阵当且仅当是满秩时是可逆的。
7.1.4.4 条件数# 矩阵的条件数 描述的是矩阵计算中的的数值稳定性,定义如下:
κ ( A ) ≜ ∣ ∣ A ∣ ∣ ⋅ ∣ ∣ A − 1 ∣ ∣ \kappa(\mathrm A)\triangleq ||\mathrm A||\cdot||\mathrm A^{-1}|| κ ( A ) ≜ ∣∣ A ∣∣ ⋅ ∣∣ A − 1 ∣∣ 其中 ∣ ∣ A ∣ ∣ ||\rm A|| ∣∣ A∣∣ 是矩阵的范数。我们可以证明 κ ( A ) ≥ 1 \kappa(\mathrm A)\geq 1 κ ( A ) ≥ 1 . (条件数依赖于范数的选取,我们默认用 ℓ 2 \ell_2 ℓ 2 范数)
如果 κ ( A ) \kappa(\mathrm A) κ ( A ) 较小(close to 1),则我们称 A \mathrm A A 是 well-conditioned. 如果 κ ( A ) \kappa(\mathrm A) κ ( A ) 较大,则我们称 A \mathrm A A 是 ill-conditioned. 较大的条件数意味着 A \mathrm A A 是接近奇异的,这是一个对奇异性接近度的度量,且是一个比行列式的大小更好的度量。例如,假设 A = 0.1 I 100 × 100 \mathrm A =0.1\mathrm I_{100\times 100} A = 0.1 I 100 × 100 ,则 d e t ( A ) = 10 − 100 \rm det(A)=10^{-100} det ( A ) = 1 0 − 100 ,意味着 A \rm A A 接近奇异矩阵,但是 κ ( A ) = 1 \kappa(\mathrm A)=1 κ ( A ) = 1 ,表示 A \rm A A 是 well-conditioned,实际上 A x \mathrm A x A x 仅仅将输入 x x x 缩放为 0.1 倍。
当使用 ℓ 2 \ell_2 ℓ 2 norm 时,条件数等于最大和最小的奇异值的比值,而奇异值是特征值的平方根:
κ ( A ) = σ m a x σ m i n = λ m a x λ m i n \kappa(\mathrm A)=\frac{\sigma_{max}}{\sigma_{min}}=\sqrt \frac{\lambda_{max}}{\lambda_{min}} κ ( A ) = σ min σ ma x = λ min λ ma x 我们可以进一步考虑一个二次目标函数 f ( x ) = x T A x f(x)=x^\mathsf T \mathrm A x f ( x ) = x T A x ,我们可以画出这个函数的水平线,它是椭圆形的,见 Section 7.4.4. 当我们增加 A \rm A A 的条件数,椭圆在某个方向上变得越来越狭长,像函数空间的一个狭窄山谷。如果 κ = 1 \kappa =1 κ = 1 ,也就是可以取到的最小值,水平线会变成圆形的。
7.1.5 特殊矩阵# 7.1.5.1 对角矩阵# 非对角线元素均为0
D = d i a g ( d 1 , d 2 , … , d n ) = ( d 1 d 2 ⋱ d n ) \mathrm D = \mathrm{diag}(d_1,d_2,\dots,d_n)= \left( \begin{matrix} d_{1} \\ & d_2 \\ & &\ddots \\ & & & d_n \\ \end{matrix} \right) D = diag ( d 1 , d 2 , … , d n ) = d 1 d 2 ⋱ d n 单位矩阵 identity matrix,记为 I ∈ R n × n \mathrm I \in \mathbb{R}^{n\times n} I ∈ R n × n ,是对角元素均为1,其他元素均为0的方阵,I = d i a g ( 1 , 1 , … , 1 ) \mathrm I = \mathrm{diag}(1,1,\dots,1) I = diag ( 1 , 1 , … , 1 ) . 它拥有性质:对于所有 A ∈ R n × n \mathrm A \in \mathbb{R}^{n\times n} A ∈ R n × n ,A I = A = I A \rm AI=A=IA AI = A = IA .
7.1.5.2 Triangular matirces# 上三角和下三角矩阵。它的一个常用性质是对角元素即为特征值,因此行列式的值就是对角元素的乘积。
7.1.5.3 正定矩阵# 给定一个方阵 A ∈ R n × n \mathrm A \in \mathbb{R}^{n\times n} A ∈ R n × n 和一个向量 x ∈ R n x \in \mathbb{R}^n x ∈ R n ,标量 x T A x x^\mathsf T \mathrm A x x T A x 被称为二次形 。
x T A x = ∑ i = 1 n ∑ j = 1 n A i j x i x j x^\mathsf T \mathrm A x=\sum_{i=1}^n\sum_{j=1}^n A_{ij}x_ix_j x T A x = i = 1 ∑ n j = 1 ∑ n A ij x i x j 注意:
x T A x = ( x T A x ) T = x T A T x = x T ( 1 2 A + 1 2 A T ) x x^\mathsf T \mathrm A x = (x^\mathsf T \mathrm A x)^\mathsf T=x^\mathsf T \mathrm A^\mathsf T x=x^\mathsf T ( \frac{1}{2} \mathrm A +\frac{1}{2} \mathrm A^\mathsf T)x x T A x = ( x T A x ) T = x T A T x = x T ( 2 1 A + 2 1 A T ) x 所以我们常常隐式地假设二次型的矩阵是对称的。
我们给出如下定义:
一个对称矩阵 A ∈ S n \mathrm A \in \mathbb S^n A ∈ S n 是正定矩阵 iff 对于所有非零向量 x ∈ R n x \in \mathbb{R}^n x ∈ R n ,均有 x T A x > 0 x^\mathsf T \mathrm A x>0 x T A x > 0 ,记为 A ≻ 0 \mathrm A \succ 0 A ≻ 0 or just A > 0 \mathrm A >0 A > 0 . 如果存在 x T A x = 0 x^\mathsf T \mathrm A x = 0 x T A x = 0 ,我们说这个矩阵是半正定的。我们记所有的正定矩阵为 S + + n \mathbb{S}_{++}^n S ++ n . 一个对称矩阵 A ∈ S n \mathrm A \in \mathbb S^n A ∈ S n 是负定矩阵 iff 对于所有非零向量 x ∈ R n x \in \mathbb{R}^n x ∈ R n ,均有 x T A x < 0 x^\mathsf T \mathrm A x<0 x T A x < 0 ,记为 A ≺ 0 \mathrm A \prec 0 A ≺ 0 or just A < 0 \mathrm A < 0 A < 0 . 如果存在 x T A x = 0 x^\mathsf T \mathrm A x = 0 x T A x = 0 ,我们说这个矩阵是半负定的。 一个对称矩阵 A ∈ S n \mathrm A \in \mathbb S^n A ∈ S n 是不定矩阵 if 它既不是半正定又不是半负定矩阵。 正定和负定矩阵总是可逆的。在 Section 7.4.3.1 中,我们会证明对称矩阵是正定矩阵 iff 它的所有特征值都是正的。
一个对称矩阵为正定矩阵的充分条件是对角主导 :
∣ a i i ∣ > ∑ j ≠ i ∣ a i j ∣ f o r a l l i |a_{ii}|>\sum_{j\neq i}|a_{ij}|\quad \mathrm{for\ all}\ i ∣ a ii ∣ > j = i ∑ ∣ a ij ∣ for all i 2d情况下,任何 2 × 2 2\times 2 2 × 2 矩阵 ( a b b d ) \dbinom{a\quad b}{b\quad d} ( b d a b ) 是正定矩阵 iff a > 0 , d > 0 , a d − b 2 > 0 a>0,d>0,ad-b^2>0 a > 0 , d > 0 , a d − b 2 > 0 .
最后,有一种正定矩阵很常见,需要额外注意。对任意矩阵 A ∈ R m × n \mathrm A \in \mathbb{R}^{m\times n} A ∈ R m × n (不需要对称或方阵),Gram matrix G = A T A G = \mathrm{A^\mathsf T A} G = A T A 总是半正定的,如果 m ≥ n m\geq n m ≥ n (这里为了方便假设 A \mathrm A A 是满秩矩阵),那么矩阵 G = A T A G = \mathrm{A^\mathsf T A} G = A T A 是正定矩阵。
7.1.5.4 正交矩阵# 两向量 x , y ∈ R n x,y \in \mathbb{R}^n x , y ∈ R n 如果 x T y = 0 x^\mathsf T y =0 x T y = 0 则称两向量正交。一个向量 x ∈ R n x\in \mathbb{R}^n x ∈ R n 如果 ∣ ∣ x ∣ ∣ 2 = 1 ||x||_2=1 ∣∣ x ∣ ∣ 2 = 1 则该向量是标准化的。一组向量相互正交且标准化被称为标准正交。一个方阵 U ∈ R n × n \mathrm U \in \mathbb{R}^{n\times n} U ∈ R n × n 如果所有列均标准正交则这个矩阵被称为正交矩阵。
U \mathrm U U 为正交矩阵当且仅当:U T U = I = U U T \mathrm {U^\mathsf T U=I=UU^\mathsf T} U T U = I = U U T .
换句话说,正交矩阵的逆即为转置。
正交矩阵的一个例子是旋转矩阵,例如,一个 3d 空间关于 z 轴旋转 α \alpha α 度的矩阵为:
R ( α ) = ( cos ( α ) − sin ( α ) 0 sin ( α ) cos ( α ) 0 0 0 1 ) \mathrm{R}(\alpha)= \left(\begin {matrix} \cos(\alpha) & -\sin(\alpha) & 0 \\ \sin(\alpha) & \cos(\alpha) & 0 \\ 0 & 0 & 1 \\ \end{matrix}\right) R ( α ) = cos ( α ) sin ( α ) 0 − sin ( α ) cos ( α ) 0 0 0 1 正交矩阵的一个良好性质是一个向量乘以正交矩阵不会改变非零向量的欧式范数,∣ ∣ U x ∣ ∣ 2 = ∣ ∣ x ∣ ∣ 2 ||\mathrm{U}x||_2=||x||_2 ∣∣ U x ∣ ∣ 2 = ∣∣ x ∣ ∣ 2
相似的是,我们可以发现两向量的夹角在正交矩阵变换后也得已保存:
cos ( α ( x , y ) ) = x T y ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ \cos(\alpha(x,y))=\frac{x^\mathsf T y}{||x||||y||} cos ( α ( x , y )) = ∣∣ x ∣∣∣∣ y ∣∣ x T y so
cos ( α ( U x , U y ) ) = ( U x ) T ( U y ) ∣ ∣ U x ∣ ∣ ∣ ∣ U y ∣ ∣ = x T y ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ = cos ( α ( x , y ) ) \cos(\alpha(\mathrm{U}x,\mathrm{U}y))= \frac{(\mathrm{U}x)^\mathsf T (\mathrm{U}y)} {||\mathrm{U}x|| ||\mathrm{U}y||}= \frac{x^\mathsf T y}{||x||||y||}=\cos(\alpha(x,y)) cos ( α ( U x , U y )) = ∣∣ U x ∣∣∣∣ U y ∣∣ ( U x ) T ( U y ) = ∣∣ x ∣∣∣∣ y ∣∣ x T y = cos ( α ( x , y )) 总的来说,正交矩阵变换是旋转和反射变换的扩展,都保存夹角和长度。
注意有一个 Gram Schmidt orthogonalization 的方法可以让任何方阵正交化,但这里我们不讨论。