矩阵的特征值与奇异值
特征值分解(EVD)
对于
n
n
n阶方阵
A
\bm{A}
A来说,其特征值定义为:
A
u
=
λ
u
\bm{A}\bm{u}=\lambda\bm{u}
Au=λu
式中
λ
\lambda
λ为矩阵
A
\bm{A}
A的特征值,
u
\bm{u}
u为矩阵
A
\bm{A}
A的特征矢量。进一步地,如果
A
\bm{A}
A为实对称矩阵,且我们求出了矩阵
A
\bm{A}
A所有的特征值
{
λ
1
,
λ
2
,
⋯
,
λ
n
}
\{\lambda_1,\lambda_2,\cdots,\lambda_n\}
{λ1,λ2,⋯,λn}和对应的特征矢量
{
u
1
,
u
2
,
⋯
,
u
n
}
\{\bm{u}_1,\bm{u}_2,\cdots,\bm{u}_n\}
{u1,u2,⋯,un}。对于实对称矩阵来说,其特征矢量两两正交,因此对于所有的特征值和特征矢量,我们有:
{
A
u
1
=
λ
1
u
1
A
u
2
=
λ
2
u
2
⋮
A
u
n
=
λ
n
u
n
⇒
A
[
u
1
u
2
⋯
u
n
]
⏟
U
=
[
u
1
u
2
⋯
u
n
]
⏟
U
[
λ
1
λ
2
⋱
λ
n
]
⏟
Λ
⇒
A
U
=
U
Λ
⇒
A
=
U
Λ
U
−
1
=
U
Λ
U
T
\begin{aligned} &\left\{ \begin{aligned} \bm{A}\bm{u}_1&=\lambda_1\bm{u}_1\\ \bm{A}\bm{u}_2&=\lambda_2\bm{u}_2\\ &\vdots\\ \bm{A}\bm{u}_n&=\lambda_n\bm{u}_n \end{aligned} \right.\\ \Rightarrow\bm{A}\underbrace{\left[\begin{array}{cccc}\bm{u}_1 & \bm{u}_2 & \cdots & \bm{u}_n\end{array}\right]}_{\bm{U}}&=\underbrace{\left[\begin{array}{cccc}\bm{u}_1 & \bm{u}_2 & \cdots & \bm{u}_n\end{array}\right]}_{\bm{U}}\underbrace{\begin{bmatrix} \lambda_1 & &&\\ &\lambda_2&&\\ &&\ddots&\\ &&&\lambda_n \end{bmatrix}}_{\bm{\Lambda}}\\ \Rightarrow\bm{AU}&=\bm{U\Lambda}\\ \Rightarrow\bm{A}&=\bm{U\Lambda}\bm{U}^{-1}=\bm{U\Lambda}\bm{U}^T\\ \end{aligned}
⇒AU
[u1u2⋯un]⇒AU⇒A⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧Au1Au2Aun=λ1u1=λ2u2⋮=λnun=U
[u1u2⋯un]Λ
⎣⎢⎢⎡λ1λ2⋱λn⎦⎥⎥⎤=UΛ=UΛU−1=UΛUT
上式即为实对称矩阵的特征值分解。
由于
{
u
1
,
u
2
,
⋯
,
u
n
}
\{\bm{u}_1,\bm{u}_2,\cdots,\bm{u}_n\}
{u1,u2,⋯,un}相互正交,其实际上是
n
n
n维空间的一组标准正交基,因此对于任意矢量
x
∈
R
n
\bm{x}\in\mathbb{R}^n
x∈Rn来说,其可以表示为标准正交基的线性组合形式,即
x
=
∑
i
=
1
n
a
i
u
i
=
U
[
a
1
,
a
2
,
⋯
,
a
n
]
T
\bm{x}=\sum\limits_{i=1}^na_i\bm{u}_i=\bm{U}\left[a_1,a_2,\cdots,a_n\right]^T
x=i=1∑naiui=U[a1,a2,⋯,an]T,则:
A
x
=
U
Λ
U
T
U
[
a
1
a
2
⋮
a
n
]
\bm{Ax}=\bm{U}\bm{\Lambda}\bm{U}^T\bm{U}\left[\begin{array}{c}a_1 \\ a_2 \\ \vdots \\ a_n\end{array}\right]
Ax=UΛUTU⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤
可以看出 A \bm{A} A矩阵实际上对矢量 x \bm{x} x进行了三步操作:1)首先反解出了 x \bm{x} x在 n n n维标准正交基下的系数;2)随后将其按照对应的特征值进行缩放;3)最后映射到回 n n n维标准正交基下。在这一过程中,如果存在只有 k < n k<n k<n个非零特征值,那么映射后的矢量亦只有 k k k维非零,即落入了 n n n维空间的子空间中。
EVD算法要求矩阵 A \bm{A} A必须为实对称矩阵,但实际上在很多问题中,我们的矩阵 A \bm{A} A是任意的 m × n m\times n m×n矩阵,这是EVD无法完成矩阵的分解,就需要使用奇异值分解(SVD)方法。
特征值分解的一个广泛应用在于求解矩阵的逆,利用特征值分解我们很容易得到矩阵
A
\bm{A}
A的逆矩阵为:
A
−
1
=
(
U
Λ
U
T
)
−
1
=
U
Λ
−
1
U
T
\bm{A}^{-1}=\left(\bm{U\Lambda}\bm{U}^T\right)^{-1}=\bm{U\Lambda}^{-1}\bm{U}^T
A−1=(UΛUT)−1=UΛ−1UT
奇异值分解(SVD)
对于任意秩为
k
k
k的
m
×
n
m\times n
m×n矩阵
A
\bm{A}
A来说,参照EVD,其同样可以表示将一个
n
n
n维矢量
x
\bm{x}
x映射到
m
m
m维标准正交空间,即我们同样可以将
A
\bm{A}
A分解为一个
m
m
m维标准正交基矩阵
U
=
[
u
1
,
u
2
,
⋯
,
u
m
]
\bm{U}=\left[\bm{u}_1,\bm{u}_2,\cdots,\bm{u}_m\right]
U=[u1,u2,⋯,um]、一个增广的对角矩阵
Σ
\bm{\Sigma}
Σ和一个
n
n
n维标准正交基矩阵的转置
V
T
=
[
v
1
T
,
v
2
T
,
⋯
,
v
n
T
]
T
\bm{V}^T=\left[\bm{v}_1^T,\bm{v}_2^T,\cdots,\bm{v}_n^T\right]^T
VT=[v1T,v2T,⋯,vnT]T的乘积形式,即:
A
m
×
n
=
U
m
×
m
Σ
m
×
n
V
n
×
n
T
\bm{A}_{m\times n}=\bm{U}_{m\times m}\bm{\Sigma}_{m\times n}\bm{V}^T_{n\times n}
Am×n=Um×mΣm×nVn×nT
虽然
A
\bm{A}
A本身不是实对称矩阵,但
A
A
T
\bm{A}\bm{A}^T
AAT以及
A
T
A
\bm{A}^T\bm{A}
ATA是实对称矩阵,因此分别有:
A
A
T
=
U
Σ
V
T
V
Σ
T
U
T
=
U
Σ
Σ
T
U
T
A
T
A
=
V
Σ
T
U
T
U
Σ
V
T
=
V
Σ
T
Σ
V
T
\begin{aligned} \bm{A}\bm{A}^T&=\bm{U}\bm{\Sigma}\bm{V}^T\bm{V}\bm{\Sigma}^T\bm{U}^T=\bm{U}\bm{\Sigma}\bm{\Sigma}^T\bm{U}^T\\ \bm{A}^T\bm{A}&=\bm{V}\bm{\Sigma}^T\bm{U}^T\bm{U}\bm{\Sigma}\bm{V}^T=\bm{V}\bm{\Sigma}^T\bm{\Sigma}\bm{V}^T \end{aligned}
AATATA=UΣVTVΣTUT=UΣΣTUT=VΣTUTUΣVT=VΣTΣVT
显然根据EVD分解,矩阵
U
\bm{U}
U和
V
\bm{V}
V分别为由
A
A
T
\bm{A}\bm{A}^T
AAT和
A
T
A
\bm{A}^T\bm{A}
ATA特征矢量构成的正交基矩阵。进一步地,由于
R
a
n
k
(
A
)
=
k
Rank(\bm{A})=k
Rank(A)=k,因此特征值矩阵
Σ
Σ
T
\bm{\Sigma}\bm{\Sigma}^T
ΣΣT和
Σ
T
Σ
\bm{\Sigma}^T\bm{\Sigma}
ΣTΣ只有
k
k
k个非零项:
Σ
Σ
T
=
[
λ
1
⋱
λ
k
0
⋱
0
]
m
×
m
=
[
λ
k
×
k
0
0
0
]
m
×
m
Σ
T
Σ
=
[
λ
k
×
k
0
0
0
]
n
×
n
\begin{aligned} \bm{\Sigma}\bm{\Sigma}^T&=\begin{bmatrix} \lambda_1&&&&&\\ &\ddots&&&&\\ &&\lambda_k&&&\\ &&&0&&\\ &&&&\ddots&\\ &&&&&0 \end{bmatrix}_{m\times m}=\begin{bmatrix} \bm{\lambda}_{k\times k} & \bm{0}\\ \bm{0} & \bm{0} \end{bmatrix}_{m\times m}\\ \bm{\Sigma}^T\bm{\Sigma}&=\begin{bmatrix} \bm{\lambda}_{k\times k} & \bm{0}\\ \bm{0} & \bm{0} \end{bmatrix}_{n\times n}\\ \end{aligned}
ΣΣTΣTΣ=⎣⎢⎢⎢⎢⎢⎢⎡λ1⋱λk0⋱0⎦⎥⎥⎥⎥⎥⎥⎤m×m=[λk×k000]m×m=[λk×k000]n×n
同时利用
Σ
\bm{\Sigma}
Σ只存在主对角线元素有:
Σ
=
[
λ
1
⋱
λ
k
⋯
0
⋮
⋱
0
0
]
=
[
λ
0
0
0
]
\bm{\Sigma}=\begin{bmatrix} \sqrt{\lambda_1}&&&&\\ &\ddots&&&\\ &&\sqrt{\lambda_k}&\cdots&0\\ &&\vdots&\ddots&\\ &&0&&0 \end{bmatrix}=\begin{bmatrix} \sqrt{\bm{\lambda}} & \bm{0}\\ \bm{0} & \bm{0} \end{bmatrix}
Σ=⎣⎢⎢⎢⎢⎢⎡λ1⋱λk⋮0⋯⋱00⎦⎥⎥⎥⎥⎥⎤=[λ000]
即奇异值 σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi。
至此,我们推到了一般矩阵的SVD分解可以写为如下形式:
A
=
U
Σ
V
T
\bm{A}=\bm{U}\bm{\Sigma}\bm{V}^T
A=UΣVT
其中
U
\bm{U}
U称为矩阵
A
\bm{A}
A的左奇异值矩阵,
V
\bm{V}
V称为矩阵
A
\bm{A}
A的右奇异值矩阵。
SVD的性质及应用
矩阵降维
在前面的分析中我们知道,对于秩为
k
k
k的
m
×
n
m\times n
m×n矩阵
A
\bm{A}
A来说,其非零奇异值只有
k
k
k个,我们将SVD分解中的三个矩阵其写成分块矩阵形式有:
A
=
[
u
k
u
m
−
k
]
[
σ
k
0
0
0
]
[
v
k
T
v
n
−
k
T
]
=
[
u
k
σ
k
v
k
T
0
0
0
]
\bm{A}=\begin{bmatrix} \bm{u}_k & \bm{u}_{m-k} \end{bmatrix}\begin{bmatrix} \bm{\sigma}_k & \bm{0}\\ \bm{0} & \bm{0} \end{bmatrix}\begin{bmatrix} \bm{v}_k^T \\ \bm{v}_{n-k}^T \end{bmatrix}=\begin{bmatrix} \bm{u}_k\bm{\sigma}_k\bm{v}_k^T & \bm{0}\\ \bm{0} & \bm{0} \end{bmatrix}
A=[ukum−k][σk000][vkTvn−kT]=[ukσkvkT000]
可以看出, A \bm{A} A矩阵所包含的信息量完全等价于 u k σ k v k T \bm{u}_k\bm{\sigma}_k\bm{v}_k^T ukσkvkT这三个小矩阵的乘积,显然矩阵计算的维数得到了显著下降,这也是SVD算法被广泛用于PCA降维的原因。
求解齐次方程
对于齐次方程 A x = 0 \bm{A}\bm{x}=\bm{0} Ax=0来说,若其满秩,则方程只有零解。而在参数拟和等问题中,我们经常会遇到量测的数量 m m m远大于待估计变量的数量 n n n的情况,此时方程 A x = 0 \bm{A}\bm{x}=\bm{0} Ax=0是超定方程( m > n m>n m>n)。这类方程并没有精确解,只能求解最小二乘解,而SVD正是求解最小二乘解的常用方法。
记需要求解的最小二乘代价函数为(为了书写方便这里省略常系数
1
2
\frac{1}{2}
21):
e
(
x
)
=
∥
A
x
∥
2
=
x
T
A
T
A
x
\bm{e}(\bm{x})=\|\bm{Ax}\|^2=\bm{x}^T\bm{A}^T\bm{A}\bm{x}
e(x)=∥Ax∥2=xTATAx
带入矩阵
A
\bm{A}
A的SVD分解有(注意这里矩阵
A
\bm{A}
A必须是列满秩的,即存在
n
n
n个非零的奇异值):
e
(
x
)
=
x
T
A
T
A
x
=
x
T
V
Σ
T
U
U
T
Σ
V
T
x
=
x
T
V
Σ
T
Σ
V
T
x
=
x
T
V
[
σ
1
2
⋱
σ
n
2
]
V
T
x
\begin{aligned} \bm{e}(\bm{x})&=\bm{x}^T\bm{A}^T\bm{A}\bm{x}\\ &=\bm{x}^T\bm{V}\bm{\Sigma}^T\bm{U}\bm{U}^T\bm{\Sigma}\bm{V}^T\bm{x}\\ &=\bm{x}^T\bm{V}\bm{\Sigma}^T\bm{\Sigma}\bm{V}^T\bm{x}\\ &=\bm{x}^T\bm{V}\begin{bmatrix} \sigma_1^2&&\\ &\ddots&\\ &&\sigma_n^2\\ \end{bmatrix}\bm{V}^T\bm{x} \end{aligned}
e(x)=xTATAx=xTVΣTUUTΣVTx=xTVΣTΣVTx=xTV⎣⎡σ12⋱σn2⎦⎤VTx
由于
{
v
1
,
v
2
,
⋯
,
v
n
}
\{\bm{v}_1,\bm{v}_2,\cdots,\bm{v}_n\}
{v1,v2,⋯,vn}是
n
n
n维空间的标准正交基,因此
x
\bm{x}
x可以表示为
x
=
∑
i
=
1
n
a
i
v
i
=
V
[
a
1
,
a
2
,
⋯
,
a
n
]
T
\bm{x}=\sum\limits_{i=1}^na_i\bm{v}_i=\bm{V}\left[a_1,a_2,\cdots,a_n\right]^T
x=i=1∑naivi=V[a1,a2,⋯,an]T,带入代价函数有:
e
(
x
)
=
x
T
V
[
σ
1
2
⋱
σ
n
2
]
V
T
x
=
[
a
1
a
2
⋯
a
n
]
V
T
V
[
σ
1
2
⋱
σ
k
2
]
V
T
V
[
a
1
a
2
⋮
a
n
]
=
∑
i
=
1
n
a
i
2
σ
i
2
(1)
\begin{aligned} \bm{e}(\bm{x})&=\bm{x}^T\bm{V}\begin{bmatrix} \sigma_1^2&&\\ &\ddots&\\ &&\sigma_n^2\\ \end{bmatrix}\bm{V}^T\bm{x}\\ &=\left[\begin{array}{cccc}a_1 & a_2 & \cdots & a_n\end{array}\right]\bm{V}^T\bm{V}\begin{bmatrix} \sigma_1^2&&\\ &\ddots&\\ &&\sigma_k^2\\ \end{bmatrix}\bm{V}^T\bm{V}\left[\begin{array}{c}a_1 \\ a_2 \\ \vdots \\ a_n\end{array}\right]\\ &=\sum\limits_{i=1}^na_i^2\sigma_i^2 \end{aligned} \tag{1}
e(x)=xTV⎣⎡σ12⋱σn2⎦⎤VTx=[a1a2⋯an]VTV⎣⎡σ12⋱σk2⎦⎤VTV⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤=i=1∑nai2σi2(1)
我们假设奇异值矩阵的排列顺序是有小到大的,同时,由于齐次方程两侧乘以常系数并不会改变方程解的情况,因此我们可以引入约束
∥
x
∥
=
1
\|x\|=1
∥x∥=1,那么有:
∥
x
∥
2
=
1
=
∑
i
=
1
n
∑
j
=
1
n
a
i
a
j
v
i
T
v
j
=
∑
i
=
1
n
a
i
2
(2)
\|x\|^2=1=\sum\limits_{i=1}^n\sum\limits_{j=1}^na_ia_j\bm{v}_i^T\bm{v}_j=\sum\limits_{i=1}^na_i^2 \tag{2}
∥x∥2=1=i=1∑nj=1∑naiajviTvj=i=1∑nai2(2)
显然式(1)取得最小值的条件是除最小奇异值外所有奇异值项的系数为0,联立式(2)可以进一步得到
a
n
2
=
1
⇒
a
n
=
1
a_n^2=1\Rightarrow a_n=1
an2=1⇒an=1。带回
x
\bm{x}
x的表达式有:
x
=
∑
i
=
1
n
a
i
v
i
=
v
n
\bm{x}=\sum\limits_{i=1}^na_i\bm{v}_i=\bm{v}_n
x=i=1∑naivi=vn
即 x \bm{x} x为 A \bm{A} A最小奇异值 σ n \sigma_n σn对应的右奇异值矢量 v n \bm{v}_n vn。
上述结论成立的条件是矩阵
A
\bm{A}
A存在
n
n
n个非零奇异值,即至少是列满秩的。若矩阵
A
\bm{A}
A不满秩,那么其对应的最小二乘如下:
e
(
x
)
=
x
T
A
T
A
x
=
x
T
V
Σ
T
U
U
T
Σ
V
T
x
=
x
T
V
Σ
T
Σ
V
T
x
=
x
T
V
[
σ
1
2
⋱
σ
k
2
0
n
−
k
]
V
T
x
\begin{aligned} \bm{e}(\bm{x})&=\bm{x}^T\bm{A}^T\bm{A}\bm{x}\\ &=\bm{x}^T\bm{V}\bm{\Sigma}^T\bm{U}\bm{U}^T\bm{\Sigma}\bm{V}^T\bm{x}\\ &=\bm{x}^T\bm{V}\bm{\Sigma}^T\bm{\Sigma}\bm{V}^T\bm{x}\\ &=\bm{x}^T\bm{V}\begin{bmatrix} \sigma_1^2&&&\\ &\ddots&&\\ &&\sigma_k^2&\\ &&&\bm{0}_{n-k}\\ \end{bmatrix}\bm{V}^T\bm{x} \end{aligned}
e(x)=xTATAx=xTVΣTUUTΣVTx=xTVΣTΣVTx=xTV⎣⎢⎢⎡σ12⋱σk20n−k⎦⎥⎥⎤VTx
可以看出此时该最小二乘存在 n − k n-k n−k维的零空间,前 k k k维可以按同样的方法确定,而后 n − k n-k n−k维则是自由变量,可以任意变化。