向量和矩阵的各种范数简介(包括1范数、2范数、无穷范数,L0-范数,L1-范数,L2范数等等)
一、向量范数
假设向量 a = [-2 3 -6].
1. 1-范数
定义:向量的各个元素的绝对值之和;
格式:
∥
a
∥
1
=
11
\left\| a \right\|_1=11
∥a∥1=11 ;
MATLAB代码:norm(a, 1).
2. 2-范数
定义:向量的各个元素的平方和再开根号;
格式:
∥
a
∥
2
=
7
\left\|a\right\|_2= 7
∥a∥2=7;
MATLAB代码:norm(a, 2).
3. 无穷范数
(1)正无穷范数
定义:向量所有元素绝对值中最大;
格式:
∥
a
∥
+
∞
=
6
\left\|a\right\|_{+\infty}=6
∥a∥+∞=6;
MATLAB代码:norm(a, inf).
(2)负无穷范数
定义:向量所有元素绝对值中最小;
格式:
∥
a
∥
−
∞
=
2
\left\|a\right\|_{-\infty} = 2
∥a∥−∞=2;
MATLAB代码:norm(a, -inf).
二、矩阵范数
A = [ − 1 2 − 3 4 − 6 6 ] \begin{gathered} A = \begin{bmatrix} -1 & 2 &-3 \\ 4 & -6 &6\end{bmatrix} \end{gathered} A=[−142−6−36]
-
1-范数
定义:矩阵的每一列元素求和,再取其中和最大的数,即列和最大;
格式: ∥ A ∥ 1 = 9 \left\| A \right\|_1=9 ∥A∥1=9 ;
MATLAB代码:norm(A, 1). -
2-范数
定义:矩阵 A T A A^{T}A ATA的最大特征值开平方根;
格式: ∥ A ∥ 2 = 10.0623 \left\| A \right\|_2=10.0623 ∥A∥2=10.0623 ;
MATLAB代码:norm(A, 2). -
无穷范数
定义:矩阵每一行求和,再取行和最大的数,即行和最大;
格式: ∥ A ∥ 2 = 16 \left\|A\right\|_2=16 ∥A∥2=16;
MATLAB代码:norm(A, inf). -
L0-范数 (稀疏性)
定义:矩阵非0元素的个数,可以用来表达稀疏性,矩阵的L0-范数越小,说明矩阵中0元素越多,矩阵越稀疏。
格式: ∥ A ∥ 0 = 6 \left\| A \right\|_0=6 ∥A∥0=6 ;
sum(MATLAB代码:A(~=0)) -
L1-范数 (稀疏性)
定义:矩阵中的每个元素绝对值之和,它是L0范数的最优凸近似,因此它也可以表示稀疏;
格式: ∥ A ∥ 1 = 22 \left\| A \right\|_1=22 ∥A∥1=22 ;
MATLAB代码:sum(abs(A(?)) -
F-范数
定义:矩阵中所有元素的平方和开根号;
格式: ∥ A ∥ F = s q r t ( 102 ) \left\| A \right\|_F=sqrt(102) ∥A∥F=sqrt(102) ;
MATLAB代码:sum(sum(A.^2)) 或者 norm(A,‘fro’); -
核范数 (低秩)
定义:矩阵的奇异值(将矩阵svd分解)之和,这个范数可以用来低秩表示(因为最小化核范数,相当于最小化矩阵的秩——低秩);
格式: ∥ A ∥ ∗ = 10.9287 \left\| A \right\|_*=10.9287 ∥A∥∗=10.9287 ;
MATLAB代码:sum(svd(A)); -
L21范数
定义:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数;
格式: ∥ A ∥ 21 = 17.1559 \left\| A \right\|_{21}=17.1559 ∥A∥21=17.1559 ;
MATLAB代码:norm(A(:,1), 2) + norm(A(:,2), 2) + norm(A(:,3), 2).