降维方法之SVD

降维方法之SVD

|深度之眼笔记自总结|

| — |

|Author: 华逸聪|

文章目录

  • 降维方法之SVD
    • SVD相关数学基础
      • 矩阵对角化
    • 一般矩阵的SVD分解

SVD相关数学基础

矩阵对角化

方阵的对角化P^TAP=B其中A为对角矩阵,P为单位正交矩阵。

所以 P T P = P P T = I , P T = P − 1 P^TP=PP^T=I,P^T=P^{-1} PTP=PPT=I,PT=P1,一般矩阵一般不能但是对称矩阵一定能对角化,特别是对称正定矩阵,\lambda_i全是正数。

A T = A , X T A ≥ 0 , ∀ X 为 半 正 定 , > 0 为 正 定 A^T=A,X^TA \geq0,\forall{X}为半正定,>0为正定 AT=A,XTA0,X>0

因为PT=P{-1}
设 A = [ λ 1 ⋯ ⋯ ⋯ ⋯ λ 2 ⋯ ⋯ ⋯ ⋯ ⋱ … ⋯ ⋯ ⋯ λ n ] 设A= \begin{bmatrix}\lambda_1&\cdots&\cdots&\cdots \\ \cdots&\lambda_2&\cdots&\cdots\\ \cdots&\cdots&\ddots&\dots\\ \cdots&\cdots&\cdots&\lambda_n \end{bmatrix} A=λ1λ2λn
B = [ u 1 + u 2 + ⋯ + u n ] + [ λ 1 ⋯ ⋯ ⋯ ⋯ λ 2 ⋯ ⋯ ⋯ ⋯ ⋱ … ⋯ ⋯ ⋯ λ n ] + [ u 1 u 2 ⋮ u n ] B=[u_1+u_2+\cdots+u_n]+\begin{bmatrix}\lambda_1&\cdots&\cdots&\cdots \\ \cdots&\lambda_2&\cdots&\cdots\\ \cdots&\cdots&\ddots&\dots\\ \cdots&\cdots&\cdots&\lambda_n\\ \end{bmatrix}+ \begin{bmatrix}u_1\\ u_2\\ \vdots\\ u_n\end{bmatrix}\\ B=[u1+u2++un]+λ1λ2λn+u1u2un

B = λ 1 u 1 u 1 T + λ 2 u 2 u 2 T + ⋯ + λ n u n u n T B=\lambda_1u_1u_1^T+\lambda_2u_2u_2^T+\cdots+\lambda_nu_nu_n^T B=λ1u1u1T+λ2u2u2T++λnununT

原来B需要n^2个参数,分解成只要n个数

面试题:矩阵压缩表示最小n+1,只保留以上的第一项

一般矩阵的SVD分解

( A T A ) n ∗ n = U T D 1 V (A^TA)_{n*n}=U^TD_1V (ATA)nn=UTD1V

( A A T ) m ∗ n = U T D 2 V (AA^T)_{m*n}=U^TD_2V (AAT)mn=UTD2V

可得:

A = V T [ λ 1 ⋯ ⋯ ⋯ ⋯ λ 2 ⋯ ⋯ ⋯ ⋯ ⋱ … ⋯ ⋯ ⋯ ⋯ ] V A=V^T\begin{bmatrix}\lambda_1&\cdots&\cdots&\cdots \\ \cdots&\lambda_2&\cdots&\cdots\\ \cdots&\cdots&\ddots&\dots\\ \cdots&\cdots&\cdots&\cdots \end{bmatrix}V A=VTλ1λ2V

V T = ( v 1 v 2 , … , v n ) , U T = ( u 1 , u 2 , … , u n ) , A = λ 1 1 2 v 1 u 1 T + λ 2 1 2 u 2 v 2 T + ⋯ V^T=(v_1v_2,\dots,v_n),U^T=(u_1,u_2,\dots,u_n),A=\lambda_1\frac{1}{2}v_1u_1^T+\lambda_2\frac{1}{2}u_2v_2^T+\cdots VT=(v1v2,,vn),UT=(u1,u2,,un),A=λ121v1u1T+λ221u2v2T+

所以图形的压缩最小需要m+n+1个,当存储量为(m+n+1)个*k时,误差为
e r r o r = 1 − ∑ i = 1 n λ i ∑ i = 1 m i n ( m , n ) λ i error=1-\frac{\sum_{i=1}^{n}\lambda_i}{\sum_{i=1}^{min(m,n)}\lambda_i} error=1i=1min(m,n)λii=1nλi

你可能感兴趣的:(线性代数,机器学习)