因为还有矩阵范数,我们这里讨论的是向量范数。

向量范数是什么?

两个标量我们可以比较大小,比如1,2。我们知道2比1大。但是如果是两个向量,我们如何比较大小呢?(1,2,1) (2,2,0)。我们把一个向量通过不同的方法,映射到一个标量,就得到一个范数。

范数的定义

可以有L1范数,L2范数,L3范数,一直到L+∞范数。它的定义如下:

根据公式可以看到随着范数从L1到L+∞,向量里的最大值对于最终结果影响越来越大。你也可以从下表发现这一点。L+∞ 最终就是最大元素的绝对值了。
对于一个向量(1,2,3)

范数
L1 6.000
L2 3.742
L3 3.302
L4 3.146
L+∞ 3.000

也有人说L0范数,就是向量中的非零数个数。这个不太正式。

为什么要定义不同的范数

两个标量的比较是唯一的。但是两个向量的比较就比较麻烦了。比如我们举一个例子,你想买一个照相机,你考虑3个因素(重量,价格,体积)假设他们的取值都标准化到0-1,它们构成一个向量。L1向量就是各个值相加。而L+∞就是只考虑值最大的一个维度。这时就需要你去权衡用什么范数去衡量你这个向量了。

范数有什么性质

  1. |x|>0 如果 x!=0 并且 |x|=0 则 x=0.

  2. |kx|=|k||x| 对于任意标量K.

  3. |x+y|<=|x|+|y|.

范数在机器学习中的应用

机器学中常用L1和L2范数来进行正则化。因为在机器学习里我们最终都是要最小化cost function。我们在cost function里放上参数向量的范数。范数是一个把参数向量转化为可以量度的一个标量的方法。所以在最小化cost function的时候也就顺带的最小化了参数。达到了防止模型过拟合的情况。通常L2正则化用的比较多,因为L1正则化容易形成参数的稀疏矩阵,也就是很多参数为0。为什么会这样呢?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: