6. 矩阵SVD分解

本文介绍了矩阵SVD(奇异值分解)的概念、形式以及与特征值分解EVD的关系。通过数学解析阐述了SVD的本质,展示了如何进行SVD分解,并指出其在数据降维、特征提取和推荐算法等领域的应用。

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

6. 矩阵SVD分解


  矩阵的SVD(Singular Value Decomposition)分解是矩阵当中的一种重要分解,具有广泛应用。比如说进行数据降维,特征提取,特别是用于图像的压缩。在线性代数里面似乎很少讲到矩阵的奇异值分解,这里单纯从数学原理角度解释一下SVD分解,可能会涉及到一些应用场景。


1 SVD分解的形式

  矩阵 Mmn 存在分解: Mmn=UmmΣmnVTnn ,其中 UV 是正交阵, Σ 是对角矩阵。


2 特征值分解EVD

  在进行矩阵的奇异值分解之前,首先来看一下矩阵的特征值分解EVD(Eigen Value Decomposition)。这两者有着很紧密的关系。

  • 特征值分解需要将矩阵分解成这样的形式:

    Amm=UmmΛmmU1mm=UmmΛmmUTmm

    其中, A mm的满秩对称矩阵, U 为正交阵,Λ是由 A 的特征值组成的对角阵。

  • 证明:
    假设矩阵A的m个特征值分别为 λi ,对应的特征向量分别为 xi ,那么:

    Ax1=λ1x1Ax2=λ2x2...Axm=λmxm

    于是:

    AU=UΛ

    其中, U=[x1x2...xm] Λ=[λ10  0 λm ]

    于是:

    A=UΛU1


3 奇异值分解SVD

  SVD分解的本质:寻找到一组正交基,经过矩阵 Amn 变换之后任然是正交基。

  • 假设我们现在已经找到这样的一组基,譬如: {v1,v2,..,vn}

    • 经过矩阵A映射成为: {Av1,Av2,..,Avn}
    • 因为结果仍然为正交基: AviAvj=vTiATAvj=0
    • 并且 vivj=0
  • 因此这里的 vi 我们选择是对称阵 ATA 的特征向量,所以 vi 两两正交。并且:

    AviAvj=vTiATAvj=vTiλjvj=λjvTivj=0


  到这里,我们已经找到了一组正交基,经过矩阵A变换之后仍然为正交基。接下来进行SVD分解。

  • SVD分解:
    • AviAvi=λivivi=λi
    • 单位向量: ui=Avi|Avi|=1λiAvi
    • 所以: Avi=σiui σi=λi 称为奇异值。 0ik=rank(A)
    • 由线性代数的基本知识:可以将 {u1,u2,..,uk} 扩展到 Rm 空间中的单位正交基 {u1,u2,..,um}
    • 选取 {vk+1,..,vn} 满足 Avi=0σi=0k+1in
    • 于是:
      A[v1,..,vk|vk+1,..,vn]=[u1,..,uk|uk+1,..,un]σ1000σk00
    • 结果: A=UΣVT

4 应用场景

  简单说一个应用:推荐算法。这个事情我们平常也一直可以接触到,比如说上淘宝买东西,他会根据你以前买过的东西或者别人买的东西来给你做推荐,再比如说网易云音乐每天早上6点钟给你推荐你可能喜欢的歌。(我个人觉得网易云音乐这个推荐做的还是不错的),据说它刚开始主打的就是一些小众音乐的个性推荐。推荐算法当中数据的采集是十分稀疏的,比如说有100个用户,1000种商品,那么这个矩阵就有100000个元素,而每个人都可能只买过大概10种商品,那么矩阵当中非零的元素只有1000个,大部分的元素都是0。冗余情况很严重。所以这个时候通过矩阵的分解,可以做到对数据进行压缩。
  很久之前有一个推荐算法的比赛Netflix,当时主办发宣称有选手可以在他们的算法基础上提高10%的精度可以拿走100万美元的奖金。据说当时的冠军就用到了矩阵的SVD分解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值