降维方法之SVD
|深度之眼笔记自总结|
| — |
|Author: 华逸聪|
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=P−1,一般矩阵一般不能但是对称矩阵一定能对角化,特别是对称正定矩阵,\lambda_i全是正数。
即 A T = A , X T A ≥ 0 , ∀ X 为 半 正 定 , > 0 为 正 定 A^T=A,X^TA \geq0,\forall{X}为半正定,>0为正定 AT=A,XTA≥0,∀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⎦⎥⎥⎤+⎣⎢⎢⎢⎡u1u2⋮un⎦⎥⎥⎥⎤
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)n∗n=UTD1V
( A A T ) m ∗ n = U T D 2 V (AA^T)_{m*n}=U^TD_2V (AAT)m∗n=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⋯⋯⋯⋯λ2⋯⋯⋯⋯⋱⋯⋯⋯…⋯⎦⎥⎥⎤V
令 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=1−∑i=1min(m,n)λi∑i=1nλi