SVD

作者: Joker64 | 来源:发表于2019-11-27 17:09 被阅读0次

    摘要

    SVD (Singular Value Decomposition,奇异值分解)揭示了线性变换的本质,对一个矩阵进行奇异值的过程,就是将一个复杂的,难以直观理解的线性变换,分解为多步直观的变换的过程。矩阵的奇异值分解,可以与傅里叶变换类比。

    1 SVD的涵义

    我们已经知道矩阵A的奇异值分解形式如下
    A=U \Sigma V^T
    其中UV均为酉矩阵(正交矩阵在复数域的拓展,即U^T=U^{-1})。
    事实上,对于矩阵A的奇异值分解,将一个通用线性变换分解成为了“旋转\to 拉伸 \to 旋转”三个简单的变换,接下来将通过一个实例展示这个过程。
    \begin{aligned} A &= \begin{bmatrix} 1&-2\\ 1&2\\ \end{bmatrix} \\ &=\begin{bmatrix} -0.707&-0.707\\ 0.707& -0.707\ \end{bmatrix} \begin{bmatrix} 2.828&0\\ 0& 1.414\ \end{bmatrix} \begin{bmatrix} 0&-1\\ 1& 0\ \end{bmatrix} \end{aligned}
    为了展示线性变换(矩阵A)的效果,我们以单位圆为载体。若\vec x_i表示单位圆上的任意一点,则对单位圆上的每一点进行运算:A \vec x_i,变换效果如下:

    单位圆线性变换效果
    线性变换分解
    奇异值分解流程
    由此可见,奇异值的大小在线性变换中的作用极为重要。在上述实例中,若奇异值,则经过拉伸变换之后的单位圆将接近一条直线,这条直线就是当时对应的线性变换结果。

    2 SVD的求解

    由于“实对称矩阵必定可以正交对角化”,则对于任意矩阵A的奇异值分解过程可按照下述流程进行。
    \begin{align} AA^T= U \Sigma^2 U^T \\ A^TA = V\Sigma^2V^T \end{align}

    A=U\Sigma V^T

    AV = U \Sigma

    \begin{align} &U = \begin{bmatrix} \vec u_1&\vec u_2 &\dots &\vec u_i \end{bmatrix} \\ &V = \begin{bmatrix} \vec v^T_1\\ \vec v^T \\ \vdots \\ \vec v^T_j \end{bmatrix} \\ &\Sigma = \begin{bmatrix} \sigma_1 & 0 & \dots\\ 0&\sigma_2 & \dots \\ \dots & \dots &\sigma_k \end{bmatrix} \end{align}
    其中\vec u_i \vec v_i均为列向量。
    则有
    \begin{align} &A\vec v_i=\sigma_i \vec u_i \end{align}

    3 SVD的应用

    • 图像压缩
    • PCA(Principal Component Analysis)
    • 线性超定方程组的最小二乘解

    相关文章

      网友评论

          本文标题:SVD

          本文链接:https://www.haomeiwen.com/subject/kexpwctx.html