范数这里感觉轻松不少,因为范数天然就是和几何联系在一起的。理解范数要比理解矩阵转置的含义要简单得多。
向量范数
Takeaway:
向量范数用于衡量向量的广义长度以及向量之间的距离。
向量范数必须满足的性质,在一定程度上可以体现为满足距离本身的直觉、尊重向量的数乘运算、尊重向量的加法运算。
$p$-范数中的$p$不断增大,代表向量最大分量的权重不断提升。
在日常情况下,距离似乎是个很浅显的东西,如果想要测量哈尔滨到北京的距离,只需要在地图上测量一下两点之间的线段长度,然后根据比例尺缩放即可,这相当于我们测量了一个从哈尔滨到北京的向量的长度。如果我们坐直达飞机,那么距离很有可能和这个向量的长度差不多,可是,我们想要从哈尔滨步行走到北京,要走的距离往往远大于这个测量的长度。这两个城市之间有高山,有河流,我们很多时候没有办法直接朝着目标的方向行走。那么,也就是说——对于不同的实际情况,我们可能需要不同的测量距离的方式。
落到抽象的矩阵论的角度也是一样,两个向量之间的距离,可能需要多种的测量方法,那么不同的测量方法,就叫做不同的范数。我们拿一个抽象向量来举例子:
$$ \vec{x}=(x_1, x_2, \cdots, x_n) $$
当然,一个向量的长度也可以看作零向量和这个向量之间的距离,whatever,对于我们的例子,一个很朴素的测量长度/距离(下面统称为距离)的方法就是应用欧几里得距离,也是2-范数的计算方法:
$$ ||x||_2=\sqrt{x_1^2+x_2^2+\cdots+x_n^2} $$
它就相当于我们开头所说的「直线距离」,比如二维空间中的一个向量$(3,4)$,其直线长度就是5,也就等于这样计算出来的欧几里得距离。
这当然是一种衡量距离的方法,如果我们只能沿着坐标轴行走,那么就又有一种衡量距离的办法:
$$ ||x||_1=|x_1|+|x_2|+\cdots+|x_n| $$
这就是曼哈顿距离,也就是1-范数的计算方法。这个方法也相当于测量向量在不同基上的分量,把所有的分量加和作为最终的长度。
到这里,我们只需要理解——范数是一种衡量距离的方法。当然,衡量距离的方法有很多,不过需要满足几个性质:
- 非负性:距离不能是负的,且只有零向量长度为0,亦即$||x||\geq 0$。
- 齐次性:距离的衡量必须兼容向量的数乘运算,向量拉伸了多少倍,那么范数也需要变为原来的多少倍。亦即$||\lambda x|| = |\lambda|\cdot||x||$。
- 三角不等式:直接走不会比绕路更长,亦即$||x+y||\leq ||x|| +||y||$。
笔者对于这三点的理解分别是——满足距离本身的直觉、尊重向量的数乘运算、尊重向量的加法运算。对于第三点,如果分开走比直接走还要短,那么这不算是一种距离,而是一种很奇怪的度量方法。
满足这三点的度量,就可以称作一个向量范数。那么,不同的向量范数,落在几何层面,又是什么样子呢?同样,我们以二维空间的不同范数形状来理解。范数本身没有形状,我们要想理解它,就只能从等值线的角度入手,对于1-范数,也就是我们之前提到的曼哈顿距离,它在几何角度是这个样子:

图里展示了标准二维xOy坐标系下,1-范数为4的等值线,它是一个菱形。对于2-范数,长这个样子:

它是一个圆,哈哈,这很符合我们日常的理解,从一点算起,距离相等的地方,就形成了一个球,那么二维空间就是一个圆,很合理!
值得一提,这些形状都是凸的,这也是三角不等式在几何层面的体现!
敏锐的读者可能看出来了,这两个范数有一些共性,计算方法貌似差不多,都是先给分量提升次数,然后加和统一开方。的确如此,不同的范数,可以总结为$p$-范数,其公式为:
$$ ||x||_p=\sqrt[p]{x_1^p+x_2^p+\cdots+x_n^p},p\geq 1 $$
这个公式不仅覆盖了我们的1-范数和2-范数,也覆盖了后面无限多个范数,那么这些范数在几何中又是什么样子?就请读者自行画画看,3-范数是一个圆角方形。随着$p$无限变大,当$p$趋向于无穷的时候,这个形状会逐渐偏向于一个正方形——这个正方形所代表的范数我们就叫做$\infty$-范数,当然,你也可以从$||x||_p$的公式中推出它的定义:
$$ ||x||_\infty = \max_i|x_i| $$
无穷范数的含义很简单——给出向量最大的分量。到这里,很多文章的讨论就结束了,当然笔者认为到这里是不太够的,凭什么$\infty$-范数就是取出最大分量?
其实这部分理解已经隐含在之前$p$变大的描述中了,$p$不断变大,等值线不断外推,注意到什么了吗……不过,这里笔者的理解是数值性的:
$$ ||x||_p=\sqrt[p]{x_1^p+x_2^p+\cdots+x_n^p},p \geq 1 $$
我们的公式中,首先给每个分量提升次数,那么在这个过程中,如果$p$越大,那么大分量对于整体加和的占比就更大,那么整体开方的值就更偏向于大分量一边。笔者的理解是,$p$控制着范数如何在大分量和小分量之间权衡,越大就更偏向于大分量,反之就偏向于小分量。
那么有读者会问,$p$能不能是小数呢,可不可以小于1呢?小数当然可以,但是小于1不可以,因为小于1,等值线会形成凹图形,这个时候就不满足三角不等式了。
矩阵范数
Takeaway:
矩阵范数衡量了线性变换对向量长度拉伸的最大倍数。
矩阵范数是从向量范数诱导出来的,一个$p$-范数诱导出来的矩阵范数就是:
$$ ||A||_p=\max \frac{||Ax||_p}{||x||_p} $$
也可以记作:
$$ ||A||_p=\max_{||x||_p=1}||Ax||_p $$
也就是说,先取所有$p$-范数为1的向量,然后求矩阵$A$所代表的线性变换,最长能把向量拉到多长。那么2-矩阵范数就是,把2-向量范数为1的等值线——单位圆,拉伸为一个椭球,长轴的长度。
实际上一个衡量方式,只需要满足下面四条就可以称作矩阵范数:
- 非负性。
- 齐次性。
- 三角不等式,亦即$||A+B||\leq ||A||+||B||$,这和向量范数的三角不等式含义不一样。这里是表明,两个线性变换叠加之后,整体最大作用的强度不会超过它们各自最大作用强度的总和。
- 相容性,亦即$||AB||\leq ||A||\cdot||B||$,这个含义就是,两个变换连续作用后的强度,不超过两个最大放大倍数的乘积。因为两个变换所拉伸到最长的向量,不一定是一个方向的。
这里的三四点需要做一点区分,三角不等式的加法是说,两个变换做叠加;而相容性的含义是,先做$B$变换,再做$A$变换。二者的含义需要读者理解一下,我很难完全用语言讲透彻。
最后,谈谈几个范数的简便运算公式吧。
对于1-矩阵范数,有一个很简单的计算公式:
$$ ||A||_1=\max_j\sum_{i=1}^j|a_{ij}| $$
也就是找所有列的绝对值和中最大的那个,这很好理解,我们只有单位长度为1的向量,那么我们需要把这1单位权重全部放到“最强的一列”上。二维情况下,1-范数等值线是个以标准基为对角线的菱形,那么变换之后也是一个菱形,以更换后的基——矩阵的列向量——为对角线,那么最大的方向就在最长的列向量上。
对于2-范数,暂且按下不表,等后续二次型章节再展开。
对于无穷范数:
$$ ||A||_1=\max_i\sum_{i=1}^j|a_{ij}| $$
注意到$\max$下面的下标改变了吗?这是因为,经过矩阵作用后,我们看变换结果在横向或纵向上最多能伸出去多远。而输出的每个坐标都是由矩阵的一行决定的——这是矩阵乘法的定义——所以最后得到最大行和。