1. 向量范数
- 0-范数:表示向量中非零元素的个数(即为其稀疏度)
- P-范数: ∥ x ∥ p = ( Σ ∣ x i ∣ p ) 1 / p \|x\|_p=(\Sigma|x_i|^p)^{1/p} ∥x∥p=(Σ∣xi∣p)1/p。matlab调用norm(x,p)。norm(x)默认为二范数,也就是欧几里得范数
- ∞ \infty ∞-范数: ∥ x ∥ ∞ = m a x i ∣ x i ∣ \|x\|_{\infty}=\mathop{max}\limits_i|x_i| ∥x∥∞=imax∣xi∣。matlba调用为norm(x,inf)
- − ∞ -\infty −∞-范数: ∥ x ∥ − ∞ = m i n i ∣ x i ∣ \|x\|_{-\infty}=\mathop{min}\limits_i|x_i| ∥x∥−∞=imin∣xi∣。matlab调用为norm(x,-inf)
2. 矩阵范数
- 1-范数: ∥ A ∥ 1 = m a x j Σ i = 1 m ∣ a i , j ∣ \|A\|_1=\mathop{max}\limits_j\Sigma^m_{i=1}|a_{i,j}| ∥A∥1=jmaxΣi=1m∣ai,j∣。也就是找出绝对值之和最大的列向量。俗称列和范数。matlab调用norm(A,1)。
- ∞ \infty ∞-范数: ∥ A ∥ ∞ = m a x i Σ j = 1 n ∣ a i , j ∣ \|A\|_\infty=\mathop{max}\limits_i\Sigma^n_{j=1}|a_{i,j}| ∥A∥∞=imaxΣj=1n∣ai,j∣。也就是找出绝对值之和最大的行向量。俗称行和范数。matlab调用norm(A,inf)
- 2-范数: ∥ A ∥ 2 = λ 1 2 \|A\|_2=\sqrt[2]{\lambda_1} ∥A∥2=2λ1。其中 λ 1 \lambda_1 λ1是 A T A A^TA ATA的最大特征值。这玩意儿是对称矩阵,不用担心负号问题。matlab调用norm(A,2)
- F-范数: ∥ A ∥ F = ( Σ i = 1 m Σ j = 1 n ∣ a i , j ∣ 2 ) 1 / 2 \|A\|_F=(\Sigma^m_{i=1}\Sigma^n_{j=1}|a_{i,j}|^2)^{1/2} ∥A∥F=(Σi=1mΣj=1n∣ai,j∣2)1/2。matlab调用norm(A,F)
- 核范数: ∥ A ∥ ∗ = t r ( A T A ) = t r ( Σ ) = Σ i = 1 n λ i \|A\|_*=tr(\sqrt{A^TA})=tr(\Sigma)=\Sigma^n_{i=1}\lambda_i ∥A∥∗=tr(ATA)=tr(Σ)=Σi=1nλi。 λ i \lambda_i λi为A的奇异值,没有绝对值符号。
奇异值和特征值
- 以Ax = b为例,x是m维向量,b是n维向量,m,n可以相等也可以不相等,表示矩阵可以将一个向量线性变换到另一个向量,这样一个线性变换的作用可以包含旋转、缩放和投影三种类型的效应。
- SVD分解:
A = μ Σ σ T A = \mu\Sigma\sigma^T A=μΣσT
μ \mu μ和 σ \sigma σ是两组正交的单位向量, Σ \Sigma Σ是对角阵,表示奇异值。A矩阵的作用是将一个向量从 σ \sigma σ这组正交基旋转到 μ \mu μ这组正交基的向量空间,并且对每个方向进行了一定的缩放。缩放因子就是各个奇异值。倘若 σ \sigma σ的维度大于 μ \mu μ,可以视为进行了投影。换言之SVD分解将一个矩阵混合在一起的三个作用分解了出来。这意味着,SVD可以扩展到任意线性变换。奇异值都是非负的。请注意,给定的矩阵,奇异值是固定的,但是左右奇异向量则是不定的。 - 特征值分解则是对旋转和缩放两种操作的归并。有投影(降维)效应的不是方阵,无法求取特征值。特征值和特征向量表示的是缩放作用。对于实对称矩阵,特征向量正交,便可以有
A = x λ x A=x\lambda x A=xλx
这就与SVD分解类似。是矩阵A将一个向量从x这组基的空间旋转到x这组基的空间,并在每个方向进行了缩放,由于前后都是x,就是没有旋转或者理解为旋转了0度。因此只能描述线性算子。特征值可能是负的。 - 总的来说,特征值分解与SVD都是给线性变换(一个矩阵)找一组特殊的基。我感觉特征值分解其实是一种找特殊角度,让旋转效果不显露出来,所以并不是所有矩阵都能找到这样巧妙的角度。仅有缩放效果,表示、计算的时候都更方便,这样的基很多时候不再正交了,又限制了一些应用。
- 在范数中的关系