![Python快乐编程:人工智能深度学习基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/181/44510181/b_44510181.jpg)
3.3.1 向量范数
在泛函分析中,向量范数是衡量向量大小的一种度量方式。向量范数(包括Lp范数)是将向量映射到非负值的函数。在形式上,向量范数是一个定义域为任意线性空间的向量x,其对应一个实值函数‖x‖,它把一个向量v映射为一个非负实数值R,即满足‖x‖:v→R。
向量x的范数是衡量从原点到点x的距离。向量范数需要具备下列3个性质。
(1)正定性:‖x‖≥0,且当‖x‖=0时,必有x=0成立;
(2)正齐次性:‖αx‖=|α|×‖x‖,α∈F;
(3)三角不等次性:‖x‖+‖y‖≥‖x+y‖。
机器学习领域经常会涉及对范数的应用。范数在机器学习中模型最优化的正则化中具有重要意义,它可以限制损失函数中模型参数的复杂程度。其中最常用到的是Lp范数,p∈R,p≥1。Lp范数的定义如下。
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P62_15418.jpg?sign=1739300841-GfPybQl5uS9J6pRB71Ddx3xw7wCgd85w-0-34cf3e59f86a2a22d05b5c653776a73a)
‖x‖p满足范数的3个性质。为了方便理解不同范数之间的区别,接下来将分别给出二维空间向量中不同的p值对应的单位范数,即‖x‖p=1的图形表示。
1.向量L1范数
L1范数被称为绝对值范数,其大小等于向量的每个元素绝对值之和。L1范数表达式如下所示:
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P63_15419.jpg?sign=1739300841-5MryIkg53chcwaFHVCPK2zQ0LnSHB8BD-0-653d4aea853c738a872bef440b3f4e91)
其中,单位范数即满足‖x‖1=1的点{(x1,x2)},如图3.7所示。
由于L1范数的天然性质,对L1范数优化的解属于稀疏解,因此L1范数也被称为“稀疏规则算子”。通过L1范数可以实现特征的稀疏,去掉一些没有信息的特征,例如在对用户的网络购物取向做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如口音、智商等可能都是没有直接关系的特征,利用L1范数就可以过滤掉这些“无用”特征。当机器学习问题中需要严格区分零和非零元素之间的差异时,通常会使用L1范数。
2.向量L2范数
L2范数也被称为欧几里得范数(Euclidean norm),其大小表示从原点出发到向量x的确定点的欧几里得距离(简称欧氏距离)。L2范数十分频繁地出现在机器学习中,经常简化表示为‖x‖,省略下标2。L2范数为向量x各个元素平方和的开方,其表达式如下所示:
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P63_15422.jpg?sign=1739300841-l1Sgt3gShDnGSyBAgeKtNNNs7OpiuWZ2-0-223b922208a50c13fa74f4b939d6e81a)
L2范数如图3.8所示。
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P63_5133.jpg?sign=1739300841-LRsOZL6ZAdi1qHFDAtdM0Dap5ptUIerT-0-4093a849d164401dbabd9ba42c584bab)
图3.7 L1范数的图像
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P63_5136.jpg?sign=1739300841-MH86qYpHNHQYMPzBrOQPA05O1oHMs0AJ-0-2b081ed0a66b0480ef42b13eeca1dde1)
图3.8 L2范数的图像
在衡量向量的值时可能会用到平方L2范数,通过点积计算向量的值。通常,平方L2范数比L2范数更加方便。例如,平方L2范数对向量x中每个元素的导数只取决于对应的元素,而L2范数中每个元素的导数与整个向量相关。平方L2范数虽然计算方便,但并不总是适用于任何场合,它在原点附近增长得十分缓慢,而某些机器学习应用中,需要严格区分元素值为零还是非零极小值。此时,更倾向于使用在各个位置斜率相同,且数学形式更简单的L1函数。
3.当p的值为0时
有时需要统计向量中非零元素的个数来衡量向量的大小。有些书籍将其称为“L0范数”,但是这个术语在数学意义上并不成立,因为向量的非零元素数目并不是范数。对标量放缩n倍并不会改变该向量非零元素的数目。因此,通常将L1范数作为表示非零元素数目的替代函数。
4.当p的值为∞时
另外一个经常在机器学习中出现的范数是L∞范数,也被称为max范数,如图3.9所示。当p的值趋于∞时,范数表示向量中具有最大幅度的元素的绝对值:
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P64_15424.jpg?sign=1739300841-ISoTbNlxWrpBPzIiK35eRDRfQPfsBJe1-0-e5ac115e98321359927f49d72b1c654e)
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P64_12656.jpg?sign=1739300841-imVrbwau2gASw2RIFoKvIYCzljZ84kNP-0-02e9625991bb7aa0c2fc141d7e5d93ad)
图3.9 L∞范数的图像