事先叠甲:本文中的所有公式都较为简单,且可能不够严谨。本文的作用主要是在几何上去理解矩阵论中的一些重要概念,并给出一些常用的代数上的公式。
范数 (Norm)
一种具有 “长度” 概念的抽象数学概念,本质是函数,用于量化的抽象概念。范数最容易被定义的数学概念是向量的模长,也就是向量的长度,因此可以说抽象的范数概念事实上就是向量模长的延伸,或者说向量的长度是一种特殊的常见范数。
半范数(seminorm) $p$,满足:
- $p(\bm{v}) \geq 0$
- $p(a\bm{v}) = \vert a \vert p(\bm{v})$
- $p(\bm{u} + \bm{v}) \leq p(\bm{u}) + p(\bm{v})$
其中,$\bm{v}$ 可以是任意的代数概念,常见的可以是实数(对应绝对值),向量(对应模长)等等。
半并非 1/2 的含义,而是接近(准)的含义,半范数对比范数缺少了一些核心的要求,性质更弱,但保留了核心框架;类似的概念还有群和半群等等。因此我认为半x存在的含义是因为场景允许非平凡的零空间,且零空间具有明确的含义,可以为特定的场景定制所需的零空间。
在宝可梦中,常常会将种族值通过进化等途径接近或者达到神兽级别的宝可梦成为半神或者准神。
范数在半范数的基础上,由于零空间的特殊性,需要额外满足:
- $p(\bm{v}) = 0$,当且仅当 $\bm{v}$ 是零向量。
符号上,通常用 $\Vert \bm{x} \Vert$ 来表示范数。
矩阵范数
在满足上述范数条件的基础上,对常见的算子范数,会因为矩阵的性质而自然地额外满足:
- $\Vert AB \Vert \leq \Vert A \Vert \Vert B \Vert$
- $\Vert A \Vert = \Vert A^* \Vert$,$A^*$ 为共轭转置,实数范围内等价于$A^T$
矩阵范数和行列式的区别
行列式的几何含义是体积的缩放因子(可正可负可零),范数的含义考虑最极端的缩放(大于等于零)。
常见的矩阵范数
矩阵的范数会因为具体的应用场景不同而有不同的计算方式,主要原因还是说对这玩意的长度认识可以有不同的角度去求出一个满足范数定义的函数。但虽然种类很多,常用的却只有这么几个。
向量范数诱导的矩阵范数
“诱导”(induced),指从一个数学结构中自然的衍生出另一个结构。
“诱导范数” (induced norm)代表了矩阵对向量的放大能力,可以说此时的矩阵代表了一种线性变化,例如,有向量 $x$ 和矩阵 $A$,$x$ 的长度为 $\Vert x \Vert$,那么 $Ax$ 的长度为$\Vert Ax \Vert$。
因此会如有如下的等式:
$\Vert A \Vert_{p} = max\lbrace \frac{\Vert Ax\Vert_{p}}{\Vert x \Vert_{p}} \rbrace, x \neq 0$
p-范数诱导的矩阵范数
$p = 1$ 时,为最大列和。
$p = \infty$ 时,为最大行和。
$p = 2$ (欧几里得范数)时,又称为谱范数,$\Vert A \Vert_{2} = \sqrt{\lambda_{max}(A^{*}A)}$
谱范数应该是一个最为常用的范数,代表的含义就是向量模长的放大能力,很直观地符合向量范数的常规定义。
矩阵元范数
有别于诱导范数,矩阵元范数是将矩阵看成了一个 $m×n$ 的向量,用类似的向量范数。
$\Vert A \Vert_{l}=(\sum_{i=1}^{n}\sum_{j=1}^{m}\vert a_{ij}\vert^{l})^{\frac{1}{l}}$
弗罗贝尼乌斯范数
$l = 2$ 的矩阵元范数,很直观地理解就是每个元素的平方和开根,当 $n$ 或者 $m$ 等于 $1$ 的时候就退化为了向量模长。
这个范数有很多好用的性质,但这里不展现讲,详细请看“希尔伯特空间”。
极大值范数
$l = \infty$ 的矩阵元范数。
谱半径
矩阵的谱半径是矩阵任何诱导范数的下界,但是不属于任何一种范数。
矩阵或有界线性算子的谱半径是其特征值绝对值中的最大值,记作 $\rho(·)$ 。
$$ \rho(A) = max\lbrace \vert\lambda_{1}\vert, \vert \lambda_{2}\vert, …, \vert\lambda_{n}\vert \rbrace $$
条件数
该数量在数值计算中的容易程度的衡量,也就是该问题的适定性。一个低条件数的问题称为良置的,而高条件数的问题称为病态(或者说非良置)的。
条件数刻画的是线性变换后被拉伸的“扁率”。沿短轴方向的分量会被极度压缩,这意味着,输入中的微小误差,经过逆变换后,会被成倍放大,从而导致解对扰动高度敏感。
举个栗子:

上图是原始的网格,以及经过 $A$ 变换后的结果,原始网格是低条件数的也就是 $1$,正交方向比值都为 $1$,变换后的网格是高条件数的(我随机把原网格压扁的)。现在对这个网格参数化完后输入一组向量 $uv$,在原网格上很容易找到对应的点,但是在变换后的网格下,你很难说凭借 $uv$ 并且伴有一些误差,还能找到那个原始网格上真正想要的那个点。
$\kappa(A) = \Vert A^{-1} \Vert · \Vert A \Vert$
若$\Vert·\Vert$ 为 $l_2$ 矩阵范数,则:
$\kappa(A) = \frac{\sigma_{max}(A)}{\sigma_{min}(A)}$,其中 $\sigma_{max}(A)$, $\sigma_{min}(A)$ 分别为最大最小奇异值
- 若 $A$ 是正规矩阵,则:
$\kappa(A) = \vert\frac{\lambda_{max}(A)}{\lambda_{min}(A)}\vert = \rho(A) \rho(A^{-1}) $
正则化
为了改善条件数于是就有了正则化。
Tikhonov正则化
$$ (A^TA + \lambda I)x = A^Tb $$