算法学习之SVD理论推导

SVD理论简介:  老铁,欢迎赶上二路公交车。让我们畅游一下SVD算法的理论推导与应用。奇异值分解(Singular Value Decomposition, SVD)是更为通用化的矩阵分解方式,与特征分解不(矩阵必须为方阵)同,SVD并不要求矩阵为方阵。这样SVD可以应用在图像压缩、去噪、降维、推荐系统等领域。下面就进行简单介绍SVD算法的计算步骤与实例操作。SVD求解步骤:  假设我们需...
摘要由CSDN通过智能技术生成
SVD理论简介:

  老铁,欢迎赶上二路公交车。让我们畅游一下SVD算法的理论推导与应用。奇异值分解(Singular Value Decomposition, SVD)是更为通用化的矩阵分解方式,与特征分解不(矩阵必须为方阵)同,SVD并不要求矩阵为方阵。这样SVD可以应用在图像压缩、去噪、降维、推荐系统等领域。下面就进行简单介绍SVD算法的计算步骤与实例操作。

SVD求解步骤:

  假设我们需要对矩阵 A A A进行SVD分解操作,已知矩阵 A A A是一个 m × n m×n m×n的矩阵,其中m与n可以相等(特征分解)也可以不等(绝大多数情况不相等)。那么定义矩阵 A A A的SVD分解公式如下:
(1) A = U ∗ ∑ ∗ V T A=U*\sum{}*V^{T}\tag{1} A=UVT(1)

参数解释:

   U U U是一个 m × m m×m m×m的矩阵, ∑ ∑ 是一个 m × n m×n m×n的对角矩阵(即:除了对角线上的元素意外全为0,对角线上的每个元素都为奇异值), V V V是一个 n × n n×n n×n的矩阵。 U U U V V V都是酉矩阵,即满足 U T U = E U^T U=E UTU=E V T V = E V^T V=E VTV=E,其中 E E E为单位矩阵。

那么,SVD的求解就是求出公式等号右边矩阵 U U U ∑ ∑ V T V^T VT这三个矩阵?

下面我们就来求解上述的 U U U ∑ ∑ V T V^T VT三个矩阵步骤如下:

S t e p 1 Step1 Step1: 我们首先使用矩阵 A A A乘以 A T A^T AT( A A A的转置矩阵),那么会得到一个 m × m m×m m×m的方阵 A A T AA^T AAT。我们对方阵 A A T AA^T AAT进行特征分解,那么得到特征值与特征向量满足下式:

( A A T ) u i = α i u i (AA^{T})u_i=α_i u_i (AAT)ui=αiui

  其中, α i α_i αi为方阵 A A T AA^T AAT的特征值, u i u_i ui为对应的特征向量。

  我们知道方阵 A A T AA^T AAT m × m m×m m×m,那么特征分解后有 m m m个特征值,同时对应 m m m个特征向量 u i u_i ui。将 m m m个特征向量 u i u_i ui组成一个 m × m m×m m×m的矩阵 U U U,就是我们需要求解的公式1的矩阵 U U U

S t e p 2 Step2 Step2: 使用矩阵 A T A^{T} AT( A A A的转置)乘以 A A A,那么会得到一个 n × n n×n n×n的方阵 A T A A^{T}A ATA。我们对方阵 A T A A^{T}A ATA进行特征分解,那么得到特征值与特征向量满足下式:

( A T A ) v i = β i v i (A^{T}A)v_i=β_i v_i (ATA)vi=βivi

  其中, β i β_i βi为方阵 A T A A^{T}A ATA的特征值, v i v_i vi为对应的特征向量。

  方阵 A T A A^T A ATA n × n n×n n×n,那么特征分解后有 n n n个特征值,同时对应 n n n个特征向量 v i v_i vi,将 n n n个特征向量 v i v_i vi组成一个 n × n n×n n×n的矩阵 V V V,将矩阵 V V V转置操作后就是我们需要求解公式1的矩阵 V T V^T VT

S t e p 3 Step3 Step3: 接下来是要求解出中间的对角矩阵 ∑ ∑ ,我们知道 ∑ ∑ 除了对角线上以外都是0,所以我们只需要求解对角线上的奇异值就可以。

∑ = [ σ 0 0 0 . . . 0 0 0 0 σ 1 0 . . . 0 0 0 0 0 σ 2 . . . 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 . 0 0 0 0 . . . 0 0 σ m ] ∑= \left[ \begin{matrix} σ_{0} & 0 & 0 & ... & 0 & 0 & 0 \\ 0 & σ_{1} & 0 &... & 0 & 0 & 0 \\ 0 & 0 & σ_{2} & ... & 0 & 0 & 0 \\ 0 & 0 & 0 & . & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & . & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & . & 0 \\ 0 & 0 & 0 & ... & 0 & 0 & σ_{m} \end{matrix} \right] =σ00000000σ10000000σ20000

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值