文章目录
- 1. 奇异值分解
- 1.1 SVD求解
- 1.2 行基和列基转换
- 2. Ax图像表示
- 3. 极坐标表示
- 4. 小结
1. 奇异值分解
现在我们用的是一个m行n列的矩阵A,那么我们计算下特征值方程:
A
m
×
n
x
n
×
1
=
λ
x
n
×
1
;
b
m
×
1
=
A
m
×
n
x
n
×
1
\begin{equation} A_{m\times n}x_{n\times 1}=\lambda x_{n\times 1};b_{m\times 1}=A_{m\times n}x_{n\times 1} \end{equation}
Am×nxn×1=λxn×1;bm×1=Am×nxn×1
- 当
m
≠
n
m\neq n
m=n时,
b
m
×
1
≠
λ
x
n
×
1
b_{m\times 1}\neq \lambda x_{n\times 1}
bm×1=λxn×1,所以当A为长方形矩阵的时候,由于向量大小的原因,我们无法使用
A
x
=
λ
x
Ax=\lambda x
Ax=λx公式,为了解决如下问题,我们引入奇异值分解SVD。
A m × n = U m × m Σ m × n V n × n T , U U T = I m × m , V V T = I n × n \begin{equation} A_{m\times n}=U_{m\times m}\Sigma_{m\times n}V^T_{n\times n},UU^T=I_{m\times m},VV^T=I_{n\times n} \end{equation} Am×n=Um×mΣm×nVn×nT,UUT=Im×m,VVT=In×n
1.1 SVD求解
假设我们有任意矩阵A,可以得到SVD分解,
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT,那么我们可以构造对称矩阵进行求解;
U
U
T
=
I
,
V
V
T
=
I
UU^T=I,VV^T=I
UUT=I,VVT=I
A
A
T
=
U
Σ
V
T
V
Σ
T
U
T
=
U
(
Σ
Σ
T
)
U
T
\begin{equation} AA^T=U\Sigma V^TV\Sigma^TU^T=U(\Sigma\Sigma^T)U^T \end{equation}
AAT=UΣVTVΣTUT=U(ΣΣT)UT
- 我们可以把
A
A
T
AA^T
AAT看作是矩阵A右乘一个矩阵
A
T
A^T
AT,所以可以得到
A
A
T
AA^T
AAT为矩阵A的列向量的线性组合,所以得到的U肯定在A的列向量空间中。这样可以得到
U
,
Σ
U,\Sigma
U,Σ
A T A = V Σ T U T U Σ V T = V ( Σ T Σ ) V T \begin{equation} A^TA=V\Sigma^TU^TU\Sigma V^T=V(\Sigma^T\Sigma) V^T \end{equation} ATA=VΣTUTUΣVT=V(ΣTΣ)VT - 我们可以把 A T A A^TA ATA看作是矩阵A左乘一个矩阵 A T A^T AT,所以可以得到 A T A A^TA ATA为矩阵A的行向量的线性组合,所以得到的V肯定在A的行向量空间中。这样可以得到 V , Σ V,\Sigma V,Σ
- 最后我们通过验证
A
v
=
σ
u
Av=\sigma u
Av=σu来验证
σ
\sigma
σ 的符号。
-奇异值SVD分解后矩阵向量分布情况如图:
- 我们发现,对于矩阵A的分解来说,有部分向量
u
r
+
1
⋯
u
m
u_{r+1}\cdots u_m
ur+1⋯um对于与
σ
r
+
1
=
⋯
=
σ
n
=
0
\sigma_{r+1}=\cdots=\sigma_n=0
σr+1=⋯=σn=0,所以这部分的向量其实是
N
(
A
T
)
N(A^T)
N(AT)零空间向量,所以我们希望更一步进行压缩矩阵,我们本身希望用非零的特征值,具体公式如下:
A v 1 = σ 1 u 1 , A v 2 = σ 2 u 2 , ⋯ A v r = σ r u r \begin{equation} Av_1=\sigma_1 u_1,Av_2=\sigma_2 u_2,\cdots Av_r=\sigma_r u_r \end{equation} Av1=σ1u1,Av2=σ2u2,⋯Avr=σrur - 整理可得如下:
A [ v 1 v 2 ⋯ v r r o w − s p a c e ] = [ u 1 u 2 ⋯ u r c o l u m n − s p a c e ] [ σ 1 σ 2 ⋱ σ r ] → A V r = U r Σ r \begin{equation} A\begin{bmatrix}v_1&v_2&\cdots&v_r\\\\&row-space\end{bmatrix}=\begin{bmatrix}u_1&u_2&\cdots&u_r\\\\&column-space\end{bmatrix}\begin{bmatrix}\sigma_1&\\\\&\sigma_2\\\\&&\ddots\\\\&&&\sigma_r\end{bmatrix}\rightarrow AV_r=U_r\Sigma_r \end{equation} A v1v2row−space⋯vr = u1u2column−space⋯ur σ1σ2⋱σr →AVr=UrΣr
1.2 行基和列基转换
- 这样
A
V
r
=
U
r
Σ
r
AV_r=U_r\Sigma_r
AVr=UrΣr中的均无零向量和零值了。真神奇的想法!!那么行空间的基向量通过上面公式就可以映射到列空间的基向量上,具体如图所示 :
- 证明当
v
1
⊥
v
2
v_1\perp v_2
v1⊥v2,经过
A
v
=
σ
u
Av=\sigma u
Av=σu时,
u
1
⊥
u
2
u_1\perp u_2
u1⊥u2
u 1 = A v 1 σ 1 , u 2 = A v 2 σ 2 , u 1 T u 2 = ( A v 1 σ 1 ) T A v 2 σ 2 = v 1 T A T A v 2 σ 1 σ 2 \begin{equation} u_1=\frac{Av_1}{\sigma_1},u_2=\frac{Av_2}{\sigma_2},u_1^Tu_2=(\frac{Av_1}{\sigma_1})^T\frac{Av_2}{\sigma_2}=\frac{v_1^TA^TAv_2}{\sigma_1\sigma_2} \end{equation} u1=σ1Av1,u2=σ2Av2,u1Tu2=(σ1Av1)Tσ2Av2=σ1σ2v1TATAv2 - 我们之前得到如下结论
A
T
A
v
2
=
v
2
σ
2
2
A^TAv_2=v_2\sigma_2^2
ATAv2=v2σ22,代入可得:
u 1 T u 2 = v 1 T A T A v 2 σ 1 σ 2 = v 1 T σ 2 2 v 2 σ 1 σ 2 = σ 2 v 1 T v 2 σ 1 = 0 → u 1 ⊥ u 2 \begin{equation} u_1^Tu_2=\frac{v_1^TA^TAv_2}{\sigma_1\sigma_2}=\frac{v_1^T\sigma^2_2v_2}{\sigma_1\sigma_2}=\frac{\sigma_2v_1^Tv_2}{\sigma_1}=0\rightarrow u_1\perp u_2 \end{equation} u1Tu2=σ1σ2v1TATAv2=σ1σ2v1Tσ22v2=σ1σ2v1Tv2=0→u1⊥u2
2. Ax图像表示
假设我们有一个矩阵A,进行分解后得到
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT,那么可得:
A
x
=
U
Σ
V
T
x
\begin{equation} Ax=U\Sigma V^Tx \end{equation}
Ax=UΣVTx
- step1: V T x V^Tx VTx将图像旋转
- step2: Σ V T x \Sigma V^Tx ΣVTx将图像沿轴拉伸
- step3: U Σ V T x U\Sigma V^Tx UΣVTx将图像旋转
- 小结,Ax的本质是将向量的基进行旋转,拉伸,旋转作用
3. 极坐标表示
我们希望将任意一个矩阵A分解为一个对称矩阵S和正交矩阵Q的形式,可以进行如下变形:
A
=
U
Σ
V
T
=
(
U
Σ
U
T
)
(
U
V
T
)
,
S
=
U
Σ
U
T
,
Q
=
U
V
T
\begin{equation} A=U\Sigma V^T=(U\Sigma U^T) (UV^T),S=U\Sigma U^T,Q=UV^T \end{equation}
A=UΣVT=(UΣUT)(UVT),S=UΣUT,Q=UVT
4. 小结
通过SVD奇异值分解可得,我们将任意矩阵分解后,可以挑选出r个重要的非零特征值的矩阵。
A
=
σ
1
u
1
v
1
T
+
σ
2
u
2
v
2
T
+
⋯
+
σ
r
u
r
v
r
T
,
σ
1
≥
σ
2
≥
⋯
≥
σ
r
;
\begin{equation} A=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_ru_rv_r^T,\sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r; \end{equation}
A=σ1u1v1T+σ2u2v2T+⋯+σrurvrT,σ1≥σ2≥⋯≥σr;
- 所以可得得到矩阵A中最重要的信息在
σ
1
u
1
v
1
T
+
⋯
+
σ
k
u
k
v
k
T
\sigma_1u_1v_1^T+\cdots+\sigma_ku_kv_k^T
σ1u1v1T+⋯+σkukvkT上。其他的部分因为
σ
k
+
1
u
k
+
1
v
k
+
1
T
+
⋯
+
σ
r
u
r
v
r
T
\sigma_{k+1}u_{k+1}v_{k+1}^T+\cdots+\sigma_ru_rv_r^T
σk+1uk+1vk+1T+⋯+σrurvrT中的
σ
\sigma
σ太小而可以忽略,这样就起到以小的矩阵组合来表示原始矩阵的方式,这个就是我们的
主成分分析PCA
,真神奇!!!