范数的知识点总结---0 1 2

范数

1. 引入范数

我们很容易比较两个数的大小, 2< 3 , 4<9。
但是如果想比较的是向量怎么比较呢?例如(0,0,7,8) 和 (1,2,3,4)谁的长度大?
其实这个问题很不严谨, 因为我们现在还没有定义什么是这两个向量的长度。所以引入范数概念
现在,我们可以简单理解范数的意义就是,衡量一个多维向量的长度。范数越大,向量的长度也就越大

2.常用的范数

注意:向量的2范数即为向量的F范数,是一个概念;矩阵的2范数 跟 矩阵的F范数不是一个概念,矩阵A的2范数等于A的最大奇异值,矩阵的F范数等于该矩阵所有非零奇异值平方和的正平方根。(PS:严格来说不存在"矩阵的2范数"这种叫法,准确的来说应该叫"矩阵的诱导L2范数或谱范数")
0范数表示向量中非零元素的个数(即为其稀疏度)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

L_(2,1)范数:
应用L_2,1)范数的目的是使矩阵行稀疏。 L_(2,1)范数是对矩阵每行的L2范数进行求和。最小化矩阵的L_(2,1)范数的含义是希望每一行的L2 范数尽可能小。L(2,1)
范数是行内进行L2 范数约束,行间进行L 1范数约束。最小化矩阵的L2,1范数是希望矩阵每行之和的值是稀疏的,大部分为零。但是行内是L2 范数约束,如果这一行的和不是零,那么行内的值是稠密的。这样最小化矩阵的L2,1范数的优化问题能够达到行稀疏的目的。

在这里插入图片描述

上文贴了常见的范数以及matlab的调用函数那么,这么多范数到底用来干什么的呢?
L0范数 是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,
就是希望W的大部分元素都是0。
但是在大多数文章中都用的是L1来约束稀疏这是怎么一回事呢?
L1范数是指向量中各个元素绝对值之和,也有个美称叫"稀疏规则算子"(Lasso regularization)。
L0范数很难优化求解(NP难问题),L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。
来个一句话总结:L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。
L2范数
||W||2。它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫"岭回归"(Ridge Regression),有人也叫它"权值衰减weight decay"。
因为它的强大功效是改善机器学习里面一个非常重要的问题:过拟合
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。
一句话总结下:通过L2范数,我们可以实现了对模型空间的限制,从而在一定程度上避免了过拟合。
核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm。这个相对于上面火热的L1和L2来说,可能大家就会陌生点。那它是干嘛用的呢?霸气登场:约束Low-Rank(低秩)。OK,OK,那我们得知道Low-Rank是啥?用来干啥的?

如果X是一个m行n列的数值矩阵,rank(X)是X的秩,假如rank (X)远小于m和n,则我们称X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。

rank(w)的凸近似就是核范数||W||*。

我们总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。

指路知乎高赞回答:https://www.zhihu.com/question/20473040

博客园:https://www.cnblogs.com/MengYan-LongYou/p/4050862.html

本文是对自己学习范数知识点的小总结,供学习保存,答案参考了知乎魏通的答案,侵权请联系我会删除

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值