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

低秩矩阵、奇异值矩阵和正交矩阵

低秩矩阵

低秩矩阵(Low-rank Matrix)是指秩(rank)远小于其行数和列数的矩阵,即 r a n k ( M ) = r ≪ min ⁡ ( m , n ) rank(M) = r \ll \min(m,n) rank(M)=rmin(m,n)。其核心特点是信息冗余性,可通过少量独立基向量(奇异向量)近似表示整个矩阵,从而在数据压缩、去噪和补全等任务中发挥重要作用。

意义

矩阵乘法是大多数机器学习模型的核心计算瓶颈。为了降低计算复杂度,已经出现了许多方法对一组更高效的矩阵进行学习。这些矩阵被称为结构化矩阵,其参数数量和运行时间为次二次函数(对于 𝑛 维度,其参数数量和运行时间为 𝑜¹𝑛²º)。结构化矩阵最常见的例子是稀疏矩阵低秩矩阵,以及信号处理中常见的快速变换(傅里叶变换、切比雪夫变换、正弦/余弦变换、正交多项式)。

核心概念

  1. 秩的定义
    矩阵的秩表示其线性无关的行或列向量的最大数量。若矩阵 M ∈ R m × n M \in \mathbb{R}^{m \times n} MRm×n 的秩为 r r r,则存在分解 M = U V T M = UV^T M=UVT,其中 U ∈ R m × r U \in \mathbb{R}^{m \times r} URm×r V ∈ R n × r V \in \mathbb{R}^{n \times r} VRn×r,参数总量从 m × n m \times n m×n 降至 ( m + n ) × r (m+n) \times r (m+n)×r

  2. SVD与低秩逼近
    奇异值分解(SVD)将矩阵分解为 M = U Σ V T M = U\Sigma V^T M=UΣVT,其中 Σ \Sigma Σ 为奇异值矩阵。通过保留前 k k k 个最大奇异值( k ≪ r k \ll r kr),可得到最优低秩近似 M k M_k Mk(Eckart-Young-Mirsky定理)。

应用场景

  1. 推荐系统
    用户-物品评分矩阵通常低秩,通过矩阵分解(如SVD)挖掘潜在特征,预测缺失值。
  2. 图像处理
    图像矩阵的低秩性可用于去噪(将噪声视为高秩扰动)或修复缺失像素。
  3. 深度学习微调
    LoRA(Low-Rank Adaptation)通过低秩矩阵调整大模型参数,减少计算量。

示例说明

若矩阵 A = [ 1 2 3 2 4 6 3 6 9 ] A = \begin{bmatrix}1 & 2 & 3 \\ 2 & 4 & 6 \\ 3 & 6 & 9\end{bmatrix} A= 123246369 ,其秩为1,因为所有行均为第一行的倍数。此时 A A A 可表示为 U V T UV^T UVT(如 U = [ 1 , 2 , 3 ] T U = [1,2,3]^T U=[1,2,3]T V = [ 1 , 2 , 3 ] V = [1,2,3] V=[1,2,3])。

为什么重要?

  • 计算效率:低秩分解降低存储和计算复杂度(如从 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n))。
  • 鲁棒性:在噪声或缺失数据下仍能恢复主要结构。

奇异值矩阵

奇异值矩阵(Singular Value Matrix)是奇异值分解(SVD)中的核心组成部分,通常记为 Σ \Sigma Σ(或 S S S),它是一个对角矩阵,其对角线元素为矩阵的奇异值,按从大到小排列,其余元素为零。以下是详细解析:


1. 定义与数学形式

给定矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} ARm×n,其奇异值分解为:
A = U Σ V T A = U \Sigma V^T A=UΣVT
其中:

  • U U U m × m m \times m m×m 的正交矩阵(左奇异向量)。
  • V V V n × n n \times n n×n 的正交矩阵(右奇异向量)。
  • Σ \Sigma Σ m × n m \times n m×n对角矩阵,称为奇异值矩阵,其对角线元素 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 \sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_r > 0 σ1σ2σr>0 r = rank ( A ) r = \text{rank}(A) r=rank(A))即为 A A A 的奇异值。

2. 奇异值的性质

  • 非负性:奇异值 σ i \sigma_i σi 是非负实数,且唯一确定(即使 U U U V V V 不唯一)。
  • 与特征值的关系:奇异值是 A T A A^TA ATA A A T AA^T AAT 的特征值的平方根。
  • 矩阵秩:非零奇异值的个数等于矩阵 A A A 的秩。

3. 计算与示例

计算方法
  • SVD分解:通过数值计算工具(如MATLAB的 svd 或 Python的 numpy.linalg.svd)直接求解。
  • 特征值分解:先计算 A T A A^TA ATA 的特征值,再取平方根得到奇异值。
示例

若矩阵 A = [ 1 0 1 0 1 0 ] A = \begin{bmatrix}1 & 0 & 1 \\ 0 & 1 & 0\end{bmatrix} A=[100110],其奇异值分解后 Σ \Sigma Σ 可能为:
Σ = [ 1.732 0 0 0 1 0 ] \Sigma = \begin{bmatrix}1.732 & 0 & 0 \\ 0 & 1 & 0\end{bmatrix} Σ=[1.73200100]
其中奇异值为 1.732 1.732 1.732 1 1 1


4. 应用场景

  • 数据压缩:保留前 k k k 个奇异值(低秩近似)可减少存储和计算量(如PCA)。
  • 图像去噪:较小的奇异值通常对应噪声,截断后可恢复清晰图像。
  • 推荐系统:通过SVD分解用户-物品矩阵,提取潜在特征。

5. 几何意义

奇异值表示矩阵 A A A 在不同方向上的“缩放因子”。例如,在图像处理中,奇异值越大,对应的特征方向对图像的贡献越大。


总结

奇异值矩阵 Σ \Sigma Σ 是SVD的核心,其对角线元素(奇异值)揭示了矩阵的秩、稳定性及主要特征方向。通过控制奇异值的数量,可实现数据降维、去噪等高效操作。

正交矩阵

正交矩阵(Orthogonal Matrix)是线性代数中一类重要的实方阵,其核心特性是转置矩阵等于逆矩阵,即满足 Q T Q = Q Q T = I Q^T Q = Q Q^T = I QTQ=QQT=I I I I 为单位矩阵)。以下是其关键内容:


1. 定义与性质

  • 定义:若 n × n n \times n n×n 实矩阵 Q Q Q 满足 Q T = Q − 1 Q^T = Q^{-1} QT=Q1,则称 Q Q Q 为正交矩阵。
  • 等价条件
    1. 行(或列)向量组是标准正交基(两两正交且长度为1)。
    2. 保持向量内积不变: ( Q x , Q y ) = ( x , y ) (Qx, Qy) = (x, y) (Qx,Qy)=(x,y),即保持几何长度和夹角。
    3. 行列式 ∣ Q ∣ = ± 1 |Q| = \pm 1 Q=±1 + 1 +1 +1 表示旋转, − 1 -1 1 表示反射)。

2. 分类与例子

  • 第一类正交矩阵 ∣ Q ∣ = 1 |Q| = 1 Q=1,对应旋转变换(如二维旋转矩阵):
    Q = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] Q = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} Q=[cosθsinθsinθcosθ]
  • 第二类正交矩阵 ∣ Q ∣ = − 1 |Q| = -1 Q=1,对应反射变换(如镜像矩阵)。

3. 应用领域

  • 几何变换:用于旋转、反射等操作(如计算机图形学中的坐标变换)。
  • 数据科学:主成分分析(PCA)中通过正交矩阵实现降维。
  • 信号处理:离散傅里叶变换(DFT)的基函数构成正交矩阵。
  • 量子计算:量子门操作对应酉矩阵(复数域的正交矩阵)。

4. 重要定理

  • 谱分解定理:实对称矩阵可通过正交矩阵对角化,即 A = Q Λ Q T A = Q \Lambda Q^T A=QΛQT Λ \Lambda Λ 为对角矩阵)。
  • QR分解:任意矩阵可分解为正交矩阵与上三角矩阵的乘积。

Python示例验证

import numpy as np
Q = np.array([[1/np.sqrt(2), 1/np.sqrt(2)], [-1/np.sqrt(2), 1/np.sqrt(2)]])
print("Q^T Q = \n", np.dot(Q.T, Q))  # 应输出单位矩阵

正交矩阵因其计算高效(逆即转置)和几何保形性,成为数学与工程领域的基石工具。

http://www.xdnf.cn/news/733627.html

相关文章:

  • 【FlashRAG】本地部署与demo运行(一)
  • ArcGIS应用指南:基于网格与OD成本矩阵的交通可达性分析
  • AI时代的园区网变革:“极简”行至最深处,以太彩光恰自来
  • 【C++】位图
  • 前端pointer-events属性
  • 显卡3080和4060哪个强 两款游戏性能对比
  • 重拾Scrapy框架
  • Clish中xml文件配置的使用方法
  • Spring Cloud Alibaba 学习 —— 简单了解常用技术栈
  • 【专题】神经网络期末复习资料(题库)
  • 二、Python提供了丰富的内置工具,无需额外安装即可使用
  • 6个月Python学习计划 Day 9 - 函数进阶用法
  • 【ROS2实体机械臂驱动】rokae xCoreSDK Python测试使用
  • 单卡4090部署Qwen3-32B-AWQ(4bit量化)-vllm
  • 网易 - 灵犀办公文档
  • const ‘不可变’到底是值不变还是地址不变
  • Python使用
  • C 语言中 * count++ 引发的错误与正确指针操作解析
  • Lyra学习笔记2 GFA_AddComponents与ULyraPlayerSpawningManagerComponent
  • 玛哈特校平机实战指南:选型、应用痛点
  • 【Unity】模型渐变技术 BlendShapes变形
  • 深入理解复数加法与乘法:MATLAB演示
  • 云原生微服务架构演进之路:理念、挑战与实践
  • Hive的数据倾斜是什么?
  • 杨传辉:构建 Data × AI 能力,打造 AI 时代的一体化数据底座|OceanBase 开发者大会实录
  • Armv7l或树莓派32位RPI 4B编译faiss
  • @Pushgateway自定义脚本推送数据
  • C++继承权限与访问控制详解
  • 解决win自动重启(自用,留链接)
  • Express教程【002】:Express监听GET和POST请求