奇异值分解就是把矩阵拆解成两个正交矩阵和一个对角矩阵的积
即
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT
- UV都是正交矩阵, Σ \Sigma Σ是对角矩阵
- U是 A A T AA^T AAT的特征向量堆叠,V则是 A T A A^TA ATA特征向量的堆叠
- Σ \Sigma Σ是特征值 A A T AA^T AAT的开方构成的对角矩阵
假定A的形状是m×n,奇异值分解有两种形式
一种形式是U是m×r,V是n×r,
Σ
\Sigma
Σ是r×r,这里面是r是矩阵的秩,他把一些0元素给去掉了
另一种形式是u是m×m,v是n×n,
Σ
\Sigma
Σ是m*n,这里面的
Σ
\Sigma
Σ就需要在原本的r×r矩阵右下角填补一些0元素了
它有一个特殊版本是对称矩阵的分解, S = Q Λ Q T S=Q\Lambda Q^T S=QΛQT
手动构造两个对称矩阵 A A T AA^T AAT(它的对称性可以从矩阵乘法第一种理解推出)和 A T A A^TA ATA
A A T = U Λ U T AA^T=U\Lambda U^T AAT=UΛUT
A T A = V Λ V T A^TA=V\Lambda V^T ATA=VΛVT
因为
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是 A A T AA^T AAT的特征向量堆叠,而另外一个V则是 A T A A^TA ATA特征向量的堆叠
奇异值分解还有另外一种理解方式,不过需要先知道一个知识,正交矩阵族是一个旋转矩阵,同样的旋转矩阵也是正交矩阵
这很好理解,因为正交矩阵本身是一组正交基, 它和01正交基的关系可不就是旋转
A
x
=
U
Σ
V
T
x
Ax=U\Sigma V^Tx
Ax=UΣVTx 这表示一个向量被旋转,拉伸再旋转
另外还有一种延伸的分解方式是 A=SQ,即把矩阵拆成对称矩阵和正交矩阵的积
这里面的S就是
U
Σ
U
T
U\Sigma U^T
UΣUT, Q就是
U
V
T
UV^T
UVT