定义
奇异值分解就是把一个矩阵分解成正交矩阵乘以对角矩阵乘以正交矩阵的形式,即 即 A = U Σ V T A=U\Sigma V^T A=UΣVT
求法
A
A
T
=
U
Σ
V
T
V
Σ
U
T
=
U
Σ
2
U
T
AA^T=U\Sigma V^TV\Sigma U^T=U\Sigma^2U^T
AAT=UΣVTVΣUT=UΣ2UT,这个是很明显的特征值分解形式
A
T
A
=
V
Σ
U
T
U
Σ
V
T
=
V
Σ
2
V
T
A^TA=V\Sigma U^TU\Sigma V^T=V\Sigma^2V^T
ATA=VΣUTUΣVT=VΣ2VT
所以很明显
U
U
U是
A
A
T
AA^T
AAT特征向量的堆叠,
V
V
V是
A
T
A
A^TA
ATA特征向量的堆叠
推导
上面那个成立隐含了一个条件是
A
A
T
AA^T
AAT和
A
T
A
A^TA
ATA有相同的特征值,如果他们特征值不一样,那么SVD也无从说起
A
T
A
A^TA
ATA是对称矩阵,所以UV都是正交矩阵,所以
v
1
和
v
2
v_1和v_2
v1和v2正交,并且我们规定它们都是单位向量(ps.特征向量可以任意缩放)
(
A
v
1
)
T
A
v
2
=
u
1
T
A
T
A
v
2
=
v
1
T
λ
2
v
=
0
(Av_1)^TAv_2=u_1^TA^TAv_2=v_1^T\lambda_2 v=0
(Av1)TAv2=u1TATAv2=v1Tλ2v=0
所以
A
u
Au
Au之间也是正交的
所以有
∣
A
v
i
∣
2
=
(
A
v
i
)
T
A
v
=
v
i
T
A
T
A
v
i
=
λ
|Av_i|^2=(Av_i)^TAv=v_i^TA^TAv_i=\lambda
∣Avi∣2=(Avi)TAv=viTATAvi=λ
所以
∣
A
v
i
∣
=
λ
i
|Av_i|=\sqrt{\lambda_i}
∣Avi∣=λi
这就可以构造出
A v i ∣ A v i ∣ = 1 λ A v i \frac{Av_i}{|Av_i|}=\frac{1}{\sqrt{\lambda}}Av_i ∣Avi∣Avi=λ1Avi
A A T 1 λ i A v i = A 1 λ i A T A v i = A 1 λ i λ i v i = λ i 1 λ i A v i AA^T\frac{1}{\sqrt{\lambda_i}}Av_i=A\frac{1}{\sqrt{\lambda_i}}A^TAv_i=A\frac{1}{\sqrt{\lambda_i}}\lambda_iv_i=\lambda_i\frac{1}{\sqrt{\lambda_i}}Av_i AATλi1Avi=Aλi1ATAvi=Aλi1λivi=λiλi1Avi
把
1
λ
i
A
v
i
\frac{1}{\sqrt{\lambda_i}}Av_i
λi1Avi当做整体看作
u
i
u_i
ui,就会有
A
A
T
u
i
=
λ
i
u
i
AA^Tu_i=\lambda_iu_i
AATui=λiui
这说明
A
A
T
和
A
T
A
AA^T和A^TA
AAT和ATA的特征值是一样的,而且他们特征向量的关系是
u
i
=
1
λ
i
A
v
i
u_i=\frac{1}{\sqrt{\lambda_i}}Av_i
ui=λi1Avi
奇异值分解的两种形式
SVD其实有两种形式
一种形式是U是m×r,V是n×r,
Σ
\Sigma
Σ是r×r,这里面是r是矩阵的秩,他把一些0元素给去掉了
另一种形式是u是m×m,v是n×n,
Σ
\Sigma
Σ是m*n,这里面的
Σ
\Sigma
Σ就需要在原本的r×r矩阵右下角填补一些0元素了
第一种形式是特征向量的堆叠,因为秩为r,所以特征向量只有r个
第二种形式补了零,这时候的
U
V
UV
UV都是正交矩阵,可以看做旋转矩阵,这时候SVD就有几何意义,它在对角矩阵处补0,而对于
U
V
UV
UV矩阵它其实补的是
A
A
T
x
=
0
AA^Tx=0
AATx=0的解,一方面这些向量也可以认为是特征值为0的对应的特征向量,另一方面他们和之前的特征向量垂直,让
U
V
UV
UV可以保持正交矩阵的优良特性
SVD的几何意义
因为
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT,它从几何角度来看
A
x
Ax
Ax是一种形变,先转换到V空间,再拉伸,再转到U空间,这里面的
Σ
\Sigma
Σ中对角的零元素表明它在变换中对某个维度置零0,这是不可恢复的,变换不可逆意味着矩阵没有逆矩阵.所以可逆矩阵中间会是完整的对角矩阵,而不可逆矩阵中间才会有零元素.
另外对角没有零不代表是可逆矩阵,只有方阵对角才是可逆.
其实非方阵也不是完全不可逆,有左逆和右逆矩阵.
如果
U
V
UV
UV维度不一样,U维度大于V,那么
x
A
xA
xA可逆,它先升维再拉伸再降维,完全没问题,但是反过来
A
x
Ax
Ax就不可逆了
相反的U维度小于V,那么
A
x
Ax
Ax可逆,
x
A
xA
xA不可逆
当然对角有零也可以强行反推,这时候会损失一些数据,这种逆也叫伪逆
不管是有损伪逆还是左逆右逆,都可以用SVD表达即
A
+
=
V
Σ
−
1
U
T
A^+=V\Sigma^{-1}U^T
A+=VΣ−1UT,这就是对SVD几何变换的逆转