当前位置: 首页 > news >正文

【数学基础】范数及其应用

范数(Norm) 是数学中衡量向量或矩阵“大小”的一种工具,本质上是将向量映射到一个非负实数的函数。它不仅是线性代数中的基础概念,还在机器学习、优化、物理等领域广泛应用。


一、范数的定义

对向量空间中的任意向量 x,范数满足以下性质:

  1. 非负性:|x| ≥ 0,且 |x| = 0 当且仅当 x = 0。
  2. 齐次性:|αx| = |α|·|x|(α 为标量)。
  3. 三角不等式:|x + y| ≤ |x| + |y|。

二、常见的向量范数

1. L₀ 范数(0-范数)
  • 定义:向量中非零元素的个数。
  • 公式:|x|₀ = Σ|xᵢ|⁰(实际是计数)。
  • 用途:稀疏性度量(如特征选择),但严格来说不满足范数定义(不满足齐次性)。
2. L₁ 范数(曼哈顿范数)
  • 定义:向量元素的绝对值之和。
  • 公式:|x|₁ = Σ|xᵢ|。
  • 用途:稀疏优化(如 Lasso 回归)、图像压缩。
  • 几何意义:在二维空间中,单位球是菱形(对角线顶点在坐标轴上)。
3. L₂ 范数(欧几里得范数)
  • 定义:向量到原点的欧氏距离。
  • 公式:|x|₂ = √(Σxᵢ²)。
  • 用途:距离计算、正则化(如 Ridge 回归)、几何中的长度。
  • 几何意义:单位球是圆形(三维为球体)。
4. Lₚ 范数(一般范数)
  • 定义:对 p ≥ 1,|x|ₚ = (Σ|xᵢ|ᵖ)^(1/p)。
  • 特殊值
    • p=1 → L₁ 范数
    • p=2 → L₂ 范数
    • p→∞ → L∞ 范数
5. L∞ 范数(最大范数)
  • 定义:向量中绝对值最大的元素。
  • 公式:|x|∞ = max(|x₁|, |x₂|, …, |xₙ|)。
  • 用途:控制最坏情况误差(如信号处理中的峰值限制)。

三、矩阵范数

  1. Frobenius 范数

    • 定义:矩阵元素的平方和的平方根,即 |A|_F = √(ΣΣ|aᵢⱼ|²)。
    • 用途:衡量矩阵的整体“能量”(如神经网络中的权重正则化)。
  2. 谱范数(2-范数)

    • 定义:矩阵的最大奇异值,即 |A|₂ = σ_max(A)。
    • 用途:衡量矩阵对向量的最大拉伸程度。

四、范数的应用场景

1. 机器学习中的正则化
  • L₁ 正则化(稀疏性):
    # Lasso 回归的损失函数
    loss = MSE(y_true, y_pred) + λ * Σ|wᵢ|
    
  • L₂ 正则化(权重衰减):
    # Ridge 回归的损失函数
    loss = MSE(y_true, y_pred) + λ * Σwᵢ²
    
2. 几何与物理
  • 计算距离(L₂ 范数)、定义球体或超立方体(不同范数的单位球)。
3. 优化问题
  • 约束条件(如 |x| ≤ 1)、目标函数中的误差最小化。
4. 信号处理
  • L∞ 范数用于限制信号的最大幅值,L₁ 用于稀疏信号恢复。

五、代码示例(Python)

import numpy as np# 定义向量
x = np.array([3, -4, 0, 2])# 计算不同范数
l0 = np.count_nonzero(x)               # L0 范数(非零元素个数)
l1 = np.sum(np.abs(x))                  # L1 范数(绝对值之和)
l2 = np.linalg.norm(x, ord=2)           # L2 范数(欧氏距离)
linf = np.max(np.abs(x))                # L∞ 范数(最大绝对值)print(f"L0: {l0}, L1: {l1}, L2: {l2}, L∞: {linf}")
# 输出:L0: 3, L1: 9, L2: 5.385164807134504, L∞: 4

六、总结

  • 核心作用:量化向量或矩阵的“大小”或“复杂度”。
  • 选择依据
    • 需要稀疏性 → L₁ 范数
    • 需要平滑性 → L₂ 范数
    • 控制最大值 → L∞ 范数
  • 数学本质:范数的选择定义了空间中的几何结构和优化行为。
http://www.xdnf.cn/news/639919.html

相关文章:

  • Leetcode 刷题记录 10 —— 二叉树
  • 第五项修炼与系统思考
  • Lambda表达式的方法引用详解
  • 在 Thonny 中打包 EXE
  • Python 内存管理机制详解:从分配到回收的全流程剖析
  • 考研政治资料分享 百度网盘
  • Linux架构篇、第五章_03gitlab的搭建
  • 程序代码模块化设计的架构方法论
  • ubuntu下nginx
  • 棒球比赛暗号百科·棒球1号位
  • HttpServletRequest 对象包含了哪些信息?
  • 【计算机CPU架构】x86架构简介
  • 简单数学板子和例题
  • 如何将ChatGPT添加到WordPress(新手指南)
  • NTFS0x90属性和0xa0属性和0xb0属性的一一对应关系是index_entry中的index_node中VCN和runlist和bitmap
  • 创建dummy
  • 基于diffusion的图像编辑与inpaint
  • pycharm管理项目python环境
  • TCP四次挥手,网络连接关闭的艺术
  • 【医学影像 AI】使用 PyTorch 和 MedicalTorch 实现脊髓灰质分割
  • 一步一图学信号可视化:用Python绘制多频率信号对比图
  • 数据结构 栈的详细解析
  • OC语言学习——Foundation框架回顾及考核补缺
  • JVM虚拟机
  • 在vue中重复组件导入简化方案
  • 2025年5月25日第一轮
  • 数据结构之图结构
  • vllm 2080TI ubuntu环境安装
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类图标QIcon)
  • 【大模型应用开发】Qwen2.5-VL-3B识别视频