• 奇异值分解(SVD)


    0 - 特征值分解(EVD)

    奇异值分解之前需要用到特征值分解,回顾一下特征值分解。

    假设$A_{m imes m}$是一个是对称矩阵($A=A^T$),则可以被分解为如下形式,

    $$A_{m imes m}=Q_{m imes m}Sigma_{m imes m} Q_{m imes m}^T=Q_{m imes m}egin{bmatrix}lambda_1 & 0 & 0 & 0 \ 0 & lambda_2 & 0 & 0 \ 0 & 0 & ddots & 0 \0 & 0 & 0 & lambda_m end{bmatrix}Q_{m imes m}^T,$$

    其中$Q_{m imes m}$为标准正交矩阵,即$Q_{m imes m}Q_{m imes m}^T=I_{m imes m}$,$Sigma_{m imes m}$为对角矩阵,$lambda_i$为特征值。

    注意到,特征值分解要求被分解的矩阵必须是实对称矩阵!

    1 - 奇异值分解(SVD)

    由于现实遇到的问题中的矩阵很难保证是实对称矩阵,奇异值分解便可以处理更加广泛的矩阵。

    1.0 - 定义

    对于实数矩阵$A_{m imes n}$,可以将其分解为如下形式,

    $$A_{m imes n}=U_{m imes m}Sigma_{m imes n} V_{n imes n}^T=U_{m imes m}egin{bmatrix}sigma_1 & 0 & 0 & 0 \ 0 & sigma_2 & 0 & 0 \ 0 & 0 & ddots & 0 \ 0 & 0 & 0 & ddots end{bmatrix}_{m imes n}V_{n imes n}^T,$$

    其中$U_{m imes m}$和$V_{n imes n}$分别为左奇异矩阵和右奇异矩阵,且均为标准正交矩阵($U_{m imes m}U_{m imes m}^T=I_{m imes m}$和$V_{n imes n}V_{n imes n}^T=I_{n imes n}$),$sigma_i$称为奇异值,$Q$(特征矩阵)中的每一列$q_i$为$sigma_i$对应的特征向量。

    1.1 - 求解

    注意到,有如下性质,

    $$AA^T=USigma V^TVSigma^T U^T&=USigmaSigma^T U^T=Uegin{bmatrix}sigma_1^2 & 0 & 0 & 0\ 0 & sigma_2^2 & 0 & 0\ 0 & 0 & ddots & 0\ 0 & 0 & 0 & ddotsend{bmatrix}_{m imes m}U^T,$$

    $$A^TA=VSigma^T U^TUSigma V^T=VSigma^TSigma V^T=Vegin{bmatrix}sigma_1^2 & 0 & 0 & 0\ 0 & sigma_2^2 & 0 & 0\ 0 & 0 & ddots & 0\ 0 & 0 & 0 & ddotsend{bmatrix}_{n imes n}V^T,$$

    其中,$AA^T$和$A^TA$均为实对称矩阵,由上述两式可得,$SigmaSigma^T$和$Sigma^TSigma$分别为$AA^T$和$A^TA$经过矩阵分解之后的特征值矩阵,因此对特征值矩阵开方即可得到奇异值矩阵。

    1.2 - 实践

    SVD的奇异值表示了分解对象中的重要特征,因此可以通过取分解之后的部分特征来重构图像。对于一张图分别选前10、50、100、200、300重要的奇异值之后再重构图像可视化效果如下。

     2 - 代码

    特征值分解(EVD)和奇异值分解(SVD)以及实践的python代码可见于我的github

    3 - 参考资料

    https://www.cnblogs.com/endlesscoding/p/10033527.html

    https://github.com/Chet1996/Notebooks/tree/master/SVD

  • 相关阅读:
    将数组格式的字符串转换成数组
    引号嵌套引起的问题
    如何使用for循环把对象push到数组中,且前面的值不会被覆盖
    如何把一个大的对象,转成若干个小对象,然后在放到数组中
    前端如何设置一天只能点击一次的以及如何去判断第二天0点刷新的一些问题
    let和const的理解以及let,const,var的区别
    watch监控和computed监控
    媒体查询
    react中redux+react-redux插件的应用
    react中控制div的位置移动动画
  • 原文地址:https://www.cnblogs.com/CZiFan/p/11707616.html
Copyright © 2020-2023  润新知