SVD矩阵奇异值分解

本文介绍了SVD(奇异值分解)在处理稀疏矩阵中的应用,通过分解为正交矩阵、对角矩阵和另一个矩阵的乘积,实现矩阵的尺寸压缩并保持重要信息。文中详细阐述了特征值和特征向量的概念,以及如何通过SVD对非方阵进行分解的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVD矩阵奇异值分解

前言

为了使计算机理解实际问题体中目标各项特征,通常使用方阵来储存这些特征值,例如一个人的年龄,身高,体重可以使用[32,185,75][32,185,75][32,185,75]进行表示。但是对于有些问题,其特征矩阵是稀疏矩阵,矩阵内部许多向量都为0,例如矩阵 OOO。这即造成储存空间的浪费,同时消耗了计算资源,那能不能即压缩矩阵的大小,且保留矩阵的重要信息呢?这时候可以用到SVD矩阵奇异值分解

O=[00⋯000⋯0⋮⋮⋱⋮00⋯0] O=\begin{bmatrix} 0 & 0 & \cdots & 0 \\ 0 & 0 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 \end{bmatrix} O= 000000000

SVD矩阵奇异值分解

SVD可以将任意一个矩阵分解为一个正交矩阵、一个对焦矩阵和另外一个对角矩阵的乘积。对角矩阵的对角元称为矩阵的奇异值,可以证明,奇异值总是大于等于0的。当对角矩阵的奇异值按从大到小排列时,SVD分解是唯一的。

特征值与特征向量

理解SVD之前必需搞懂两个概念,特征值与特征向量,假设存在一个n∗nn*nnn矩阵AAA,存在一个nnn维矩阵xxx和一个特征值λ\lambdaλ,使得式(1)(1)(1)成立。

Ax=λx(1) Ax = \lambda x\tag{1} Ax=λx(1)

λ\lambdaλ即为AAA的特征值,xxxAAA的特征向量。那如何求取矩阵AAA的特征值和特征向量呢?计算如下:

Ax−λx=0(A−λE)x=0 \begin{align} Ax-\lambda x = 0\tag{2} \\ (A - \lambda E)x = 0 \tag{3}\\ \end{align} Axλx=0(AλE)x=0(2)(3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值