Python快乐编程:人工智能深度学习基础
上QQ阅读APP看书,第一时间看更新

3.3.1 向量范数

在泛函分析中,向量范数是衡量向量大小的一种度量方式。向量范数(包括Lp范数)是将向量映射到非负值的函数。在形式上,向量范数是一个定义域为任意线性空间的向量x,其对应一个实值函数‖x‖,它把一个向量v映射为一个非负实数值R,即满足‖x‖:vR

向量x的范数是衡量从原点到点x的距离。向量范数需要具备下列3个性质。

(1)正定性:‖x‖≥0,且当‖x‖=0时,必有x=0成立;

(2)正齐次性:‖αx‖=|α|×‖x‖,αF

(3)三角不等次性:‖x‖+‖y‖≥‖x+y‖。

机器学习领域经常会涉及对范数的应用。范数在机器学习中模型最优化的正则化中具有重要意义,它可以限制损失函数中模型参数的复杂程度。其中最常用到的是Lp范数,pRp≥1。Lp范数的定义如下。

xp满足范数的3个性质。为了方便理解不同范数之间的区别,接下来将分别给出二维空间向量中不同的p值对应的单位范数,即‖xp=1的图形表示。

1.向量L1范数

L1范数被称为绝对值范数,其大小等于向量的每个元素绝对值之和。L1范数表达式如下所示:

其中,单位范数即满足‖x1=1的点{(x1x2)},如图3.7所示。

由于L1范数的天然性质,对L1范数优化的解属于稀疏解,因此L1范数也被称为“稀疏规则算子”。通过L1范数可以实现特征的稀疏,去掉一些没有信息的特征,例如在对用户的网络购物取向做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如口音、智商等可能都是没有直接关系的特征,利用L1范数就可以过滤掉这些“无用”特征。当机器学习问题中需要严格区分零和非零元素之间的差异时,通常会使用L1范数。

2.向量L2范数

L2范数也被称为欧几里得范数(Euclidean norm),其大小表示从原点出发到向量x的确定点的欧几里得距离(简称欧氏距离)。L2范数十分频繁地出现在机器学习中,经常简化表示为‖x‖,省略下标2。L2范数为向量x各个元素平方和的开方,其表达式如下所示:

L2范数如图3.8所示。

图3.7 L1范数的图像

图3.8 L2范数的图像

在衡量向量的值时可能会用到平方L2范数,通过点积计算向量的值。通常,平方L2范数比L2范数更加方便。例如,平方L2范数对向量x中每个元素的导数只取决于对应的元素,而L2范数中每个元素的导数与整个向量相关。平方L2范数虽然计算方便,但并不总是适用于任何场合,它在原点附近增长得十分缓慢,而某些机器学习应用中,需要严格区分元素值为零还是非零极小值。此时,更倾向于使用在各个位置斜率相同,且数学形式更简单的L1函数。

3.当p的值为0时

有时需要统计向量中非零元素的个数来衡量向量的大小。有些书籍将其称为“L0范数”,但是这个术语在数学意义上并不成立,因为向量的非零元素数目并不是范数。对标量放缩n倍并不会改变该向量非零元素的数目。因此,通常将L1范数作为表示非零元素数目的替代函数。

4.当p的值为∞时

另外一个经常在机器学习中出现的范数是L范数,也被称为max范数,如图3.9所示。当p的值趋于∞时,范数表示向量中具有最大幅度的元素的绝对值:

图3.9 L范数的图像