刚开始进入机器学习中的低等级、稀疏模型的时候,被各种各样的范数所搅动,明显延缓了学习的进度。 学习了一段时间后,现在把它完全总结起来,希望遇到同样麻烦的同学能有所帮助。

一、向量的范数首先将向量定义为a=[-5、6、8、-10]

1.1 向量的1范数

的1个范数。 是向量各要素的绝对值之和。 上述向量a的1范数的结果为29。 MATLAB码被实现为norm(a,1 )。

1.2 向量的2范数

的2个范数。 向量各要素的平方和进一步取平方根,上述a的2范数的结果为15。 MATLAB代码作为norm(a,2 )实现。

1.3 向量的无穷范数

1 .向量的负无限范数,即向量所有元素的绝对值中最小的。 上述向量a的负的无限范数的结果为5,MATLAB码作为norm(a,-inf )来实现。

2…向量的正无限范数,即向量所有元素的绝对值中最大的。 上述向量a的负的无限范数的结果为10,MATLAB码作为norm(a,inf )来实现。

**

二、矩阵范数*

首先,我们将介绍矩阵范数在数学中的情况,即任何学科都是统一的规定。

例如矩阵A=[ -1 2 -3;

4 -6 6]

2.1 矩阵的1范数

矩阵的1范数是指,矩阵各列上的元素的绝对值先合计,其中取最大的,(列和最大的),上述矩阵a的1范数先得到[ 5,8,9 ],取最大的最终结果,则9,MATLAB码为norm(A

2.2 矩阵的2范数

矩阵的2范数是矩阵ATAATA的最大特征值取平方根,在上述矩阵a的2范数中得到的最终结果为10.0623,MATLAB码为norm(a,2 )。

2.3 矩阵的无穷范数

矩阵的1范数是指,矩阵的各行的元素的绝对值先合计,其中取最大的、(行和最大的),上述矩阵a的1范数先) 6; 16 )、进而取得最大的最终结果,则16、MATLAB代码被实现为norm(a,inf )。

接下来介绍在机器学习的低等级、稀疏等几个地方使用的范数。 一般有核范数、L0范数、L1范数(很多人有时称为1范数,这很容易混淆为初学者)、L21范数(有时称为2范数)和f范数。 上述范数都是为了解决实际问题中的困难而提出的新范数定义,与前面的矩阵范数不同。

2.4 矩阵的核范数

矩阵的内核范数是矩阵的奇异值(分解矩阵svd )的和,该范数可以用于低秩表示(因为使内核范数最小化相当于最小化矩阵的秩——低秩),所以上述矩阵a的最终结果是10.9287

2.5 矩阵的L0范数

矩阵的L0范数是指矩阵的非0元素的个数,通常使用该个数表示稀疏,L0范数越小,0元素越多,稀疏,上述矩阵a的最终结果为6

2.6 矩阵的L1范数

矩阵的L1范数是矩阵中各元素绝对值的和,它是L0范数的最佳凸逼近,也可以表示稀疏。 上述矩阵a的最终结果是22,MATLAB码是sum(sum(ABS(a ) ) )。

2.7 矩阵的F范数

的f范数。 矩阵各元素的平方和进一步打开平方根。 这通常也被称为矩阵的L2范数。 那一点是凸函数,可以求导数求解,容易计算。 上述矩阵a最终结果为10.0995。 MATLAB码被实现为norm(a,‘fro’)。

2.8 矩阵的L21范数

的L21范数。 矩阵首先以各列为单位,求出各列的f范数(也可以认为是向量的2范数),将得到的结果视为L1范数(也可以认为是向量的1范数),就很容易看出是介于L1和L2之间的范数。 上述矩阵a的最终结果为17.1559,MATLAB代码为(norm ) )。

原文链接: 3359 blog.csdn.net/kfd hh _ _ Corleone/article/details/75213123