特征分解和奇异值分解(SVD)

【数学与算法】奇异矩阵、奇异值、奇异值分解、奇异性 我们经常会碰到几个名词很相近的一些数学术语,例如`奇异矩阵、奇异值、奇异值分解、奇异性`,经常会混淆,这里把它们的定义放在一起,做一下总结: 阅读详情

特征分解

若方阵 A∈R n×n  ,存在 v∈R n  、λ∈R ,使得:Av=λv ,则 v  称为 A  的(右)特征向量, λ  称为 A  的特征值。

将所有的特征向量按列排成一个矩阵 V ,则有:A=VΛV −1  ,其中 Λ  是所有的特征值构成的对角矩阵。该式称为 A  的特征分解。

特别地,若 A  是对称矩阵,则有 A=QΛQ −1 =QΛQ T  ,其中 Q  是正交矩阵。

奇异值分解(SVD)

若 A∈R m×n   是非方阵,则不能对其进行特征分解,但可以进行奇异值分解:A=UΣV T  ,其中 U∈R m×m   为正交阵,Σ∈R m×n   为对角阵(不一定是方阵),V∈R n×n   为正交阵。

奇异值分解可以用特征分解来解释,设 A=UΣV T  ,则有:
- AA T =UΣV T VΣU T =UΣ 2 U T  
。可见,A  的奇异值分解中的 U  就是对称阵 AA T   的特征向量,Σ  则是 AA T   的特征值的平方根。
- A T A=VΣU T UΣV T =VΣ 2 V T  
。可见,A  的奇异值分解中的 V  就是对称阵 A T A  的特征向量,Σ  则是 A T A  的特征值的平方根。

SVD分解能用于数据压缩:
- 通过 A m×n =U m×m Σ m×n V T n×n  ,求解 U 、Σ 、V 
- 将 Σ  中的奇异值从大到小排序,对应 U 、 V  的列向量也重新排序
- 取前 k  个奇异值对应的 U ^  m×k  、Σ ^  k×k  、V ^  n×k  ,计算 A  的近似矩阵 A ^  m×n =U ^ Σ ^ V ^  T  

此时所需的存储量为 mk+k+nk=k(m+n+1) ,若k<mnm+n+1  ,就能起到压缩的作用。实际上,对于图像这样的数据,当 k<mnm+n+1   时,也能保留视觉上的大部分信息。

import math
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

# 读取图片
X = np.array(Image.open(".\_data\son.jpg").convert('L'), 'f') # M*N
M = X.shape[0]
N = X.shape[1]

U, s, V = np.linalg.svd(X) # 奇异值分解(均已按 s 中的奇异值降序排列)
S = np.zeros((M, N))
S[0:M, 0:M] = np.diag(s)

plt.subplots(figsize=(20,10))
r, c, i = (5, 6, 1)

for k in range(M, 0, -math.ceil(M/(r*c))):
    Uk = U[:, 0:k] # M*k
    Sk = S[0:k, 0:k] # k*k
    Vk = V[0:k, :] # k*N
    X_ = Uk.dot(Sk).dot(Vk) # M*N
    ratio = 1.0*k*(M+N+1)/(M*N)
    plt.subplot(r, c, i, title='↓k=%d, ratio=%.1f' % (k, ratio)).axis('off')
    plt.imshow(Image.fromarray(X_))
    i+=1

plt.axis('off')
plt.show()

这里写图片描述

一文读懂特征值分解EVD与奇异值分解SVD 这篇关于特征值和特征向量的内容是我用PCA的时候接触到的,本科学的东西早就记不得了orz,所以复习了一遍顺便做了一下梳理,这算是PCA的前置知识。 特征值分解 特征值与特征向量 设 AAA 是 nnn 阶矩阵, 如果数λ\lambdaλ 和 nnn 维非零列向量 xxx 使关系式 Ax=λxA x=\lambda xAx=λx成立,那么λ\lambdaλ 就称为矩阵 AAA 的特征值, xxx 称为AAA的对应于特征 值 λ\lambdaλ 的特征向量。 注意有两个要素:(1)AAA是方阵(2)xxx是非 阅读详情

相关推荐

特征向量、特征值分解、奇异值分解SVD

写在前面: 现有的印象是:特征向量代表向量最坚守的部分,方向不变,只是会伸缩。而特征分解是沿着最重要的特征向量方向上的分解,有SVD分解、PCA主城成分分析等。但无法深入讲下去了。 特征值和特征向量的几何意义 矩阵乘法其实是对应着一个线性变换,是把任意一个向量变成另一个方向或者长度的新向量。在这个变换中,原向量主要发生旋转、伸缩的变化。如果某个向量x在矩阵A作用下只发生了伸缩变化,其位置仍停...

try_again_later的博客 2302

奇异值分解

奇异值分解(SVD):可以将一个比较复杂的矩阵用更小更简单的几个子矩阵相乘来表示,这些小矩阵描述的是矩阵的重要特性。 特征值分解: 特征值:若向量V是方阵A的特征向量,则可以表示成 AV=λV AV = \lambda VAV=λV 这时候向量V是A的特征向量, λ \lambdaλ 则为特征值 特征值分解: A=QEQ−1 A = Q E Q^{-1} A=QEQ−1 Q是特征向量...

weixin_43734271的博客 462

矩阵论(三):矩阵分解—从Schur分解、特征值分解EVD到奇异值分解SVD(上)

本篇博客针对三种联系十分紧密的矩阵分解(Schur分解、特征值分解、奇异值分解)依次介绍,它们的关系是Schur→EVD→SVDSchur\rightarrow{}EVD\rightarrow{}SVDSchur→EVD→SVD,也就是说由Schur分解可以推导出EVD,再推导出SVD。推导所需基础线性代数知识(尤其是特征值方面的)请参考线性代数基础知识(上)以及线性代数基础知识(下)。 Sch...

niu_123ming的博客 3万+

矩阵的特征值与奇异值

矩阵的特征值与奇异值奇异值分解SVD分解 奇异值分解 对于nnn阶方阵A\bm{A}A来说,其特征值定义为: Ax=λx \bm{A}\bm{x}=\lambda\bm{x} Ax=λx 式中λ\lambdaλ为矩阵A\bm{A}A的特征值,x\bm{x}x为矩阵A\bm{A}A的特征矢量。如果我们求出了矩阵A\bm{A}A所有的特征值{λ1,λ2,⋯ ,λn}\{\lambda_1,\lambd...

weixin_43991178的博客 3230

SVD奇异值分解 可视化特征脸

1.      奇异值分解 给出一个l*n维的矩阵X ,它的秩为r.存在两个酉矩阵U和V,相应的维数分别为l*l和n*n,所以可以给出: 2.     基于SVD的低阶近似 如果在公式(3)求和时,使用少于r的项(r为X的秩),我们可以近似的得到X 从(6)可以看出只和特征值的大小有关,所以如果我们让特征值按照降序排列,然后给出K项,SVD就能得到最小的误差

smilebluesky的专栏 4305

使用奇异值分解(SVD)并随机选取特征值进行图像处理(附python源码)

目录1.前言2.准备3.奇异值分解(含源码)3.1过程3.2结果3.3奇异值分解对非正方形图片的处理实例4.参考资料 1.前言 因为python的特征值分解存在复数矩阵的情况,而后续步骤不能很好的兼容复数,于是采用了范围更广的奇异值分解(SVD)进行图像处理。并且在后续测试中选取了不同的特征值进行保留(并不一定是最大的特征值)。 2.准备 numpy 处理矩阵 学习:https://blog.youkuaiyun.com/a373595475/article/details/79580734 PIL 图像处理 imag

bruuuuuuuuno的博客 2239

矩阵的奇异值(Singular Values)

矩阵的奇异值(Singular Values)是奇异值分解(SVD)过程中得到的一组重要特征值。它们在许多应用中非常重要,如信号处理、数据压缩和统计学等。

幼儿园大哥~ 4859

手把手教你搞定Pattern Recognition期刊的LaTeX投稿(附完整模板下载与避坑指南)

本文详细指导如何在Pattern Recognition期刊上使用LaTeX进行投稿,包括模板下载、环境配置、核心排版规范及投稿材料准备。特别强调期刊对格式的严格要求,如数学符号、图像引用等细节,并提供实用技巧和避坑指南,帮助作者高效完成投稿流程。

weixin_30876945的博客 395

特征值和奇异值的关系

特征值分解和奇异值分解(SVD)在主成分分析(PCA)和机器学习领域都有广泛的应用。PCA的实现由两种方法,一种是特征值分解,另一种是奇异值分解,特征值分解和奇异值分解的目的是一样的,都是提取出一个矩阵最重要的特性。 特征值 线性代数中对特征值和特征向量的定义:设A是n阶方阵,如果存在 λ 和n维非零向量x,使 Ax=λxAx=λxAx=\lambda x,则 λ 称为方阵A的一个特征值...

Never-Giveup的博客 3万+

activiti(六):activiti7的数据表和字段的解释

介绍activiti7的数据表和各表字段的含义,对于学习activiti7工作流引擎的运行过程很有帮助!

no problem的博客 1万+

LPC546xx USB接口VBUS阈值设计:从原理到实践,解决冷启动与可靠性问题

在嵌入式USB接口设计中,VBUS信号不仅是电源线,更是设备连接检测与电源管理的核心。其电压阈值直接决定了USB物理层(PHY)能否正确识别主机并建立有效会话。理解VBUS的会话有效电压(Votg_sess_valid)与PHY有效电压(VBUS_valid)等关键参数,是确保接口稳定性的基础。这些参数影响着设备枚举的成功率、通信稳定性以及长期可靠性。在工程实践中,尤其是对于集成PHY的微控制器如NPC LPC546xx系列,VBUS的连接方案(直接连接或通过稳压器)需要根据设备供电模式(自供电/总线供电)

weixin_30915275的博客 401

矩阵分解之: 特征值分解(EVD)、奇异值分解(SVD)、SVD++

目录: 1.矩阵分解 1.1 矩阵分解的产生原因 1.2矩阵分解作用 1.3矩阵分解的方法 1.4推荐学习的经典矩阵分解算法 2. 特征值分解(EVD) 3. 奇异值分解(SVD) 4.SVD++ 5.SVD/SVD++在协同过滤中的应用 1. 矩阵分解 1.1 矩阵分解的产生原因 在介绍矩阵分解之前,先让我们明确下推荐系...

qfikh的博客 4万+

从零实现Unitree Go2的SLAM建图与导航:手把手集成slam_toolbox和nav2(附Rviz2可视化配置)

本文详细指导如何在Unitree Go2四足机器人上集成slam_toolbox和nav2,实现SLAM建图与导航功能。从ROS2环境配置、雷达数据处理到slam_toolbox参数优化,再到nav2路径规划与Rviz2可视化调试,提供完整解决方案。特别适合机器人开发者快速掌握ROS2导航栈在Unitree Go2上的应用实践。

weixin_33737134的博客 1232

特征值分解和奇异值分解(SVD)及含义

PCA的实现由两种方法,一种是特征值分解,另一种是奇异值分解,特征值分解和奇异值分解的目的是一样的,都是提取出一个矩阵最重要的特性。 特征值 线性代数中对特征值和特征向量的定义:设A是n阶方阵,如果存在 λ 和n维非零向量x,使Ax=λxAx=λx,则 λ 称为方阵A的一个特征值,x为方阵A对应于或属于特征值 λ 的一个特征向量。从定义可以看出,对特征向量x进行A变换的实质是将特征向量进行缩放,缩放因子为特征值λ。因此,特征向量的代数上含义是:将矩阵乘法转换为数乘操作;特征向量的几何含义是:特征向量通.

工大机器人工作室 2547

微信小程序 - 最新详细实现用户保存下载视频到手机相册,将视频临时路径、在线播放地址(网络路径)URL存储到手机,弹出访问手机相册权限询问,支持视频格式mp4、avi、mov、wmv、flv、webm

微信小程序,视频,手机相册,保存,另存为,小程序保存到相册权限,writePhotosAlbum,一键保存视频到手机相册功能(视频来源为链接),第一次要获取用户授权,授权使用相册权限,小程序视频下载,如何把视频下载到相册,下载一个视频到本地相册,显示下载进度,可取消下载,视频下载到本地,微信小程序视频如何下载,保存视频到相机,页面播放视频并下载到本地,安卓系统,苹果ios保存到相册报错,权限拒绝后打不开,添加相册授权弹框拒绝后再也出不来了,实现保存视频到手机相册功能,将mp4在线视频下载并存储到用户的手机中

🏆 前端领域优质创作者 7625

双目相机标定理论与编程实现

双目相机标定是计算机视觉中的重要任务,通过确定双目相机的内参和外参,可以实现立体视觉的深度感知和三维重建。通过使用OpenCV库提供的函数,我们可以方便地进行双目相机的标定工作。双目相机标定是计算机视觉中的重要任务,用于确定双目相机的内参和外参,以实现立体视觉的深度感知和三维重建。通过上述代码,我们可以获得左右相机的内参矩阵、畸变系数、旋转矩阵和平移矩阵等参数,从而完成双目相机的标定过程。使用双目相机采集一系列左右相机的图像,确保标定板在不同位置和角度下都能被双目相机拍摄到。函数来检测标定板的角点。

ByteKnight的博客 325

【Matlab】特征值分解eig和奇异值分解svd

前言:当A是方阵时,使用eig特征值分解和实验svd奇异值分解,有什么异同? (1)特征值分解:函数eig 格式:[V,D] = eig(A)%计算A的特征值对角阵D和特征向量V,使AV=VD成立。 注意:特征值分解时,使用eig,矩阵A必须是方阵。 A = [0 1;1 1]; [V,D] = eig(A) V = -0.8507 0.5257 0.5257 0.8507 D = -0.6180 0 0 ...

baidu_37973494的博客 5821

产品缺陷检测:表面缺陷检测_(1).产品缺陷检测基础理论

确定像素之间的相似性准则,如灰度值的差异。

zhubeibei168的博客 832

对矩阵特征值分解和SVD奇异值分解的理解

矩阵分解是非常常见的操作矩阵方式。尤其是在推荐系统里,我们往往会有一个用户-物品矩阵,这个矩阵非常大,比如100w个用户*1000w个物品矩阵,这个时候我们可以通过矩阵分解一方面降低矩阵的维度,另一方面提取用户和物品各自的信息。 举个例子,对于100w*1000w的用户-物品矩阵,我们可以得到100w*10的用户矩阵和10*1000w物品矩阵。这样子其中的10维向量就是我们提取的主要特征。一般来说我们会把矩阵先分成三块再得到其中的这两块,具体原因看完这两种分解方式就懂了~ 下面没有涉及公式推...

TranSad的博客 1898

本地搭建 GitLab 14.1.0版本CI/CD

GitLab 镜像版本 gitlab/gitlab-ce:14.1.0-ce.0 GitLab Runner 镜像版本 gitlab/gitlab-runner:v14.1.0 搭建此套环境是在一台32G的windows电脑上安装的。 使用dokcer安装。 此外还涉及的软件Docker Desktop,WSL 安装GitLab 首先启动 dockcer,打开WSL 打开后 首先定义GitLab的持久化目录 export GITLAB_HOME=/srv/gitlab 然后运行安装GitLab的命令

知无涯 4491

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

svd奇异值分解_特征值分解,奇异值分解(SVD)

奇异值分解(Singular Value Decomposition,以下简称SVD)是在优化等领域广泛应用的一种矩阵算法,因为近期多次使用到SVD分解。本文章对SVD做一个笔记,纯粹是笔记。本文参考于文章(https://zhuanlan.zhihu.com/p/29846048)。1. 特征值和特征向量关于特征值和特征向量 左侧A矩阵为 的矩阵,其中 为 维的向量,即为特征向量右侧 为...

weixin_39639260的博客 203

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

矩阵分析之 实矩阵分解(1)特征分解与奇异值分解SVD

矩阵分析之 实矩阵分解(1)特征分解与奇异值分解前言特征分解(又称谱分解、对角化)奇异值分解SVDSVD的进一步理解 前言 本篇开始学习记录矩阵分解内容。需要说明的是,目前我所触及的矩阵基本上没有出现复数域,因此所做的讨论都局限于实矩阵分析。 特征分解(又称谱分解、对角化) 当n阶方阵AAA具有n个线性无关的特征向量时,可以将AAA特征分解为可逆矩阵与对角矩阵的乘积: A=PΛP−1 A=P\Lambda P^{-1} A=PΛP−1 其中,PPP是对应于Λ\LambdaΛ主对角特征值的特征向量组。特征分解

qq_41035283的博客 2605

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

矩阵特征值分解(EVD)和奇异值分解(SVD)总结

1. 特征值分解(EVD) 实对称矩阵 在理角奇异值分解之前,需要先回顾一下特征值分解,如果矩阵 AAA 是一个 m×mm \times mm×m 的实对称矩阵(即 A=ATA = A^TA=AT),那么它可以被分解成如下的形式 A=QΣQT=Q[λ1…………λ2…………⋱…………λm]QT A = Q \Sigma Q^T = Q{ \left[ \begin{array}{ccc} \lambda_1 & \ldots & \ldots & \ldots \\ \ldots &a

u010307048的博客 3230

特征值_特征值分解,奇异值分解(SVD)

奇异值分解(Singular Value Decomposition,以下简称SVD)是在优化等领域广泛应用的一种矩阵算法,因为近期多次使用到SVD分解。本文章对SVD做一个笔记,纯粹是笔记。本文参考于文章(https://zhuanlan.zhihu.com/p/29846048)。1. 特征值和特征向量关于特征值和特征向量 左侧A矩阵为 的矩阵,其中 为 维的向量,即为特征向量右侧 为...

weixin_29442195的博客 433

day20 python 特征降维与奇异值分解(SVD)

文章主要介绍了如何解决VSCode中Markdown单元格无法渲染LaTeX公式的问题,并详细讲解了特征降维中的非特征筛选方法,特别是奇异值分解(SVD)的应用。首先,建议安装Markdown All in One插件来解决LaTeX渲染问题。随后,文章回顾了线性代数中的特征值分解及其在考研中的应用,通过具体例题展示了如何计算矩阵的特征值和特征向量,并进一步解释了矩阵对角化的过程。接着,文章探讨了SVD的数学原理及其在数据降维、图像压缩和推荐系统中的实际应用,强调了SVD在提取数据主要特征和去除噪声中的重要

weixin_54274596的博客 927
上一篇: 主成分分析(PCA)的数学原理与应用
下一篇: VSCode+LiveServer搭建Web前端开发环境
danielxxxxx
博客等级 码龄19年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值