机器学习 - SVD分解算法的物理意义

奇异值分解(SVD)是机器学习中的一种重要算法,常用于数据压缩和降维。SVD将矩阵分解为旋转、伸缩和再旋转的组合,其中奇异值矩阵Σ的对角元素代表了变化的程度,大的奇异值对应更重要的特征。在图像处理中,较大的奇异值能更好地捕捉图像的主要结构,因此在图像压缩时,仅保留前几个奇异值即可重构图像,实现高效的数据表示。此外,SVD在推荐系统、PCA、异常检测等领域也有广泛应用。

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

机器学习-SVD分解算法的物理意义

奇异值分解(Singular Value Decomposition),以下简称SVD。

奇异值分解算法是一种在机器学习中经常使用到的一个算法,SVD主要用于数据压缩和数据降维,在图像压缩、推荐系统有着极其重要的作用,

本文将着重理解SVD分解算法的物理意义以及我们将用Python代码将这个过程可视化,数学推导将不是本文的重点,将在它文展示。

一.SVD分解介绍

任何一个形状的矩阵(图像)都可以转化从先旋转、再延伸、再旋转的形式。

svd1

公式如下

svd2

SVD分解就是将一个矩阵转变为这三个矩阵的表达形式,同时,这三个矩阵分别代表一个旋转、一个伸缩、一个旋转。

img

为什么呢?

提出问题就解决了一半的问题。为什么一个矩阵可以转变为一个旋转矩阵、一个伸缩矩阵、一个旋转矩阵相乘呢?

让我们来看一个简单的例子

img1
img2

Unit circle 要怎么转换才能转换成为下图中的A的形式呢?(这里要注意点的颜色!)

首先,我们先让Unit circle逆时针旋转135度。

img3

再让旋转后的图像在x轴上伸长6.70820393249937倍(为什么是这个倍数,先不用纠结,这是奇异值分解以后的一个奇异值数),在y轴上伸长2.2360679774997894倍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4t8jcxUO-1652606694313)(https://s1.328888.xyz/2022/05/15/qmJhX.png)]

然后我们再让图像旋转一次,即可得到和A同等的一个图像. U sigma Vt

img10

这样,原图到A的过程就可以转变为将原图先进行一个旋转、再进行一个伸缩、再进行一个旋转。

我们知道,任何的图像的变化都可以用线性代数里的一个矩阵来表示。

实际上,从原图到A的一个变换矩阵就是

A=∣3045∣ A = \left|\begin{matrix} 3 & 0 \\ 4 & 5 \end{matrix} \right| A=3405

我们将其拆解以后,第一个转换图像对应的旋转是逆时针旋转135度,我们可以将第一个旋转用矩阵表示为

V=∣−0.71−0.71−0.710.71∣ V=\left|\begin{matrix} -0.71 & -0.71 \\ -0.71 & 0.71 \end{matrix} \right| V=0.710.710.710.71

然后进行左乘一个伸缩矩阵(注意里面的数字和上面那个伸缩大小之间)

Σ=∣6.71002.24∣ \Sigma = \left|\begin{matrix} 6.71 & 0 \\ 0 & 2.24 \end{matrix} \right| Σ=6.71002.24

然后最后再左乘一个旋转矩阵

U=∣−0.32−0.95−0.950.32∣ U = \left|\begin{matrix} -0.32 & -0.95 \\ -0.95 & 0.32 \end{matrix} \right| U=0.320.95

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值