文章目录
1什么是奇异值
令
A
A
A 是
m
×
n
m \times n
m×n 矩阵, 那么
A
T
A
A^{\mathrm{T}} A
ATA 是对称矩阵且可以正交对角化. 令
{
v
1
,
⋯
,
v
n
}
\left\{\boldsymbol{v}_1, \cdots, \boldsymbol{v}_n\right\}
{v1,⋯,vn} 是
R
n
\mathbb{R}^n
Rn 的单位正交基且构成
A
T
A
A^{\mathrm{T}} A
ATA 的特征向量,
λ
1
,
⋯
,
λ
n
\lambda_1, \cdots, \lambda_n
λ1,⋯,λn 是
A
T
A
A^{\mathrm{T}} A
ATA 对应的特征值,那么对
1
⩽
i
⩽
n
1 \leqslant i \leqslant n
1⩽i⩽n,
∥
A
v
i
∥
2
=
(
A
v
i
)
T
A
v
i
=
v
i
⊤
A
⊤
A
v
i
=
v
i
⊤
(
λ
i
v
i
)
由于
v
i
是
A
⊤
A
的特征向量
=
λ
i
由于
v
i
是单位向量
\begin{array}{rlrl} \left\|A \boldsymbol{v}_i\right\|^2 & =\left(A \boldsymbol{v}_i\right)^{\mathrm{T}} A v_i=\boldsymbol{v}_i^{\mathrm{\top}} A^{\top} A \boldsymbol{v}_i \\ & =\boldsymbol{v}_i^{\top}\left(\lambda_i \boldsymbol{v}_i\right) & & \text { 由于 } \boldsymbol{v}_i \text { 是 } A^{\top} A \text { 的特征向量 } \\ & =\lambda_i & & \text { 由于 } \boldsymbol{v}_i \text { 是单位向量 } \end{array}
∥Avi∥2=(Avi)TAvi=vi⊤A⊤Avi=vi⊤(λivi)=λi 由于 vi 是 A⊤A 的特征向量 由于 vi 是单位向量
所以,
A
T
A
A^{\mathrm{T}} A
ATA 的所有特征值都非负. 如果必要, 通过重新编号, 可以假设特征值的重新排列满足
λ
1
⩾
λ
2
⩾
⋯
⩾
λ
n
⩾
0
\lambda_1 \geqslant \lambda_2 \geqslant \cdots \geqslant \lambda_n \geqslant 0
λ1⩾λ2⩾⋯⩾λn⩾0
A
A
A 的奇异值是
A
T
A
A^{\mathrm{T}} A
ATA 的特征值的平方根, 记为
σ
1
,
⋯
,
σ
n
\sigma_1, \cdots, \sigma_n
σ1,⋯,σn, 且它们用递减顺序排列, 也就是对
1
⩽
i
⩽
n
,
σ
i
=
λ
i
1 \leqslant i \leqslant n, \quad \sigma_i=\sqrt{\lambda_i}
1⩽i⩽n,σi=λi. 由(2)可知,
A
A
A 的奇异值是向量
A
v
1
,
⋯
,
A
v
n
A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n
Av1,⋯,Avn 的长度.
2讨论 { A v 1 , ⋯ , A v r } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} {Av1,⋯,Avr}
若
{
v
1
,
⋯
,
v
n
}
\left\{v_1, \cdots, v_n\right\}
{v1,⋯,vn} 是包含
A
T
A
A^{\mathrm{T}} A
ATA 的特征向量的
R
n
\mathbb{R}^n
Rn 上的单位正交基, 重新整理使得对应的
A
⊤
A
A^{\top} A
A⊤A 的特征值满足
λ
1
⩾
⋯
⩾
λ
n
\lambda_1 \geqslant \cdots \geqslant \lambda_n
λ1⩾⋯⩾λn. 假若
A
A
A 有
r
r
r 个非零奇异值, 那么
{
A
v
1
,
⋯
,
A
v
r
}
\left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\}
{Av1,⋯,Avr} 是
Col
A
\operatorname{Col} A
ColA 的一个正交基, 且 rank
A
=
r
A=r
A=r.
证明: 由于当
i
≠
j
i \neq j
i=j 时,
v
i
v_i
vi 和
λ
j
v
j
\lambda_j v_j
λjvj 正交, 所以
(
A
v
i
)
T
(
A
v
j
)
=
v
i
T
A
T
A
v
j
=
v
i
T
(
λ
j
v
j
)
=
0
\left(A \boldsymbol{v}_i\right)^{\mathrm{T}}\left(A \boldsymbol{v}_j\right)=\boldsymbol{v}_i^{\mathrm{T}} A^{\mathrm{T}} A \boldsymbol{v}_j=\boldsymbol{v}_i^{\mathrm{T}}\left(\lambda_j \boldsymbol{v}_j\right)=0
(Avi)T(Avj)=viTATAvj=viT(λjvj)=0
从而
{
A
v
1
,
⋯
,
A
v
n
}
\left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n\right\}
{Av1,⋯,Avn} 是一个正交基. 更进一步,由于向量
A
v
1
,
⋯
,
A
v
n
A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n
Av1,⋯,Avn 的长度是
A
A
A 的奇异值,且因为有
r
r
r个非零奇异值, 因此
A
v
i
≠
0
A \boldsymbol{v}_i \neq \mathbf{0}
Avi=0 的充分必要条件是
1
⩽
i
⩽
r
1 \leqslant i \leqslant r
1⩽i⩽r. 所以
A
v
1
,
⋯
,
A
v
r
A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r
Av1,⋯,Avr 是线性无关向量, 且属于
Col
A
\operatorname{Col} A
ColA. 最后, 对任意属于
Col
A
\operatorname{Col} A
ColA 的
y
\boldsymbol{y}
y, 比如
y
=
A
x
\boldsymbol{y}=A \boldsymbol{x}
y=Ax, 我们可以写出
x
=
c
1
v
1
+
⋯
+
c
n
v
n
\boldsymbol{x}=c_1 \boldsymbol{v}_1+\cdots+c_n \boldsymbol{v}_n
x=c1v1+⋯+cnvn, 且
y
=
A
x
=
c
1
A
v
1
+
⋯
+
c
r
A
v
r
+
c
r
+
1
A
v
r
+
1
+
⋯
+
c
n
A
v
n
=
c
1
A
v
1
+
⋯
+
c
r
A
v
r
+
0
+
⋯
+
0
\begin{aligned} \boldsymbol{y} & =A \boldsymbol{x}=c_1 A \boldsymbol{v}_1+\cdots+c_r A \boldsymbol{v}_r+c_{r+1} A \boldsymbol{v}_{r+1}+\cdots+c_n A \boldsymbol{v}_n \\ & =c_1 A \boldsymbol{v}_1+\cdots+c_r A \boldsymbol{v}_r+0+\cdots+0 \end{aligned}
y=Ax=c1Av1+⋯+crAvr+cr+1Avr+1+⋯+cnAvn=c1Av1+⋯+crAvr+0+⋯+0
这样, y \boldsymbol{y} y 在 Span { A v 1 , ⋯ , A v r } \operatorname{Span}\left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} Span{Av1,⋯,Avr} 中, 这说明 { A v 1 , ⋯ , A v r } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} {Av1,⋯,Avr} 是 Col A \operatorname{Col} A ColA 的一个(正交)基. 因此 rank A = \operatorname{rank} A= rankA= dim Col A = r \operatorname{dim} \operatorname{Col} A=r dimColA=r.
3继续讨论
对每一个
m
×
n
m \times n
m×n 矩阵
A
\boldsymbol{A}
A, 存在标准正交集
{
u
1
,
⋯
\left\{\boldsymbol{u}_1, \cdots\right.
{u1,⋯,
u
m
}
,
{
v
1
,
⋯
,
v
n
}
\left.\boldsymbol{u}_m\right\},\left\{\boldsymbol{v}_1, \cdots, \boldsymbol{v}_n\right\}
um},{v1,⋯,vn}, 以及非负数
σ
1
⩾
⋯
⩾
σ
n
⩾
0
\quad \sigma_1 \geqslant \cdots \geqslant \sigma_n \geqslant 0
σ1⩾⋯⩾σn⩾0, 令
A
v
1
=
σ
1
u
1
A
v
2
=
σ
2
u
2
⋮
A
v
n
=
σ
n
u
n
\begin{gathered} \boldsymbol{A} \boldsymbol{v}_1=\quad \sigma_1 \boldsymbol{u}_1 \\ \boldsymbol{A} \boldsymbol{v}_2=\quad \sigma_2 \boldsymbol{u}_2 \\ \vdots \\ \boldsymbol{A} \boldsymbol{v}_n=\quad \sigma_n \boldsymbol{u}_n \end{gathered}
Av1=σ1u1Av2=σ2u2⋮Avn=σnun
根据2中的讨论:
{
A
v
1
,
⋯
,
A
v
n
}
\left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n\right\}
{Av1,⋯,Avn} 是一个正交基. 更进一步,由于向量
A
v
1
,
⋯
,
A
v
n
A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n
Av1,⋯,Avn 的长度是
A
A
A 的奇异值,根据上述等式有:
u
i
\boldsymbol{u}_i
ui 为一组单位正交基。
v
i
\boldsymbol{v}_i
vi 称为是矩阵
A
\boldsymbol{A}
A 的右奇异向量, 将
u
i
\boldsymbol{u}_i
ui 是
A
\boldsymbol{A}
A的左奇异向量,
s
i
s_i
si 是
A
\boldsymbol{A}
A 的奇异值(singular value).
4svd定义及证明
设 A A A 是秩为 r r r 的 m × n m \times n m×n 矩阵, 那么存在一个 m × n m \times n m×n 矩阵 Σ \Sigma Σ, 其中 D D D 的对角线元素是 A A A 的前 r r r 个奇异值, σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 \sigma_1 \geqslant \sigma_2 \geqslant \cdots \geqslant \sigma_r>0 σ1⩾σ2⩾⋯⩾σr>0, 并且存在一个 m × m m \times m m×m 正交矩阵 U U U 和一个 n × n n \times n n×n 正交矩阵 V V V 使得 A = U Σ V T A=U \Sigma V^{\mathrm{T}} A=UΣVT.
任何分解
A
=
U
Σ
V
T
A=U \Sigma V^{\mathrm{T}}
A=UΣVT 称为
A
A
A 的一个奇异值分解 (或 SVD), 其中
U
U
U 和
V
V
V 是正交矩阵,
Σ
\Sigma
Σ ,
D
D
D 具有正的对角线元素. 矩阵
U
U
U 和
V
V
V 不是由
A
A
A 惟一确定的, 但
Σ
\Sigma
Σ 的对角线元素必须是
A
A
A 的奇异值. 这样的一个分解中
U
U
U 的列称为
A
A
A 的左奇异向量, 而
V
V
V 的列称为
A
A
A 的右奇异向量.
根据上面的讨论,很容易进行证明。
证明:
假设
λ
i
\lambda_i
λi 和
v
i
\boldsymbol{v}_i
vi 如上述讨论 , 使得
{
A
v
1
,
⋯
,
A
v
r
}
\left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\}
{Av1,⋯,Avr} 是
Col
A
\operatorname{Col} A
ColA 的正交基. 将每一个
A
v
i
A \boldsymbol{v}_i
Avi 单位化得到一个单位正交基
{
u
1
,
⋯
,
u
r
}
\left\{\boldsymbol{u}_1, \cdots, \boldsymbol{u}_r\right\}
{u1,⋯,ur}, 其中
u
i
=
1
∥
A
v
i
∥
A
v
i
=
1
σ
i
A
v
i
u_i=\frac{1}{\left\|A v_i\right\|} A \boldsymbol{v}_i=\frac{1}{\sigma_i} A \boldsymbol{v}_i
ui=∥Avi∥1Avi=σi1Avi
而且
A
v
i
=
σ
i
u
i
(
1
⩽
i
⩽
r
)
A \boldsymbol{v}_i=\sigma_i \boldsymbol{u}_i \quad(1 \leqslant i \leqslant r)
Avi=σiui(1⩽i⩽r)
现在将
{
u
1
,
⋯
,
u
r
}
\left\{\boldsymbol{u}_1, \cdots, \boldsymbol{u}_r\right\}
{u1,⋯,ur} 扩充为
R
m
\mathbb{R}^m
Rm 的单位正交基
{
u
1
,
⋯
,
u
m
}
\left\{\boldsymbol{u}_1, \cdots, \boldsymbol{u}_m\right\}
{u1,⋯,um}, 并且取
U
=
[
u
1
u
2
⋯
u
m
]
和
V
=
[
v
1
v
2
⋯
v
n
]
U=\left[\begin{array}{llll} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_m \end{array}\right] \text { 和 } V=\left[\begin{array}{llll} \boldsymbol{v}_1 & \boldsymbol{v}_2 & \cdots & \boldsymbol{v}_n \end{array}\right]
U=[u1u2⋯um] 和 V=[v1v2⋯vn]
由构造可知,
U
U
U 和
V
V
V 是正交矩阵
A
V
=
[
A
v
1
⋯
A
v
r
0
⋯
0
]
=
[
σ
1
u
1
⋯
σ
r
u
r
0
⋯
0
]
A V=\left[\begin{array}{llllll} A \boldsymbol{v}_1 & \cdots & A \boldsymbol{v}_r & \mathbf{0} & \cdots & 0 \end{array}\right]=\left[\begin{array}{llllll} \sigma_1 \boldsymbol{u}_1 & \cdots & \sigma_r \boldsymbol{u}_r & \mathbf{0} & \cdots & 0 \end{array}\right]
AV=[Av1⋯Avr0⋯0]=[σ1u1⋯σrur0⋯0]
设
D
D
D 是对角线元素为
σ
1
,
⋯
,
σ
r
\sigma_1, \cdots, \sigma_r
σ1,⋯,σr 的对角矩阵, 那么
U
Σ
=
[
u
1
u
2
⋯
u
m
]
[
σ
1
0
σ
2
0
⋱
0
σ
r
0
0
]
=
[
σ
1
u
1
⋯
σ
r
u
r
0
⋯
0
]
\begin{aligned} U \Sigma & =\left[\begin{array}{llll} \boldsymbol{u}_1 & \boldsymbol{u}_2 \cdots & \boldsymbol{u}_m \end{array}\right]\left[\begin{array}{llll|l} \sigma_1 & & & 0 & \\ & \sigma_2 & & & 0 \\ & & \ddots & & \\ 0 & & & \sigma_r & \\ \hline & 0 & & & 0 \end{array}\right] \\ & =\left[\sigma_1 \boldsymbol{u}_1 \cdots \sigma_r \boldsymbol{u}_r \mathbf{0} \cdots \mathbf{0}\right] \end{aligned}
UΣ=[u1u2⋯um]
σ10σ20⋱0σr00
=[σ1u1⋯σrur0⋯0]
由于 V V V 是一个正交矩阵, 因此 U Σ V T = A V V T = A U \Sigma V^{\mathrm{T}}=A V V^{\mathrm{T}}=A UΣVT=AVVT=A.
5讨论 u i \boldsymbol{u}_i ui的性质
由于
A
v
i
=
σ
i
u
i
\boldsymbol{A} \boldsymbol{v}_i=\quad \sigma_i \boldsymbol{u}_i
Avi=σiui
{
v
1
,
⋯
,
v
n
}
\left\{\boldsymbol{v}_1, \cdots, \boldsymbol{v}_n\right\}
{v1,⋯,vn} 是
R
n
\mathbb{R}^n
Rn 的单位正交基且构成
A
T
A
A^{\mathrm{T}} A
ATA 的特征向量,
λ
1
,
⋯
,
λ
n
\lambda_1, \cdots, \lambda_n
λ1,⋯,λn 是
A
T
A
A^{\mathrm{T}} A
ATA 对应的特征值
所以
A
A
T
u
i
=
1
σ
i
A
(
A
T
A
v
i
)
=
1
σ
i
A
λ
i
v
i
=
λ
i
1
σ
i
σ
i
u
i
=
λ
i
u
i
\begin{aligned} AA^{\mathrm{T}}u_i=\frac{1}{\sigma_i}A(A^{\mathrm{T}}{A} {v}_i)=\frac{1}{\sigma_i}A\lambda_i{v}_i=\lambda_i\frac{1}{\sigma_i}\sigma_i {u}_i=\lambda_i{u}_i \end{aligned}
AATui=σi1A(ATAvi)=σi1Aλivi=λiσi1σiui=λiui
所以
u
i
{u_i}
ui为
A
A
T
AA^{\mathrm{T}}
AAT的特征向量,
λ
i
\lambda_i
λi为其特征值
6svd分解是唯一的吗?
对于给定矩阵
A
,
S
V
D
\boldsymbol{A}, \mathrm{SVD}
A,SVD 不唯一. 例如在定义方程
A
v
1
=
s
1
u
1
\boldsymbol{A} \boldsymbol{v}_1=s_1 \boldsymbol{u}_1
Av1=s1u1 中, 用
−
v
1
-\boldsymbol{v}_1
−v1 代替
v
1
\boldsymbol{v}_1
v1, 用
−
u
1
-\boldsymbol{u}_1
−u1 代替
u
1
\boldsymbol{u}_1
u1 不改变相等性, 但是改变矩阵
U
\boldsymbol{U}
U 和
V
\boldsymbol{V}
V.
同样对于
A
T
A
A^{\mathrm{T}}A
ATA的特征向量
V
V
V,
A
A
T
AA^{\mathrm{T}}
AAT的特征向量
U
U
U都存在正负号问题,如果同时求
V
,
U
V,U
V,U,此时不能确定SVD中
V
,
U
V,U
V,U的正负号,此种做法是错误的。
7svd的一般求解步骤
(1)求得矩阵
A
T
A
A^{\mathrm{T}}A
ATA的特征值与特征向量
(2)将矩阵
A
T
A
A^{\mathrm{T}}A
ATA的特征值按照降序排列,获取奇异值
σ
i
\sigma_i
σi,得到对应的特征向量即
v
i
v_i
vi
(3)根据奇异值分解定义:
A
v
i
=
σ
i
u
i
(
1
⩽
i
⩽
r
)
A \boldsymbol{v}_i=\sigma_i \boldsymbol{u}_i \quad(1 \leqslant i \leqslant r)
Avi=σiui(1⩽i⩽r)求得
u
i
u_i
ui