矩阵的范数
--------------------------2020.8.30更新----------------------------
把之前的没写的几个矩阵范数给补充下,暂时只找到这 6 个(主要是没看太多的文章,那天遇到新的再补充)
m1 范数:\({{\left\| A \right\|}_{{{m}_{1}}}}=\sum\limits_{i=1}^{n}{\sum\limits_{j=1}^{n}{\left| {{a}_{ij}} \right|}}\)
F范数:\({{\left\| A \right\|}_{F}}=\sqrt{\sum\limits_{i=1}^{n}{\sum\limits_{j=1}^{n}{{{\left| {{a}_{ij}} \right|}^{2}}}}}\)
\({{m}_{\infty }}\)范数:\({{\left\| A \right\|}_{{{m}_{\infty }}}}=n\underset{i,j}{\mathop{\max }}\,\left| {{a}_{ij}} \right|\)
L1范数的诱导范数(列和范数):\({{\left\| A \right\|}_{1}}=\underset{j}{\mathop{\max }}\,\sum\limits_{i=1}^{n}{\left| {{a}_{ij}} \right|}\)
L2 范数的诱导范数:\({{\left\| A \right\|}_{2}}=\sqrt{{{\lambda }_{\max }}({{A}^{T}}A)}\) , \({{\lambda }_{\max }}(\centerdot )\) 表示取最大特征值
\({{l}_{\infty }}\)范数的诱导范数(行和范数):\({{\left\| A \right\|}_{\infty }}=\underset{i}{\mathop{\max }}\,\sum\limits_{j=1}^{n}{\left| {{a}_{ij}} \right|}\)
--------------------------2020.8.30更新----------------------------
向量的范数见 向量的范数
矩阵的1-范数:列元素绝对值之和最大
矩阵的2-范数即:矩阵 的最大特征值开平方根
矩阵的无穷范数:行绝对值之和最大
还有一种是把矩阵拉伸成向量,然后再对向量求范数。在论文里面大家用的模棱两可的,具体文章还要具体来看。
此处引用知乎上大佬的解答
大佬: 矩阵有两种范数的定义,一种是矩阵范数,用来衡量矩阵作为变换时对向量拉扯、形变的能力,p-norm 定义为 ||A||p = max ||Ax||_p/||x||_p;
另一种是逐元素范数,用来衡量矩阵中元素的大小,也可以解释成把矩阵拉伸成一条向量后形成的向量的p-范数,即 ||A||_p = ||vec(A)||p = (\sum |A|p)。其实还有定义在特征值空间上的第三种范数(在 Robust PCA 里会用到),详见维基百科。
机器学习里把矩阵当成模型参数时,范数往往指的是第二种(即逐元素范数),这答主明显没学明白,网上的大部分博客也没搞明白。1范数和 L1 范数是一样的,其中 L 指 Lebesgue space。
另外补充一点,很多论文里的2范数其实是指2范数的平方(即 \sum x_i^2,最后不用开根号),很多论文作者也没搞明白。
大佬:在上下文不明确的情况下可以这么判断:如果矩阵是作为模型的参数,你希望给它加先验(例如数值较小、稀疏等等),这时往往是关注矩阵元素本身的性质,范数通常是指逐元素范数 ||A||_p = ||vec(A)||p = (\sum |A|p);如果矩阵是用来分析模型的性质(例如梯度消失/爆炸、迭代收敛速度等等),这时关心的是矩阵作为变换引起的缩放效果,范数通常是指矩阵范数 ||A||p = max ||Ax||_p/||x||_p。
我:能再细细讲讲第一种吗?用来衡量矩阵作为变换时对向量拉扯、形变的能力,后面的公式没太领悟啥意思
大佬:这种范数也叫向量诱导范数,因为它是用两个向量的范数的比值来定义出的。任给一种向量范数的定义,就可以对应地得到一种矩阵范数。详细来说,||Ax||_p 是矩阵 A 对向量 x 做变换以后得到的向量的长度,这个值再用 x 本身的长度 ||x||_p 归一化一下,可以去掉 x 长度不同带来的影响,就反映了矩阵 A 对向量 x 的拉伸能力。遍历所有的 x,找到一个比值最大的,就说明了矩阵 A 最多能把某个向量拉伸多少倍。具体用法比如说反向传播时 dl/dx = dy/dx * dl/dy,其中 dy/dx 是一个雅可比矩阵,dl/dy 是 loss 对 y 的导数,你就可以根据 dy/dx 的范数(比如 L2 范数)分析出经过一步反向传播以后,dl/dx 的长度最多变化多少倍,进而分析出经过多次反向传播后梯度最多放大多少倍,可以估计梯度爆炸有多严重。
当然,等价地,你可以直接在长度为 1 的向量 x 里找,把定义为 ||A||p = max ||Ax||_p。
原文见 Lasso—原理及最优解
大佬的主页 Towser的主页