线性代数|机器学习-P18快速下降奇异值

发布于:2024-06-24 ⋅ 阅读:(45) ⋅ 点赞:(0)

1. 为什么要低秩矩阵

我们的世界里面有很多数据,如果我们原封不动的发送数据,那么会导致数据量的增大,我们希望对数据进行压缩后再打包压缩,这样的话我们能够在带宽一定的情况下发送更多的数据,举例,假设我们有一个矩阵X,我们可以经过SVD奇异值分解得到如下:

  • 假设矩阵 n × n n\times n n×n 矩阵的秩为k
    X = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ k u k v k T + σ k + 1 u k + 1 v k + 1 T + ⋯ + σ n u n v n T \begin{equation} X=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_ku_kv_k^T+\sigma_{k+1}u_{k+1}v_{k+1}^T+\cdots+\sigma_nu_nv_n^T\end{equation} X=σ1u1v1T+σ2u2v2T++σkukvkT+σk+1uk+1vk+1T++σnunvnT
  • 我们知道矩阵X的奇异值关系如下:
    σ 1 ≥ σ 2 ≥ ⋯ ≥ σ k ≥ σ k + 1 ≥ ⋯ ≥ σ n \begin{equation} \sigma_1\ge\sigma_2\ge\cdots\ge\sigma_k\ge\sigma_{k+1}\ge\cdots\ge\sigma_{n} \end{equation} σ1σ2σkσk+1σn
  • 如果矩阵X的秩为k,那么可得:
    σ k + 1 = ⋯ = σ n = 0 \begin{equation} \sigma_{k+1}=\cdots=\sigma_{n}=0 \end{equation} σk+1==σn=0
  • 在没有低秩压缩的情况下,我们发送数据大小 S 1 S_1 S1为,直接长=n宽=n相乘
    S 1 = n ∗ n = n 2 \begin{equation} S_1=n*n=n^2 \end{equation} S1=nn=n2
  • SVD奇异值分解后可得:
    X = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ k u k v k T \begin{equation} X=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_ku_kv_k^T \end{equation} X=σ1u1v1T+σ2u2v2T++σkukvkT
  • 在低秩压缩的后下,我们发送数据大小 S 2 S_2 S2为,其中每个
    S 2 = ( n + n ) ∗ k = 2 n k \begin{equation} S_2=(n+n)*k=2nk \end{equation} S2=(n+n)k=2nk
    在这里插入图片描述

网站公告

今日签到

点亮在社区的每一天
去签到