范数的概念

       范数(Norm)是一种关于向量的函数,是向量“长度”概念及其推广。在线性代数、泛函分析及相关的数学领域,可用范数来度量一个向量的“长度”。在中学里我们学过一个向量的模长(长度)是向量中各元素平方和的平方根,比如向量(3,4)的模长就是5,这里模长其实是向量(3,4)的一种范数——L2范数,向量的范数除了L2范数外,还有其他定义,如L0范数、L1范数和L∞范数,下面将一一介绍上述提及的这几个范数概念。

1 L0范数

       若向量X = (x1, x2, …, xn),则向量X的L0范数为

x0=x

       若向量A = (0, 3, 6),向量A中有1个元素为0,2个非零元素 (3和6),则A对应L0范数为

A0=2

       在机器学习中压缩感知(compressive sensing)领域,很多时候希望最小化目标向量的 L0范数。但L0范数的最优化在数学上被认为是个NP-hard问题,即求解很复杂,所以许多压缩感知模型是将最小化目标向量的 L0范数转化为最小化目标向量的 L1范数。

2 L1范数

       若向量X = (x1, x2, …, xn),则向量X的L1范数为

x1=|x1|+|x2|+|xn|=i=1n|xi|

       若向量A = (0, 3, 6),则A对应L1范数为

A1=|0|+|3|+|6|=3+6=9

       最小化目标向量的 L1范数求解比最小化目标向量的 L0范数容易些,可通过最优化算法得到对应的可行解。但L1范数有一个问题,就是L1范数的导数不易求,所以许多机器学习问题中遇到 L1范数最小化问题会转为L2范数最小化问题。

3 L2范数

       若向量X = (x1, x2, …, xn),则向量X的L2范数为

x2=|x1|2+|x2|2++|xn|2=i=1n|xi|2

       若向量A = (2, 3, 6),则A对应L2范数为

A2=22+32+62=4+9+36=49=7

4 L∞范数

       若向量X = (x1, x2, …, xn),则向量X的L∞范数为

x=max(|x1||x2||xn|)

       若向量A = (2, 3, 6),则A对应L∞范数为

A=max(2,3,6)=6

5 Lp范数

       Lp范数实际上将L1范数、L2范数和L∞范数统一到一个框架体系中。

       若向量X = (x1, x2, …, xn),则向量X的Lp范数为

xp=|x1|p+|x2|p++|xn|pp=i=1n|xi|pp

       关于Lp范数的几何解释可以用单位圆来说明。单位圆是无穷个向量终点组成的集合,这些向量必须满足Lp范数为1且起点为原点。

       对于L1范数,它在R2空间中的单位圆是正方形。

       对于L2范数,它在R2空间中的单位圆是圆形。

       对于L∞范数,它是R2空间中的单位圆也是一个正方形。

       对于任何p范数,它是一个超椭圆(具有全等轴)。下面图为p取不同数值,Lp范数对应的单位圆。


图1 不同p对应的单位圆
posted @   Yumeka  阅读(10739)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示