文章目录
奇异值分解(SVD)
前面提到对于方阵 A A A, 大小为nxn, 在一定条件下, 可以进行特征值和特征向量分解. 但存在问题:
- 方阵 A A A的特征向量并不正交(只有是对称矩阵的情况下才正交).
- 方阵 A A A的特征向量数量不够(即不满足n个特征向量组是线性相关的).
- 并不是一个方阵(A可能并不是方阵).
这种情况下如何对大小为mxn的矩阵 A A A 进行分解呢? A A A的奇异向量能够完美地解决上述问题.
1. SVD的推导
目标: 寻找行空间的一组标准正交基, 作用
A
A
A以后, 变换到列空间的一组正交基(倍数乘以标准正交基).
A
v
1
=
σ
1
u
1
,
A
v
2
=
σ
2
u
2
,
.
.
.
,
A
v
r
=
σ
r
u
r
Av_1 = \sigma_1 u_1, Av_2 = \sigma_2 u_2, ... , Av_r = \sigma_r u_r
Av1=σ1u1,Av2=σ2u2,...,Avr=σrur
v
i
∈
R
n
,
u
i
∈
R
m
v_i \in \mathbb{R}^n, u_i \in \mathbb{R}^m
vi∈Rn,ui∈Rm
所以可以得到:
A
[
v
1
.
.
.
v
r
]
=
[
u
1
.
.
.
u
r
]
[
σ
1
.
.
σ
r
]
⇒
A
V
=
U
Σ
A \begin{bmatrix} v_1&...&v_r\end{bmatrix} = \begin{bmatrix} u_1&...&u_r\end{bmatrix} \begin{bmatrix}\sigma_1\\&.\\&&.\\ &&& \sigma_r \end{bmatrix} \Rightarrow AV = U\Sigma
A[v1...vr]=[u1...ur]⎣⎢⎢⎡σ1..σr⎦⎥⎥⎤⇒AV=UΣ
其中
V
∈
C
(
A
T
)
V \in C(A^T)
V∈C(AT),
A
A
A的行空间,
U
∈
C
(
A
)
U\in C(A)
U∈C(A),
A
A
A的列空间. 如果矩阵
A
A
A 的行列空间不满秩, 那么会对
U
U
U和
V
V
V补上相应数量的对应零空间中的单位正交向量成为方阵, 写成如下形式:
A
[
v
1
.
.
.
v
r
.
.
v
n
]
=
[
u
1
.
.
.
u
r
.
.
u
m
]
[
σ
1
.
.
σ
r
]
⇒
A
V
=
U
Σ
A \begin{bmatrix} v_1&...&v_r&..&v_n\end{bmatrix} = \begin{bmatrix} u_1&...&u_r&..&u_m\end{bmatrix} \begin{bmatrix}\sigma_1\\&.\\&&.\\ &&& \sigma_r \\ &&&& \end{bmatrix} \Rightarrow AV = U\Sigma
A[v1...vr..vn]=[u1...ur..um]⎣⎢⎢⎢⎢⎡σ1..σr⎦⎥⎥⎥⎥⎤⇒AV=UΣ
综上可以得到SVD的表达式:
A
=
U
Σ
V
−
1
=
u
1
σ
1
v
1
T
+
.
.
.
+
u
r
σ
r
v
r
T
A = U \Sigma V^{-1} = u_1 \sigma_1 v_1^T + ... + u_r \sigma_r v_r^T
A=UΣV−1=u1σ1v1T+...+urσrvrT
又因为,
V
V
V是一个正交阵, 所以
V
T
=
V
−
1
V^T = V^{-1}
VT=V−1, 代入上式, 得:
A
=
U
Σ
V
−
1
=
U
Σ
V
T
A = U \Sigma V^{-1} = U \Sigma V^T
A=UΣV−1=UΣVT
2. 如何求解 U U U , Σ \Sigma Σ 和 V V V
计算
A
T
A
A^TA
ATA可以消去
U
U
U:
A
T
A
=
V
Σ
T
U
T
U
Σ
V
T
=
V
[
σ
1
2
.
.
σ
r
2
]
V
T
A^TA = V \Sigma^T U^T U \Sigma V^T = V \begin{bmatrix} \sigma_1^{2} \\&.\\&&.\\ &&& \sigma_r^{2} \\ &&&& \\ \end{bmatrix} V^T
ATA=VΣTUTUΣVT=V⎣⎢⎢⎢⎢⎡σ12..σr2⎦⎥⎥⎥⎥⎤VT
可以发现,
A
T
A
A^TA
ATA的结果恰好和
A
T
A
A^TA
ATA的特征值分解的形式相同. 也就是说矩阵
V
V
V由
A
T
A
A^TA
ATA的特征向量组成, 特征值为
σ
i
2
\sigma_i^{2}
σi2. 即我们求解特征方程
A
T
A
v
=
σ
i
2
v
A^TA v = \sigma_i^{2} v
ATAv=σi2v.
计算
A
A
T
AA^T
AAT可以消去
V
V
V
A
A
T
=
U
Σ
V
T
V
Σ
T
U
T
=
U
[
σ
1
2
.
.
σ
r
2
]
U
T
AA^T = U \Sigma V^T V \Sigma^T U^T = U \begin{bmatrix} \sigma_1^{2} \\&.\\&&.\\ &&& \sigma_r^{2} \\ &&&& \\ \end{bmatrix} U^T
AAT=UΣVTVΣTUT=U⎣⎢⎢⎢⎢⎡σ12..σr2⎦⎥⎥⎥⎥⎤UT
同理,
A
A
T
AA^T
AAT的结果恰好和
A
T
A
A^TA
ATA的特征值分解的形式相同. 也就是说矩阵
U
U
U由
A
A
T
AA^T
AAT的特征向量组成, 特征值为
σ
i
2
\sigma_i^{2}
σi2. 即我们求解特征方程
A
A
T
u
=
σ
i
2
u
AA^T u= \sigma_i^{2} u
AATu=σi2u.
3. SVD的几何形式
从图中可以看出对矩阵A的SVD分解可以表示成一个圆到一个椭圆的变换过程.
4. 矩阵A的伪逆(Pseudoinverse)和SVD求解最小二乘
(1) 伪逆的定义
前面讲到任意大小的普通矩阵都可以奇异值分解. 从
A
v
=
σ
u
Av = \sigma u
Av=σu 出发进行推导. 如果
A
A
A是一个可逆的方阵, 那么有
A
−
1
u
=
1
σ
v
A^{-1}u = \frac{1}{\sigma} v
A−1u=σ1v. 那么相应的SVD分解形式也会变成:
A
=
U
Σ
V
T
⇒
A
+
=
V
Σ
+
U
T
A = U \Sigma V^T \Rightarrow A^{+} = V \Sigma^{+} U^{T}
A=UΣVT⇒A+=VΣ+UT
其中的
+
+
+ 表示伪逆, 如果
A
A
A 是方阵并且的确存在逆的话, 结果就是
A
A
A 的逆. 但是如果矩阵
A
A
A 的行空间不满秩或者列空间不满秩, 那么不管是不是方阵, 就会导致
A
A
A 不存在逆. 这时候就定义矩阵
A
A
A 的伪逆.
(2) SVD形式的伪逆应用求解最小二乘
在正交投影的章节中, 我们从几何的形式推导出, 求解最小二乘问题, 可以通过求解正规方程(normal equation).
A
T
A
x
^
=
A
T
b
⇒
x
^
=
A
(
A
T
A
)
−
1
A
T
b
A^TA \widehat{x} = A^Tb \Rightarrow \widehat{x} = A(A^TA)^{-1}A^Tb
ATAx
=ATb⇒x
=A(ATA)−1ATb
这其中, 我们假设矩阵
A
A
A 和
A
T
A
A^TA
ATA 是可逆的. 现在如果
A
A
A 不满秩, 那么就会导致正规方程存在多个解, 而不是唯一解. 原来
A
x
=
b
Ax=b
Ax=b 中的A是满秩的,
b
b
b 不在
A
A
A 的列空间中, 方程没有解, 因此需要求解最小二乘解. 如果
A
A
A 不满秩, 则其中一个解为 $x^{+} = A^{+}b $ , 并且可以证明这个解
x
+
x^{+}
x+ 是所有解最小的那个.
证明: TODO
总结
- 矩阵的特征值和特征向量分解适用于特定的矩阵, 对于任意大小的普通矩阵, 可以使用SVD分解.
- 矩阵 A A A 将 C ( A T ) C(A^T) C(AT) 中的一组标准正交基变换到 C ( A ) C(A) C(A) 中的一组正交基. 由此可以推导出 A = U Σ V T A = U \Sigma V^T A=UΣVT 的分解形式.
- 通过 A T A A^TA ATA 的对称矩阵形式可以消去 U U U , 从而得到 V V V 和 Σ \Sigma Σ 的求解方式. 同理通过 A A T AA^T AAT 的对称矩阵形式可以得到 U U U 和 Σ \Sigma Σ 的求解方式.