news 2026/10/31 11:50:49

L0、L1、L2范数详解:从几何直觉到正则化与稀疏性实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
L0、L1、L2范数详解:从几何直觉到正则化与稀疏性实战

范数这个概念,我最早是在做模型正则化的时候被迫啃下来的。当时只知道在损失函数后面加个L2项能防止过拟合,加L1项能顺手做特征选择,至于为什么,完全说不清楚。后来做稀疏表示和压缩感知相关的项目,L0、L1、L2这几个符号反复出现,绕不过去了,才回头把范数这一套东西从头理了一遍。这篇就把我对L-P范数、L0范数、L1范数、L2范数的理解完整写出来,从几何直觉到公式定义,再到它们各自在工程里到底解决什么问题,尽量说人话,让刚接触的也能看懂,做过一阵子的也能对几个容易混淆的点有更清楚的认识。

范数这个词听起来抽象,其实本质特别朴素:它就是衡量一个向量"有多大"的尺子。你手里有一组数,想知道这组数整体上有多"长"、多"大",就需要一个度量方式。问题是"大"这个字本身有歧义——是看谁最大?还是看总和?还是看平方和开根号?不同的理解方式对应不同的范数。L-P范数是一整个家族,L0、L1、L2都是这个家族里的成员,只不过L0是个特殊的存在,严格来说它不满足范数的数学定义,但工程上大家都这么叫,也就约定俗成了。理解这几个范数的关键,不在于背公式,而在于搞清楚每种度量方式背后的"偏好"——它惩罚什么样的向量,奖励什么样的向量,这个偏好直接决定了它在机器学习、信号处理、优化问题里扮演什么角色。

1. 从"向量有多大"这个朴素问题说起

1.1 范数的本质是一把带偏好的尺子

我先用一个生活场景把这件事讲清楚。假设你是一个仓库管理员,要评估一批货物的"规模"。你可以用三种方式:第一种,看最重的那一件有多重;第二种,把所有货物的重量加起来;第三种,把每件货物重量的平方加起来再开根号。这三种方式都能给出一个"规模"的数字,但它们的侧重点完全不同。第一种只关心极端值,一件超重货物就能把整体规模拉得很高;第二种关心总量,货物件数越多规模越大;第三种介于两者之间,对大件货物更敏感但不至于被单件完全主导。

范数就是这套逻辑的数学化。给定一个向量 $x = (x_1, x_2, ..., x_n)$,范数 $||x||$ 给出一个非负实数,衡量这个向量的"长度"或"规模"。但不同的范数对"长度"的理解不一样,这个不一样不是文字游戏,而是会实实在在影响优化结果。你在损失函数里用不同的范数做正则项,训练出来的模型参数分布会截然不同。这就是为什么搞明白范数不是学术洁癖,而是实操中绕不开的基本功。

一个合格的范数需要满足三条性质:非负性(长度不能是负的,且只有零向量长度为零)、齐次性(向量放大 $k$ 倍,范数也放大 $k$ 倍)、三角不等式(两个向量之和的范数不超过各自范数之和)。这三条听起来像数学课本,但你可以这样理解:非负性保证度量有意义,齐次性保证尺度一致,三角不等式保证"走直线不比绕路远"。后面讲L0的时候会看到,它恰恰卡在第一条和齐次性上,所以严格说它不是范数。

1.2 L-P范数:一个统一整个家族的公式

L-P范数,也叫 $L_p$ 范数,是整个家族的通用表达式。对 $p \geq 1$,定义为:

$$||x||p = \left( \sum{i=1}^{n} |x_i|^p \right)^{1/p}$$

这个公式的意思是:把每个分量的绝对值取 $p$ 次方,求和,再开 $p$ 次方根。$p$ 取不同的值,就得到不同的范数。$p=1$ 是L1范数,$p=2$ 是L2范数,$p \to \infty$ 是无穷范数(取最大绝对值)。这个统一表达式的好处是,你只要理解了 $p$ 在起什么作用,就理解了整个家族。

$p$ 的作用可以这样体会:$p$ 越大,公式越倾向于放大大的分量、压制小的分量。因为取 $p$ 次方之后,大数的增长远快于小数。举个具体例子,向量 $(3, 1)$,$p=1$ 时范数是 $3+1=4$;$p=2$ 时是 $\sqrt{9+1} \approx 3.16$;$p=10$ 时是 $(3^{10}+1)^{0.1} \approx 3.0000...$,几乎就等于最大分量3了。所以 $p$ 越大,范数越接近"只看最大值",$p$ 越小,越接近"看总和"。这个趋势是理解所有范数行为的钥匙。

注意:L-P范数的定义要求 $p \geq 1$。当 $0 < p < 1$ 时,那个表达式仍然能算出一个数,但它不满足三角不等式,严格来说不是范数,工程上叫它"拟范数"或"Lp拟范数"。L0更是连这个表达式都不适用,它是单独定义的。这个边界要清楚,不然看论文的时候容易被术语绕晕。

1.3 为什么工程上偏爱这几个特定的p值

理论上 $p$ 可以取任意大于等于1的实数,但实际工程里翻来覆去就是那么几个:0、1、2、无穷。原因很实际——这几个值对应的优化问题有成熟解法,或者有明确的几何解释,而中间那些 $p$ 值(比如1.5、3)虽然数学上成立,但优化起来没有特别的好处,计算上也不占便宜,自然就没人用了。

$p=2$ 是最"正统"的,它对应欧几里得距离,有闭式解,求导干净,是最早被广泛使用的。$p=1$ 的特殊性在于它产生稀疏解,这个性质在特征选择和压缩感知里是刚需。$p=0$ 是稀疏性的"理想形态",虽然不可优化,但作为理论目标存在。$p=\infty$ 用在需要控制最大误差的场景,比如某些鲁棒优化问题。所以这几个值不是随便选的,每一个都对应一类明确的需求。下面几节就逐个拆开讲。

2. L2范数:最符合直觉的那把尺子

2.1 欧几里得距离就是L2范数

L2范数是大多数人接触的第一个范数,只是当时不知道它叫这个名字。平面上一个点 $(x, y)$ 到原点的距离是 $\sqrt{x^2 + y^2}$,这就是L2范数。三维空间里点到原点的距离是 $\sqrt{x^2+y^2+z^2}$,还是L2范数。推广到 $n$ 维,就是 $||x||2 = \sqrt{\sum{i=1}^n x_i^2}$。所以L2范数不是什么新东西,它就是欧几里得距离在任意维度的自然延伸。

这个"自然"很重要。L2范数之所以成为默认选择,是因为它和我们对"距离"的直觉完全吻合。你拿一把尺子量两点之间的直线距离,量出来的就是L2范数。物理世界里很多量也天然是L2形式,比如能量正比于振幅的平方,最小二乘法的目标就是最小化残差的L2范数平方。这种直觉上的一致性让L2范数成为最容易被接受、被使用的度量。

从几何上看,L2范数的"单位球"(所有范数等于1的向量构成的集合)是一个标准的圆(二维)或球(高维)。这个形状是光滑的、各向同性的,没有哪个方向被特殊对待。这个性质在优化里很关键——L2范数是处处可导的(除了原点),梯度是 $x / ||x||_2$,形式干净,梯度下降用起来很顺手。

2.2 L2正则化为什么能防止过拟合

L2范数在机器学习里最著名的应用就是L2正则化,也叫权重衰减(weight decay)。做法是在损失函数后面加一项 $\lambda ||w||_2^2$,其中 $w$ 是模型参数,$\lambda$ 是控制正则强度的超参数。加上这一项之后,优化目标变成"既要拟合数据,又要让参数别太大"。

为什么参数小就能防过拟合?我自己的理解是这样的:过拟合的本质是模型对训练数据里的噪声也做了精确拟合,表现为某些参数被推得特别大,模型在这些方向上变得极其敏感。L2正则化相当于给参数加了一个"向原点收缩"的力,不让任何一个参数跑得太远。参数被限制在较小的范围内,模型的表达能力被适度约束,反而不容易记住噪声。这就像调音,你把每个旋钮都拧到极限,声音是"精确"了但全是杂音;适度收敛一点,反而听得出主旋律。

从贝叶斯视角看,L2正则化等价于给参数加了一个高斯先验,认为参数大概率在零附近,大参数是小概率事件。这个解释在推导上有用,但实操中我更愿意用"收缩"这个直觉来理解——它就是把参数往零拉,拉多狠由 $\lambda$ 决定。$\lambda$ 太大,参数被压得太狠,模型欠拟合;$\lambda$ 太小,等于没加。调 $\lambda$ 是L2正则化唯一的实操难点,通常靠交叉验证来定。

2.3 L2范数的梯度与优化友好性

L2范数平方 $||w||_2^2 = \sum_i w_i^2$ 的梯度是 $2w$,这个形式极其友好。它意味着每个参数受到的"拉力"和它自己的大小成正比——参数越大,往回拉的力越强,参数小的时候拉力也小。这种线性反馈让优化过程很稳定,不会出现某个参数被突然拽飞的情况。

对比一下L1正则化的梯度(下一节会讲),L1的梯度是符号函数,大小恒为1,不管参数多小,拉力都一样大。这导致L1在零点附近有不可导的问题,需要用次梯度或者近端算法处理。L2没有这个麻烦,处处可导(原点单独处理即可),直接扔进梯度下降就能跑。这是L2在工程上"省心"的重要原因,也是它成为默认正则项的技术基础。

实操心得:用L2正则化的时候,正则项通常写成 $\frac{\lambda}{2} ||w||_2^2$,那个 $\frac{1}{2}$ 是为了求导之后把2消掉,让梯度变成 $\lambda w$,纯粹是为了公式好看,不影响本质。但如果你自己手写优化器,要注意这个系数,别把 $\lambda$ 的实际效果算错一倍。

3. L1范数:稀疏性的来源

3.1 L1范数是绝对值之和

L1范数的定义是 $||x||1 = \sum{i=1}^n |x_i|$,就是把所有分量的绝对值加起来。二维平面上,向量 $(3, -4)$ 的L1范数是 $3+4=7$,而它的L2范数是 $\sqrt{9+16}=5$。L1范数总是大于等于L2范数(对同一向量),这个关系在高维也成立,因为平方和开根号不会超过绝对值和。

L1范数也叫曼哈顿距离,这个名字来自曼哈顿的街道网格——你从一个路口到另一个路口,只能沿着横平竖直的街道走,走出来的距离就是L1范数。这个类比很形象地说明了L1和L2的区别:L2是直线距离(可以斜穿),L1是沿轴距离(只能横竖走)。在网格状的城市里,你没法斜穿建筑,只能走街道,所以实际走的距离是L1。

L1范数的单位球在二维是一个菱形(旋转45度的正方形),在高维是一个交叉多面体。这个形状和L2的圆球有本质区别——菱形有尖角,尖角正好落在坐标轴上。这个几何特征是L1产生稀疏解的根源,下一小节详细说。

3.2 菱形单位球的尖角为什么产生稀疏解

这是理解L1最关键的一步,我用几何直觉来讲。考虑一个带L1正则化的优化问题:最小化损失函数 $L(w)$ 加上 $\lambda ||w||_1$。几何上可以理解为,在损失函数的等高线和L1单位球(缩放后)之间找切点。由于L1单位球是菱形,有尖角,而这些尖角恰好位于坐标轴上(比如二维时 $(1,0)$、$(0,1)$ 这些点),等高线在扩张或收缩的过程中,很容易先碰到尖角而不是边。

碰到尖角意味着什么?意味着最优解在某个坐标上的分量是零。二维时尖角是 $(1,0)$ 这种形式,第二个分量是零;高维时尖角对应很多分量为零的点。所以L1正则化的解天然倾向于让一部分参数精确等于零,这就是稀疏性。而L2的单位球是光滑的圆,没有尖角,等高线和圆相切的位置一般不在坐标轴上,所以解的分量通常都不为零,只是被压小。

这个几何解释我一开始觉得有点抽象,后来自己画了几次图就通了。你可以拿张纸画一个菱形和一个圆,再画几条斜的直线(代表损失等高线),看直线平移时先碰到哪个形状的哪个位置。你会发现直线很容易先擦到菱形的某个顶点,而碰到圆的时候基本是切在弧线上。这个"先碰到顶点"就是稀疏性的几何本质。

3.3 L1正则化做特征选择的实际逻辑

L1正则化在工程上最实用的价值就是特征选择。当你有一堆特征,不知道哪些有用,L1正则化会把不重要的特征对应的权重压到零,相当于自动帮你做了筛选。这在特征维度很高、样本量相对不足的场景里特别有用,比如文本分类(词袋模型维度轻松上万)、基因数据分析(特征数远大于样本数)。

为什么L1能起到筛选作用?因为把某个权重压到零,等价于把这个特征从模型里彻底删掉。L1的惩罚是绝对值之和,它对小权重的惩罚"相对更重"——一个权重从0.1降到0,L1省下0.1的惩罚,而L2只省下0.01(平方)。所以L1有动力把小权重直接清零,而L2只是把它们压得更小但不为零。这个差异导致L1的解是"少数非零+大量零",L2的解是"全体都小但都不为零"。

实操中要注意,L1正则化的解不唯一(当特征相关时,可能有多组等价的稀疏解),而且对特征尺度敏感。用之前一定要做标准化,否则量纲大的特征即使不重要,也可能因为绝对值大而被保留。这个坑我踩过——有一次没做标准化,结果L1把几个量纲小的有用特征全清零了,模型效果一塌糊涂,排查了半天才发现是尺度问题。

3.4 L1的次梯度与近端算法

L1范数在零点不可导,这是它优化上的麻烦。绝对值函数在零点的左导数是-1,右导数是1,导数不唯一。严格数学上要用次梯度(subgradient)来处理,工程上更常用的是近端梯度法(proximal gradient),其中软阈值(soft thresholding)操作是核心。

软阈值操作的形式很简单:对每个分量 $w_i$,更新为 $sign(w_i) \cdot \max(|w_i| - \lambda, 0)$。意思是,如果 $|w_i|$ 小于 $\lambda$,直接置零;否则往零的方向缩 $\lambda$。这个操作一步到位地实现了"小权重清零、大权重收缩",而且计算极快,没有迭代。这就是为什么L1正则化在实际中能高效求解——软阈值把不可导的麻烦绕过去了。

提示:如果你用现成的库(比如 scikit-learn 的 Lasso),软阈值和坐标下降都已经封装好了,不用自己写。但如果你要自己实现或者改算法,理解软阈值是必须的,因为它是L1优化所有高效算法的基石。坐标下降、近端梯度、ADMM,底层都离不开这个操作。

4. L0范数:理想很丰满,现实很骨感

4.1 L0范数数的是非零元素的个数

L0范数的定义和前面几个都不一样,它不是某个表达式的特例,而是单独定义的:$||x||_0 = $ 向量中非零元素的个数。比如 $(3, 0, -2, 0, 1)$ 的L0范数是3,因为有三个非零元素。就这么简单,它数的是"有多少个不为零",而不是"有多大"。

这个定义直接对应稀疏性的理想目标——我们希望一个表示向量里非零元素越少越好,L0范数正好就是这个"少"的度量。在压缩感知、稀疏编码、模型剪枝这些领域,最理想的目标就是最小化L0范数。问题在于,这个理想目标几乎没法直接优化。

4.2 L0为什么不是真正的范数

前面说过范数要满足三条性质,L0卡在齐次性上。齐次性要求 $||kx|| = |k| \cdot ||x||$。对L0来说,你把向量乘以2,非零元素的个数不变,所以 $||2x||_0 = ||x||_0$,但按齐次性应该是 $2||x||_0$。这就矛盾了。所以L0不满足齐次性,严格来说不是范数,只是习惯上叫它L0范数。

这个"不是范数"不是文字游戏,它直接导致L0的优化性质很差。L0范数是离散的、不连续的,它的值只能是整数,随着参数变化会跳变。你没法对它求导,梯度下降完全用不了。更麻烦的是,最小化L0范数是一个NP难问题——精确求解需要穷举所有可能的非零元素组合,组合数随维度指数增长,维度稍微大一点就完全算不动。

4.3 L0优化的困难与L1的近似替代

因为L0直接优化不可行,工程上普遍用L1来近似L0。这个近似的逻辑是:L1是L0的凸松弛(convex relaxation),在所有凸函数里,L1是L0最紧的凸近似。直观上,L1的绝对值惩罚和L0的计数惩罚在"鼓励稀疏"这个方向上是一致的,只是L1是连续的、可优化的,L0是离散的、不可优化的。

这个近似在实际中效果不错,但也有偏差。L1倾向于把小的非零值也压到零,导致估计有偏(biased)。为了缓解这个问题,后来发展出一堆改进方法,比如迭代重加权L1(把L1的权重按当前解调整,逼近L0的效果)、SCAD、MCP这些非凸惩罚。这些方法的核心思路都是:先用L1拿到一个稀疏解,然后根据解的情况调整惩罚,让大系数少受惩罚、小系数多受惩罚,逐步逼近L0的理想行为。

注意:有些资料会说"L0范数是Lp范数在p趋于0时的极限",这个说法在特定意义下成立,但不严谨。实际上 $p \to 0$ 时 $\sum |x_i|^p$ 会趋于非零元素的个数,但那个 $1/p$ 次方会发散,所以不能直接取极限。理解L0最好就按它的定义来——数非零个数,别硬套Lp公式。

4.4 硬阈值:L0思想的工程落地

虽然L0不能直接优化,但它的思想在工程里以"硬阈值"(hard thresholding)的形式广泛存在。硬阈值操作是:如果 $|w_i|$ 小于阈值 $\lambda$,置零;否则保持不变。对比L1的软阈值(大权重也往零缩),硬阈值只清零不收缩,更接近L0的"要么留要么删"的行为。

硬阈值在模型剪枝里用得很多——训练好的模型,把绝对值小于阈值的权重直接删掉,剩下的权重不动。这样做能大幅压缩模型体积,而且因为大权重没被动,精度损失通常可控。但硬阈值的问题是它不连续,优化时可能震荡,所以一般不在训练过程中用,而是训练完之后做后处理。这个"训练用软、剪枝用硬"的分工,是我在实际项目里总结出来的经验,比一上来就硬阈值训练稳定得多。

5. 几个范数的横向对比与选型逻辑

5.1 一张表看清L0、L1、L2的差异

把前面讲的整理成一张表,方便对照。这张表是我自己常用的速查表,每次选正则项的时候扫一眼,基本不会选错。

维度L0范数L1范数L2范数
定义非零元素个数绝对值之和平方和开根号
是否真范数否(不满足齐次性)是是
单位球形状无(离散)菱形/交叉多面体圆/球
稀疏性最强(理想)强(可产生精确零)无(只收缩不清零)
可导性不可导零点不可导处处可导(原点除外)
优化难度NP难凸,可高效求解凸,闭式解/梯度下降
典型解法穷举/贪心/硬阈值软阈值/坐标下降梯度下降/闭式解
主要用途理论目标、剪枝特征选择、稀疏表示防过拟合、距离度量

这张表里最容易被忽略的是"稀疏性"那一行。很多人以为L2也能做特征选择,其实不能——L2只会把权重压小,不会压到精确的零。如果你需要"哪些特征有用"这种明确的答案,必须用L1或者L0思想的方法,L2给不了。

5.2 稀疏性需求下L1与L0的取舍

如果你的核心需求是稀疏性,摆在面前的就是L1和L0两条路。L0是理想目标但不可优化,L1是可优化的近似但有偏差。怎么选?我的经验是看场景对"精确稀疏"的要求有多高。

如果只是想要一个稀疏的模型、能跑就行,L1足够,现成工具多,调参简单。如果对稀疏性有严格要求(比如压缩感知里要求恢复的信号精确稀疏),或者L1的偏差导致效果不达标,那就得上L0思想的进阶方法——迭代重加权、贪心算法(如OMP正交匹配追踪)、或者非凸惩罚。这些方法实现复杂、调参麻烦,但能逼近L0的效果。我一般的原则是:先用L1打底,效果不够再上复杂方法,别一上来就搞最复杂的。

5.3 防过拟合场景下L2的不可替代性

如果需求是防过拟合而不是稀疏性,L2基本是首选。原因有三:优化最稳定(处处可导)、有闭式解(线性回归的岭回归)、对特征相关性不敏感(L1在特征高度相关时解不稳定,L2会把相关特征的权重平摊)。这三点让L2在绝大多数防过拟合场景里都是最省心、最可靠的选择。

L2唯一要注意的是它不做特征选择。如果你的特征维度极高、很多特征没用,光靠L2压不住,模型还是重。这种时候可以考虑L1+L2的组合(弹性网 Elastic Net),既保留L1的稀疏性又保留L2的稳定性。弹性网在特征相关性强、维度高的场景里表现通常比单独用L1或L2都好,代价是多一个超参数要调。

6. 实操中容易踩的几个坑

6.1 特征尺度没统一导致L1/L2行为异常

这是最常见也最隐蔽的坑。L1和L2的惩罚都直接作用在权重的绝对值上,如果特征尺度不统一,量纲大的特征对应的权重天然就小(因为输入大,权重小就能产生同样的输出),量纲小的特征权重天然就大。结果就是惩罚项对量纲小的特征惩罚更重,可能把有用的小尺度特征误杀。

解决办法很简单:用L1或L2正则化之前,先对特征做标准化(减均值除标准差)。这一步不能省。我见过有人直接用原始特征跑Lasso,结果模型把几个物理量纲小的关键特征全清零了,还以为是数据问题,查了很久才发现是没标准化。标准化之后,所有特征在同一尺度上竞争,惩罚才公平。

6.2 正则强度λ的调参没有银弹

$\lambda$ 怎么定?没有公式能直接算出来,只能靠交叉验证。我的做法是先在几个数量级上粗扫(比如 $10^{-4}, 10^{-3}, 10^{-2}, 10^{-1}, 1$),找到效果最好的量级,再在这个量级附近细调。粗扫用对数网格,因为 $\lambda$ 的影响通常是指数级的,线性扫会漏掉好区域。

还有一个经验:$\lambda$ 的最优值和样本量、特征数都有关。样本越多,$\lambda$ 可以适当小一点(数据本身提供了足够的约束);特征越多,$\lambda$ 通常要大一点(需要更强的稀疏约束)。但这个只是方向性指导,具体值还是得靠验证集说话。别信任何"经验公式",那些公式换个数据集就失效。

6.3 L1解的不稳定性与重采样验证

L1的解在特征相关时不稳定——稍微扰动数据,被选中的特征可能就换了一批。这个不稳定性在做特征选择时是个大问题,因为你没法确定选出来的特征是真的重要还是偶然。解决办法是用重采样验证:多次bootstrap采样,每次跑L1,统计每个特征被选中的频率。频率高的特征才是稳定重要的,偶尔被选中的可能是噪声。

这个方法叫稳定性选择(stability selection),实现不复杂但很实用。我一般会跑50到100次重采样,看特征被选中的比例,比例超过某个阈值(比如0.6)才认为是稳定特征。这样虽然计算量大一点,但选出来的特征靠谱得多,比单次L1的结果可信。

6.4 高维小样本下L2单独使用效果有限

当特征数远大于样本数(比如基因数据、文本数据),单独用L2正则化往往不够。因为L2不产生稀疏解,所有特征都保留,模型自由度还是太高,过拟合压不住。这种场景下L1或者弹性网更合适,它们能把大量无用特征的权重清零,真正降低模型复杂度。

这个坑的本质是:L2控制的是权重的"大小",不控制"数量"。高维场景下,数量才是主要矛盾,光压大小不够。所以选正则项之前,先想清楚你的问题是"权重太大"还是"特征太多",前者用L2,后者用L1或弹性网。这个判断做对了,后面调参会顺很多。

7. 从范数到实际问题的映射思路

7.1 先问"我要惩罚什么"再选范数

我现在的习惯是,遇到需要选范数的场景,先不急着套公式,而是问自己一个问题:我到底想惩罚什么样的解?如果我想惩罚"参数太大",用L2;想惩罚"非零参数太多",用L1;想惩罚"最大误差太大",用无穷范数。这个问题的答案直接指向范数类型,比背公式管用。

这个思路的好处是它把范数选择和业务目标挂钩了。范数不是数学装饰,它是你对"好解"的定义的一部分。你定义了什么是不好的解(大参数、多非零、大误差),范数就是把这个定义数学化的工具。想清楚这个,选型就不会盲目。

7.2 范数组合:弹性网与分组稀疏

单一范数有时不够用,组合起来能表达更复杂的需求。最常见的组合是弹性网(L1+L2),它同时惩罚非零个数和参数大小,在特征相关性强时比单独L1稳定。另一个有用的组合是分组Lasso(group Lasso),它把特征分组,组间用L1惩罚(选组)、组内用L2惩罚(组内不稀疏),适合"要么整组选入、要么整组剔除"的场景,比如多分类问题里一个类别对应的所有特征作为一组。

这些组合的本质是把"稀疏性"的定义细化——不是简单地数非零个数,而是按结构数。工程上很多问题有天然的分组结构(时间序列的滞后项、图像的通道、多任务的特征),用分组范数比用普通L1更贴合问题。这个思路值得记住:范数可以组合,组合的目的是表达你对解结构的先验知识。

7.3 一个判断清单:拿到问题后怎么快速定位

最后给一个我自己用的判断清单,拿到一个新问题,按这个顺序问一遍,基本能定位到该用什么范数:

  1. 我需要稀疏解吗?需要的话,是"精确零"还是"小值就行"?精确零用L1或L0思想,小值就行用L2。
  2. 特征之间相关性强吗?强的话L1不稳定,考虑L2或弹性网。
  3. 特征维度远大于样本量吗?是的话优先L1或弹性网,L2单独用不够。
  4. 我关心的是最大误差还是平均误差?最大误差用无穷范数,平均误差用L2。
  5. 有没有分组结构?有的话考虑分组范数。

这个清单不是万能的,但能覆盖大部分常见场景。真正复杂的场景还是得具体分析,但至少不会在基础选型上犯低级错误。范数这套东西,说到底就是几个度量方式,理解每个方式的偏好,再对照自己的需求,选型就是水到渠成的事。我在实际项目里反复用这个思路,比死记硬背公式管用得多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 11:50:27

AIoT智能决策:从语音控制到需求理解的技术演进

1. AIoT设备控制的本质突破&#xff1a;从语音指令到需求决策 三年前我第一次用语音控制智能灯泡时&#xff0c;曾天真地认为"开灯"这样的语音指令就是AIoT的终极形态。直到自己参与开发智能养老监护系统时&#xff0c;才发现真正的挑战在于&#xff1a;当老人说&quo…

作者头像 李华
网站建设 2026/10/31 11:48:21

IMU与GPS欺骗检测失效分析及改进方案

1. IMU与GPS欺骗检测的基本原理 在讨论基于IMU的GPS欺骗检测失效问题之前&#xff0c;我们需要先理解这两种传感器的工作原理以及它们如何协同工作。IMU&#xff08;惯性测量单元&#xff09;和GPS&#xff08;全球定位系统&#xff09;是现代导航系统中常用的两种互补传感器。…

作者头像 李华
网站建设 2026/10/31 11:48:04

快捷指令从入门到肌肉记忆:高频指令分层学习与训练路径

1. 从“记不住”到“肌肉记忆”&#xff1a;快捷指令这件事到底卡在哪 几乎每个用电脑超过三年的人&#xff0c;都经历过同一个尴尬瞬间&#xff1a;明明昨天才用过那个命令&#xff0c;今天坐在屏幕前&#xff0c;手指悬在键盘上&#xff0c;脑子里只剩一个模糊的影子——“好…

作者头像 李华
网站建设 2026/10/31 11:47:58

两分钟讲清DMZ:从设计到配置的完整指南

1. 两分钟讲清DMZ&#xff1a;从一个真实困惑说起 很多人第一次在防火墙配置界面看到DMZ这个选项时&#xff0c;第一反应是“这玩意儿是不是把内网机器直接暴露出去了”。我当年也一样&#xff0c;盯着那个黄色警告图标犹豫了半天没敢点。后来做运维的朋友跟我说了一句话&#…

作者头像 李华
网站建设 2026/10/31 11:47:26

用友NC65安装实战:从Oracle配置到最小可运行环境搭建

简介&#xff1a;本资源是一份面向用友NC65初学者与实施顾问的实战型安装配置指南&#xff0c;专为自我学习、沙箱测试及项目预演场景设计&#xff0c;有效解决新手在Oracle数据库搭建、NC65环境部署与系统初始化过程中常见的流程断点与权限配置难题。压缩包为单文件DOC文档&am…

作者头像 李华
网站建设 2026/10/31 11:47:25

AI工具如何提升学术写作与编程效率

1. 项目背景与核心价值 在学术写作和程序开发领域&#xff0c;效率和质量始终是两大核心痛点。传统论文写作需要经历选题、文献检索、框架搭建、内容撰写、格式调整等繁琐环节&#xff0c;而程序开发更是涉及需求分析、架构设计、编码实现、调试优化等复杂流程。根据2023年教育…

作者头像 李华