几种范数的简单介绍

本文转自http://blog.youkuaiyun.com/shijing_0214/article/details/51757564,所有权力归原作者所有。

什么是范数?

我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。

在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,学过线性代数,我们知道,通过运算AX=B,可以将向量X变化为B,矩阵范数就是来度量这个变化大小的。

这里简单地介绍以下几种向量范数的定义和含义 
1、 L-P范数 
与闵可夫斯基距离的定义一样,L-P范数不是一个范数,而是一组范数,其定义如下: 


Lp=1nxpipx=(x1,x2,,xn) 

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

实际上,在0p<1时,Lp并不满足三角不等式的性质,也就不是严格意义下的范数。以p=0.5,二维坐标(1,4)、(4,1)、(1,9)为例,(1+4)0.5+(4+1)0.5<(1+9)0.5。因此这里的L-P范数只是一个概念上的宽泛说法。

2、L0范数 
当P=0时,也就是L0范数,由上面可知,L0范数并不是一个真正的范数,它主要被用来度量向量中非零元素的个数。用上面的L-P定义可以得到的L-0的定义为: 


||x||=1nx0i0x=(x1,x2,,xn) 

这里就有点问题了,我们知道非零元素的零次方为1,但零的零次方,非零数开零次方都是什么鬼,很不好说明L0的意义,所以在通常情况下,大家都用的是: 

||x||0=#(i|xi0) 

表示向量x中非零元素的个数。

对于L0范数,其优化问题为: 


min||x||0 
s.t. Ax=b 

在实际应用中,由于L0范数本身不容易有一个好的数学表示形式,给出上面问题的形式化表示是一个很难的问题,故被人认为是一个NP难问题。所以在实际情况中,L0的最优问题会被放宽到L1或L2下的最优化。

3、L1范数 
L1范数是我们经常见到的一种范数,它的定义如下: 


||x||1=i|xi| 

表示向量x中非零元素的绝对值之和。

L1范数有很多的名字,例如我们熟悉的曼哈顿距离、最小绝对误差等。使用L1范数可以度量两个向量间的差异,如绝对误差和(Sum of Absolute Difference): 


SAD(x1,x2)=i|x1ix2i| 

对于L1范数,它的优化问题如下: 


min||x||1 
s.t.Ax=b 

由于L1范数的天然性质,对L1优化的解是一个稀疏解,因此L1范数也被叫做稀疏规则算子。通过L1可以实现特征的稀疏,去掉一些没有信息的特征,例如在对用户的电影爱好做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如身高体重等可能都是无用的,利用L1范数就可以过滤掉。

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


||x||2=ix2i 

表示向量元素的平方和再开平方。 
像L1范数一样,L2也可以度量两个向量间的差异,如平方差和(Sum of Squared Difference): 

SSD(x1,x2)=i(x1ix2i)2 

对于L2范数,它的优化问题如下: 


min||x||2 
s.t.Ax=b 

L2范数通常会被用来做优化目标函数的正则化项,防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

5、L- 
当P=时,也就是L-范数,它主要被用来度量向量元素的最大值。用上面的L-P定义可以得到的L的定义为: 


||x||=1nxix=(x1,x2,,xn) 

与L0一样,在通常情况下,大家都用的是: 

||x||=max(|xi|) 

来表示L
### 一阶范数(L1 范数)的概念与应用 #### 数学定义 一阶范数,通常称为 L1 范数,是向量空间中一种常见的范数形式。对于一个向量 $ x = (x_1, x_2, \dots, x_n) $,其 L1 范数的数学表达式为: $$ \|x\|_1 = |x_1| + |x_2| + \dots + |x_n| $$ L1 范数满足范数的基本性质,包括非负性、齐次性和三角等式[^4]。这种范数可以看作是对向量中各个元素绝对值的求和,因此它能够有效地衡量向量的整体大小。 #### 应用场景 在机器学习领域,L1 范数具有广泛的应用价值,尤其是在以下几个方面: ##### 特征选择 L1 范数常用于特征选择任务中,因为它能够促使模型参数稀疏化。通过引入 L1 正则化项,模型倾向于将某些特征的权重设置为零,从而实现对无关或冗余特征的有效排除。这种方法在 Lasso 回归中得到了广泛应用。 ##### 图像压缩 在图像处理领域,L1 范数可用于图像压缩任务。通过对图像数据进行稀疏表示,可以利用 L1 范数优化问题来提取关键信息并去除冗余内容,从而实现高效的压缩效果[^4]。 ##### 稀疏优化 L1 范数还被应用于稀疏优化问题中。相比于传统的优化方法,使用 L1 范数作为目标函数的一部分可以更好地捕捉数据中的稀疏结构。例如,在信号恢复和字典学习等领域,L1 范数优化技术被用来重构稀疏信号[^2]。 ##### 鲁棒回归 L1 范数在鲁棒回归中也有重要作用。由于其对异常值的敏感度较低,使用 L1 范数损失函数可以在存在噪声或异常值的情况下提供更稳定的估计结果。这使得 L1 范数成为许多实际应用中的首选工具。 #### 几何意义 从几何角度来看,L1 范数的单位球在二维空间中表现为一个菱形,其顶点位于坐标轴上。这种几何特性反映了 L1 范数向量各分量绝对值的线性叠加方式,进一步支持了其在稀疏性建模中的优势。 --- ### 示例代码 以下是一个简单的 Python 示例,展示如何计算一个向量的 L1 范数: ```python import numpy as np # 定义一个向量 x = np.array([3, -4, 2]) # 计算 L1 范数 l1_norm = np.linalg.norm(x, ord=1) print("L1 范数:", l1_norm) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值