范数丨向量范数和矩阵范数

范数

​   有时我们需要衡量一个向量的大小。在机器学习中,我们经常使用被称为范数 n o r m 的函数衡量向量大小。形式上, L P 范数定义如下:

| | x | | p = ( i | x i | p ) 1 p

​   其中 p R , p 1

​   范数(包括 L P 范数)是将向量映射到非负值函数。直观上来说,向量 x 的范数是衡量从原点到点 x 的距离。更严格地说,范数是满足下列性质的任意函数:

  • f ( x ) = 0 x = 0
  • f ( x + y ) f ( x ) + f ( y ) ( t r i a n g l e   i n e q u a l i t y )
  • α R , f ( α x ) = | α | f ( x )

向量范数

L 0 范数

  有时候我们会统计向量中非零元素的个数来衡量向量的大小。有些作者将这种函数称为 “ L 0 范数’’,但是这个术语在数学意义上是不对的。向量的非零元素的数目不是范数,因为对标量放缩 α 倍不会改变该向量非零的数目。因此, L 1 范数经常作为表示非零元素数目的替代函数。

L 1 范数

   L 1 范数是我们经常见到的一种范数,它的定义如下:

| | x | | 1 = i | x i |

  表示向量 x 中非零元素的绝对值之和。 matlab函数如下:

norm(x,1);

L 2 范数

   L 2 范数是我们最常见最常用的范数了,我们用的最多的度量距离欧氏距离就是一种 L 2 范数,它的定义如下:

| | x | | 2 = i x i 2

  Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方。 matlab函数如下:

norm(x,2);

L 范数

| | x | | = max i | x i |

  即所有向量元素绝对值中的最大值,matlab调用函数:

norm(x,inf);

L 范数

| | x | | = min i | x i |

  即所有向量元素绝对值中的最小值,matlab调用函数:

norm(x,-inf);

L p 范数

L p = 1 n x i p p x = ( x 1 , x 2 , , x n )

  即向量元素绝对值的p次方和的1/p次幂,matlab调用函数:

norm(x, p);

这里写图片描述
  上图表示了p从无穷到0变化时,三维空间中到原点的距离(范数)为1的点构成的图形的变化情况。以常见的 L 2 范数 p = 2 为例,此时的范数也即欧氏距离,空间中到原点的欧氏距离为1的点构成了一个球面。


矩阵范数

L 1 范数

| | A | | 1 = max j i = 1 m | a i , j |

  列和范数,即所有矩阵列向量绝对值之和的最大值,matlab调用函数:

norm(A, 1);

L 2 范数

| | A | | 2 = λ 1

  其中 λ A T A 的最大特征值。

  谱范数,即 A T A 矩阵的最大特征值的开平方。matlab调用函数:

norm(A, 2);

L 范数

| | A | | = max i j = 1 N | a i , j |

  行和范数,即所有矩阵行向量绝对值之和的最大值,matlab调用函数:

norm(A, inf);

L F 范数

| | L | | F = ( i = 1 m j = 1 n | a i , j | 2 ) 1 2

  Frobenius 范数,即矩阵元素绝对值的平方和再开平方,matlab调用函数:

norm(A,'fro');

L 核范数

| | A | | = i = 1 n λ i

  其中, λ i A 的奇异值。

  所以核范数是奇异值之和。

猜你喜欢

转载自blog.csdn.net/MissXy_/article/details/81207074