线性代数—向量与矩阵的范数(Norm)

参考链接:

范数(Norm)——定义、原理、分类、作用与应用 - 知乎

带你秒懂向量与矩阵的范数(Norm)_矩阵norm-CSDN博客

什么是范数(norm)?以及L1,L2范数的简单介绍_l1 norm-CSDN博客

 范数(Norm)是线性代数中的一个基本概念,用来度量一个向量的“长度”或“大小”

(简单来说,范数告诉我们一个向量离原点有多远。)

  • 向量范数 表征 向量空间中向量的大小,
  • 矩阵范数 表征 矩阵引起变化的大小。 

在机器学习中,范数常用于:

  • 衡量预测误差(损失函数)
  • 控制模型参数(正则化)
  • 比较向量之间的相似度(归一化)

不同范数对应不同的学习目标:

  • L1 控稀疏;
  • L2 控幅度;
  • L∞ 控最大值。

引入范数的原因 

我们都知道,函数与几何图形往往是有对应的关系,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是函数的高度形象化。
但当函数与几何超出三维空间时,就难以获得较好的想象,于是就有了映射的概念,进而引入范数的概念。

当有了范数的概念,就可以引出两个向量的距离的定义,这个向量可以是任意维数的。

通过距离的定义,进而我们可以讨论逼近程度,从而讨论收敛性、求极限。

  • 范数在计算机领域多用于:迭代过程中收敛性质的判断
    • 一般迭代前后步骤的差值的范数表示其大小常用的是二范数差值越小表示越逼近实际值,可以认为达到要求的精度,收敛。

总的来说,范数存在的意义是为了实现比较距离

比如,在一维实数集合中,我们随便取两个点4和9,我们知道9比4大。

但是到了二维实数空间中,取两个点(1,0)和(3,4),这个时候就没法比较它们之间的大小,因为它们不是可以比较的实数。

于是引入范数这个概念,把(1,0)和(3,4)通过范数分别映射到实数1 和 5 (两个点分别到原点的距离),这样我们就比较这两个点了。

所以可以看到,范数其实是一个函数,它把不能比较的向量转换成可以比较的实数

数学原理

向量的范数

在数学上,对于向量范数的定义,就是只要满足以下三条性质的函数,我们就可以称为它为范数。

(条件1的 \leftrightarrow 的意思就是当且仅当的意思)
所以,范数的是一个宽泛的概念,有很多种,但是一般只会用到常用的范数。

线性代数中最有用的一些运算符是范数(norm)。 非正式地说,向量的范数是表示一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。

在线性代数中,向量范数是将向量映射到标量的函数 f 。 给定任意向量x,向量范数要满足一些属性。

性质3&4即正定,性质1即齐次,性质2即三角不等性。

向量的 L0范数

意义:非0元素个数

在这里插入图片描述

评价:L0范数表示向量中非零元素的个数。

L0范数的这个属性,使其非常适用于机器学习中的稀疏编码。

在特征选择中,通过最小化L0范数来寻找最少最优的稀疏特征项。

但是,L0范数的最小化问题是NP难问题。而L1范数是L0范数的最优凸近似,它比L0范数要更容易求解。

因此,优化过程将会被转换为更高维的范数(例如L1范数)问题。

向量的 L1范数 (曼哈顿范数、、最小绝对误差)

意义:各个元素的绝对值之和(向量x中非零元素的绝对值之和)

几何意义:实际走的 “横+竖” 的 “城市街道” 距离。

在这里插入图片描述

使用 L1范数可以度量两个向量间的差异,如绝对误差和(Sum of Absolute Difference)

在这里插入图片描述

由于L1范数的天然性质,对L1优化的解是一个稀疏解,

因此L1范数也做 “Lasso regularization”(稀疏规则算子)

通过L1可以实现特征的稀疏,去掉一些没有信息的特征,例如在对用户的电影爱好做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如身高体重等可能都是无用的,利用L1范数就可以过滤掉。

向量的 L2范数 (欧几里得范数)

意义:每个元素平方和再平方根

在这里插入图片描述 即 

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

在这里插入图片描述

评价:L2范数是最常用的范数,比如用的最多的度量距离欧氏距离就是一种L2范数

在回归里面,有人把加了L2范数项的回归c称为“岭回归”(Ridge Regression),有人也叫它“权值衰减(weight decay)”。

它被广泛的应用在解决机器学习里面的过拟合问题:

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

为什么L2范数可以防止过拟合?回答这个问题之前,我们得先看看L2范数实际上是什么。
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项最小,可以使得的每个元素都很小,都接近于0L1范数会让它等于0,L2范数是接近于0),这是有很大的区别的。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。

为什么越小的参数说明模型越简单?

因为当限制了参数很小,实际上就限制了多项式某些分量的影响很小,即 相当于减少参数个数。

向量的 Lp范数 (一般形式)

意义:每个元素p次方和再p次方根

  • L0、L1、L2 都是Lp范数的特例,分别对应P=0、1、2的情况;
  • 可调节p控制范数行为(越大越趋近于L∞,即最大范数)

 即 

向量的 ∞范数 (最大范数)

意义:向量的 Lp范数的 p取无限大,即为向量的无穷范数,主要被用来度量向量元素的最大值

  • 取向量中最大绝对值作为长度。
  • 有时用于鲁棒性分析。

PS

L2范数其实就是向量的标准内积,向量的长度一定是范数,长度是范数的充分条件,但不是必要条件,也就是说,范数不一定就是向量的长度。由

长度定义的性质可知,满足长度的定义要符合平行四边形。

举一个反例就可以证明非必要性:向量L1范数不满足平行四边形法则(A=(0,1)、B=(1,0))。
由内积决定的长度具有更丰富的几何结构。

总结

简单总结一下就是:

  • L1范数: 为x向量各个元素绝对值之和,也叫“稀疏规则算”(Lasso regularization)。
    • 比如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|.
  • L2范数: 为x向量各个元素平方和的1/2次方(即 元素平方和的开根号)
    • L2范数又称Euclidean范数或者Frobenius范数
  • Lp范数: 为x向量各个元素绝对值p次方和的1/p次方

使用机器学习方法解决实际问题时,通常用L1或L2范数做正则化(regularization),从而限制权值大小,减少过拟合风险。特别是在使用梯度下降来做目标函数优化时。


 

L1正则化产生稀疏的权值,L2正则化产生平滑的权值为什么会这样?
在支持向量机学习过程中,L1范数实际是一种对于成本函数求解最优的过程,因此,L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满足稀疏化,从而方便提取特征。

  • L1范数可以使权值稀疏,方便特征提取。
  • L2范数可以防止过拟合,提升模型的泛化能力。

L1和L2正则先验分别服从什么分布

  • L1是拉普拉斯分布。
  • L2是高斯分布。

矩阵的范数

跟向量的范数定义类似,只不过矩阵的范数的性质比向量的范数性质多了一条相容性。
我们直接引出矩阵的范数定义:

矩阵范数的第三条性质也称为加法相容性,第四条是乘法相容性,前提都是矩阵之间可以进行加法或乘法的运算。

矩阵的 1-范数(列模)

意义:矩阵的 列向量的和 的最大值,即 A的每列元素绝对值之和 的最大值,也称为A的列范数

矩阵的 2-范数(谱模)

意义:A^TA 矩阵的最大特征值的开平方,也称谱范数

  • 特征值相当于是两个维度的压缩,相当于是从矩阵的维度里面找到最大的。

矩阵的 ∞范数(行模)

意义:矩阵的 行向量的和 的最大值,即 A的每行元素绝对值之和 的最大值,也称为A的行范数

矩阵的 F-范数

意义:Frobenius范数,即矩阵元素绝对值的平方和再开平方。类似于向量的L2范数。

 即 

也可以描述为:

总结

简单总结一下就是:

  • L1范数: 列范数,矩阵的 列向量的和 的最大值,即 A的每列元素绝对值之和 的最大值。
  • L2范数: A^TA 矩阵的最大特征值的开平方,也称谱范数
    • 特征值相当于是两个维度的压缩,相当于是从矩阵的维度里面找到最大的。
  • L∞范数: 行范数,矩阵的 行向量的和 的最大值,即 A的每行元素绝对值之和 的最大值。
  • Lf范数: Frobenius范数,类似于向量的L2范数,矩阵元素平方和再开平方。

范数的作用

作用领域用途说明
向量距离度量两个点或向量之间的“距离”用于损失函数、相似度计算
模型正则化控制模型复杂度,防止过拟合通过惩罚大参数避免学习噪声
向量归一化把向量缩放到单位长度常用于余弦相似度比较
稀疏表示用最少的非零值表达信息L1 正则可自动“筛选特征”

在机器学习中的实际应用

✅ 1. 损失函数中的误差度量

类型范数说明
MAE(平均绝对误差)L1鲁棒,对异常值不敏感
MSE(均方误差)L2常用,惩罚大误差更重

✅ 2. 模型正则化(Regularization)

类型正则项功能
L1 正则(Lasso)(\lambda \sum\theta_i
L2 正则(Ridge)λ∑θi2\lambda \sum \theta_i^2缓和过拟合,不会让参数变0,但压小

✅ 3. 向量归一化(Normalization)

✅ 4. 稀疏建模(Sparse Modeling)

  • 在某些应用中,希望模型只依赖少数几个特征(稀疏性):
    • 如文本分类、基因数据分析;

使用 L1 正则可以“自动让不重要的参数变成 0”;

  • L1 是稀疏性建模的核心工具。

面试范数相关常见提问汇总 + 答题思路

✅ 一、基础概念类问题(定义 + 原理)

❓Q1:解释一下什么是范数吗?

答题思路:

范数是一种用来衡量向量“大小”或“长度”的函数,它在机器学习中用于表示误差、距离、向量归一化或正则化。常见的范数有 L1 范数、L2 范数等,分别对应不同的应用需求。

❓Q2:L1 范数和 L2 范数的区别是什么?你更偏向哪一个?

答题思路:

  • L1 范数是所有元素的绝对值之和,鼓励模型稀疏;
  • L2 范数是所有元素平方和的平方根,鼓励整体平滑;
  • 如果任务要求模型可解释性强、特征选择重要,我会选择 L1;
  • 如果任务对稳定性更敏感,比如图像处理,我倾向 L2。

✅ 二、应用场景类问题(结合模型/正则)

❓Q3:在损失函数中为什么有时使用 L1 有时使用 L2?

答题思路:

  • L1(如 MAE)更稳健,适合对异常值敏感的任务;
  • L2(如 MSE)更常见,对大误差惩罚更重;
  • 如果数据中有 outlier,建议使用 L1;
  • 如果更关注整体误差稳定性,可以使用 L2。

❓Q4:正则化中 L1 和 L2 分别起什么作用?

答题思路:

  • L1 正则通过绝对值惩罚,会使某些参数收缩为 0,实现特征选择;
  • L2 正则通过平方惩罚,防止参数过大,减少过拟合;
  • L1 更适合用于高维稀疏建模(如文本分类),L2 更适合神经网络等连续模型。

✅ 三、原理理解类问题(深入推导)

❓Q5:为什么 L2 正则不产生稀疏性,但 L1 会?

答题思路:

  • 从几何角度讲,L1 范数的等值线是菱形,容易与损失函数的最优点交于坐标轴;
  • 而 L2 范数的等值线是圆形,更倾向于“均匀缩小所有参数”而不是让某些为 0;
  • 所以 L1 更容易“压掉”不重要的特征,让参数变为0。

❓Q6:你知道范数与梯度下降优化的关系吗?

答题思路:

  • 在添加正则化的损失函数中,比如 L2,会影响梯度更新方向;
  • L2 会加上 λθ\lambda \theta 项,等于对参数有一个“缩小”的趋势;
  • L1 的梯度是非连续的(不可导点),所以常用次梯度或特殊优化方法处理。

✅ 四、项目/实践类问题(结合实际应用)

❓Q7:在项目中有没有用到范数?怎么选的 L1 / L2?

答题思路(举例):

  • “在我做房价预测项目中,我使用了 L1 正则化进行特征选择,发现有多个冗余特征被自动归零,提升了模型解释性。”
  • “而在另一个图像复原项目中,我使用了 L2 损失函数和 L2 正则,因为目标是尽可能还原每个像素值,不允许过大偏差。”

❓Q8:若模型过拟合了,会怎么用范数应对?

答题思路:

  • 我会通过添加正则化项(L1/L2)来约束模型参数的规模;
  • 如果模型很复杂,特征维度很高,我会尝试 L1 来让模型自动做特征选择;
  • 如果我关注模型的稳定性和泛化性能,我会使用 L2 控制参数幅度。

✅ 五、开放性问题(考察综合素质)

❓Q9:如果我说 L2 正则是控制模型复杂度的“软剪枝”,你怎么理解?

答题思路:

  • 软剪枝指的是“不强制为0,而是控制其变小”;
  • L2 不会像 L1 一样使参数归零,但会持续压缩大的权重;
  • 这有助于模型在保持全部特征的情况下减少过拟合。

快速知识卡片(可打印记忆)

L1 范数L2 范数
公式(\sumx_i
名称曼哈顿距离欧几里得距离
特点稀疏、鲁棒平滑、常用
正则化应用Lasso(特征选择)Ridge(稳定优化)
适用场景高维稀疏建模连续模型控制复杂度
损失函数MAEMSE
面试关键词特征选择、正则稀疏性权重控制、余弦相似度归一化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java高频面试之并发编程-08

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:说说sleep和wait的区别? 1. 核心区别总结 特性sleep()wait()所属类Thread 类的静态方法Object 类的实例方法…

Spring-Ai-McpSever从外到内

MCP是什么 Model Context Protocol (MCP) 是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善 chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LL…

ubuntu22.04 命令行修改静态ip

传统interfaces文件配置(适用于旧版)即便我们已经在桌面上配置了固定ip 这里也可以修改 ‌编辑配置文件‌ 修改/etc/network/interfaces(需安装net-tools): # interfaces(5) file used by ifup(8) and ifdown(8) # In…

计算机网络学习笔记 4-6章

第 4 章 网络层 【考纲内容】 (一)网络层的功能 异构网络互连;路由与转发;SDN 基本概念;拥塞控制 (二)路由算法 静态路由与动态路由;距离 - 向量路由算法&#xff1…

力扣hot100_子串_python版本

一、560. 和为 K 的子数组 思路:这就是一道典型的前缀和的题代码: class Solution:def subarraySum(self, nums: List[int], k: int) -> int:presum [0] * (len(nums) 1)for i, x in enumerate(nums):presum[i 1] presum[i] x # 前缀和序列需要n1个ans 0…

猿人学web端爬虫攻防大赛赛题第15题——备周则意怠-常见则不疑

解题步骤 1、观察抓的包 2、有个m参数,一看就是经过处理的,我们得知道m是如何组成的。看Initiator模块。 3、还是看request函数,往上一看就看到了m的赋值操作。 打断点,触发。 4、看下window.m()的定义 5、比较好理解的&#x…

rag增强检索-基于关键词检索的混合检索模式

1. 为什么在 RAG 里要用关键词检索? 向量检索(embedding-based retrieval)是找语义相近的内容,但有时候不够准确。比如用户问了具体人名、产品型号、年份,这类关键词强指向性的信息,用向量检索可能匹配不到最相关内容。**关键词检索(keyword-based retrieval)**可以直接…

纯真社区IP库离线版发布更新

纯真社区IP库离线版发布更新 发布者:技术分享 2005年,随着中国互联网的蓬勃发展,纯真IP库诞生了。作为全球网络空间地理测绘技术的领先者,纯真开源项目为中国互联网行业提供了高质量的网络空间IP库数据。纯真IP库目前已经覆盖超…

GitOps进化:深入探讨 Argo CD 及其对持续部署的影响

什么是 GitOps? 虽然软件开发生命周期的大部分已经实现自动化,但基础设施仍然在很大程度上依赖于人工,需要专业团队的参与。随着当今基础设施需求的不断增长,实施基础设施自动化变得越来越重要。现代基础设施需要具备弹性&#x…

通过示例学习:连续 XOR

通过示例学习:连续 XOR 如果我们想在 PyTorch 中构建神经网络,可以使用 (with) 指定所有参数(权重矩阵、偏差向量),让 PyTorch 计算梯度,然后调整参数。但是,如果我们有很…

百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?

目录 百度Create大会亮点全解析:从数字人到Agent生态布局 数字人商业化:从"拟人"到"高说服力"的进化 Agent生态:从"心响"App看百度的Agent战略布局 "心响"App的技术架构与创新点 多模态大模型&a…

django filter 日期大于当前日期的

在Django中,如果你想要过滤出日期大于当前日期的记录,你可以使用Django的QuerySet API中的__gt(大于)操作符。这里是如何做到这一点的步骤: 确定你的模型:首先,确保你有一个模型(Mo…

C#本地使用离线ocr库识别图片中文本,工具包PaddleOCRSharp

C#本地使用离线ocr库识别图片文本,工具包PaddleOCRSharp PaddleOCRSharp介绍 项目地址:https://github.com/raoyutian/PaddleOCRSharp PaddleOCRSharp 是一个.NET版本OCR可离线使用类库。项目核心组件PaddleOCR.dll目前已经支持C\C、.NET、Python、Go…

缺省处理、容错处理

布尔判定 假:false 0 null undefined NaN 可选符.?和?? let obj {name: jim,data: {money: 0,age: 18,fn(a){return a}} }1、如果左侧的值为null或者undefined,则使用右侧值。需要使用"??" obj?.data?.a…

【Java面试题系列02】Java 集合常见面试题

文章目录 一、前言🚀🚀🚀二、Java 基础面试题:☀️☀️☀️1、说说 Java 中 HashMap 的原理?2、HashMap 的扩容机制?3、为什么 Java 中 HashMap 的默认负载因子是 0.75?4、JDK 1.8 对 HashMap 除了红黑树还…

如何创建并使用极狐GitLab 部署令牌?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 部署令牌 (BASIC ALL) 您可以使用部署令牌来启用部署任务的身份验证,而与用户账户无关。在大多数情况下&#xf…

OpenGl ES 3.0 笔记一:初步概念

🎯 整体比喻:开一场 3D 打印画展! 想象你在做一件事情:「拿设计图,把它画在一张纸上」。 这整个流程就好像 GPU 在渲染一幅画。 而下面这几个阶段,就是这场「画展」里每个具体的人或机器要做的事情&#x…

人类社会的第四阶段

本书的主旨是探讨一场新的权力革命,它将以20世纪民族国家的毁灭为代价, 解放出个体。创新,以前所未有的方式改变了暴力的逻辑,并且正在革新未来的 边界。如果我们的推论是正确的,你们正站在一场有史以来最宏大的革命的…

位置差在坐标系间的相互转换

1 NED转经纬高 (n 系下的北向、东向和垂向位置差异(单位 m)转化为纬度、经度和高程分量的差异) 2 基站坐标转换 纬度、经度、高程 到 ECEF %纬度、经度、高程 到 ECEF clc; clear; glvs; addpath(genpath(E:\GNSSINS\ACES)…

WPF定义扩展属性和依赖属性

WPF扩展属性与依赖属性详解 一、依赖属性(Dependency Property)详解 1. 什么是依赖属性? 依赖属性是WPF框架的核心特性之一,它允许属性值依赖于: 父元素的属性值(继承)样式和模板动画数据绑定资源查找2. 依赖属性的特点 ​​属性值继承​​:子元素可以继承父元素的属性…