【深度学习】S2 数学基础 P2 线性代数(下)

目录

本节博文是线性代数第二部分,主要内容为 L 1 L1 L1 范数与 L 2 L2 L2 范数;有关线性代数基础知识,请访问:【深度学习】S2 数学基础 P1 线性代数(上)

范数的意义

范数的数学意义

在数学的框架内,范数是一个基本的概念,它为向量空间提供了一个度量方法,使得可以比较向量的大小,并研究向量之间的运算。

范数之于深度学习的意义

而在深度学习中,范数作为正则化项添加到损失函数中,以帮助改善模型的泛化能力。

具体的说,在深度学习中,损失函数由两部分组成:数据损失和正则化损失。数据损失反映了模型预测与真实标签之间的差异(例如,交叉熵损失或均方误差),而正则化损失则旨在惩罚模型的复杂度,抑制模型参数的过度增长,从而提高模型的泛化能力,防止过拟合。

e . g . e.g. e.g. 一个包含均方误差损失函数和 L1 正则化项的损失函数表示为:
L ( w ) = L d a t a ( w ) + λ R ( w ) L(w)=L_{data}(w)+\lambda R(w) L(w)=Ldata(w)+λR(w)

其中 L d a t a ( w ) L_{data}(w) Ldata(w) 为均方误差损失函数; R ( w ) R(w) R(w) 为 L1 正则化损失函数; λ \lambda λ 是正则化系数;

  • L d a t a ( w ) = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 L_{data}(w)=\frac 1 n \sum ^n _{i=1} (y_i-\hat y_i)^2 Ldata(w)=n1∑i=1n(yi−y^i)2

其中, y i y_i yi 是第 i i i 个真实标签, y ^ i \hat y_i y^i 是模型预测的第 i i i 个标签, n n n 是样本数量。

  • R ( w ) = ∑ j ∣ w j ∣ R(w)=\sum _j |w_j| R(w)=∑j∣wj∣

其中, w j w_j wj 是模型参数, ∣ w j ∣ |w_j| ∣wj∣ 是 w j w_j wj 的绝对值。

可以发现,优化算法在训练过程中会同时最小化两部分损失。由于正则化项通常与模型的复杂度成正比,因此在优化算法寻找最小化损失函数的参数时,会倾向于选择那些能够同时减小数据损失和正则化损失的参数。这样,模型的参数值就会更加分散,模型变得更加简单,从而提高了在未见数据上的泛化能力。

如此,便是范数之于深度学习的意义。


L1 范数与 L2 范数

L1 范数

L1 范数,也称 L1 正则化、 "曼哈顿范数"(Manhattan norm),是向量各元素的绝对值之和。通过在损失函数中增加一个 L1 范数的惩罚项,使某些参数变为零,从而鼓励模型拥有更稀疏的权重,防止模型过拟合。

对于向量 x = [ x 1 , x 2 , . . . , x n ] \mathbf{x} = [x_1, x_2, ..., x_n] x=[x1,x2,...,xn],其 L1 范数表示为:
∣ ∣ x ∣ ∣ 1 = ∑ i = 1 n ∣ x i ∣ ||x||1 = \sum{i=1}^{n} |x_i| ∣∣x∣∣1=i=1∑n∣xi∣

在深度学习 PyTorch 框架中计算 L1 范数,我们将 "绝对值函数" 和 "按元素求和" 组合起来;

python 复制代码
torch.abs(u).sum()

L2 范数

L2 范数,也称 L2 正则化、"欧几里得范数"(Euclidean norm)、"平方范数",是向量的各元素平方和的平方根。同于 L1 正则化,鼓励模型拥有更稀疏的权重;不同于 L1 正则化,L2 正则化不会导致权重(参数)为零,而是减小权重的绝对值。

对于向量 x = [ x 1 , x 2 , . . . , x n ] \mathbf{x} = [x_1, x_2, ..., x_n] x=[x1,x2,...,xn],其 L2 范数表示为:
∣ ∣ x ∣ ∣ 2 = ∑ i = 1 n x i 2 ||x||2 = \sqrt{\sum{i=1}^{n} x_i^2} ∣∣x∣∣2=i=1∑nxi2

在深度学习 PyTorch 框架中计算 L2 范数,使用 norm() 函数;

python 复制代码
u = torch.tensor([3.0, -4.0])
torch.norm(u)

小结

L1 范数和 L2 范数的选择取决于具体问题的需求。

在某些情况下,使用 L1 范数可以得到更稀疏的解,这在文本处理和某些类型的图像处理中是有益的。而在其他情况下,L2 范数可能更为合适,因为它能更好地控制模型的光滑度。

在实际应用中,根据不同的场景和问题特性,选择合适的范数非常重要,这关系到算法的性能和效果。


如上;

如有任何疑问,请留言~

2024.2.14

相关推荐
buttonupAI34 分钟前
今日Reddit各AI板块高价值讨论精选(2025-12-20)
人工智能
2501_904876481 小时前
2003-2021年上市公司人工智能的采纳程度测算数据(含原始数据+计算结果)
人工智能
曹文杰15190301121 小时前
2025 年大模型背景下应用统计本科 计算机方向 培养方案
python·线性代数·机器学习·学习方法
竣雄1 小时前
计算机视觉:原理、技术与未来展望
人工智能·计算机视觉
救救孩子把2 小时前
44-机器学习与大模型开发数学教程-4-6 大数定律与中心极限定理
人工智能·机器学习
Rabbit_QL2 小时前
【LLM评价指标】从概率到直觉:理解语言模型的困惑度
人工智能·语言模型·自然语言处理
呆萌很2 小时前
HSV颜色空间过滤
人工智能
roman_日积跬步-终至千里2 小时前
【人工智能导论】02-搜索-高级搜索策略探索篇:从约束满足到博弈搜索
java·前端·人工智能
FL16238631292 小时前
[C#][winform]基于yolov11的淡水鱼种类检测识别系统C#源码+onnx模型+评估指标曲线+精美GUI界面
人工智能·yolo·目标跟踪
爱笑的眼睛113 小时前
从 Seq2Seq 到 Transformer++:深度解构与自构建现代机器翻译核心组件
java·人工智能·python·ai