本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考: 在线Latex公式
本章内容
对应书本章节 | 主要学习内容 | 习目标 |
---|---|---|
矩阵奇异值分解基本定理 | 构造法证明的3步骤 | 掌握矩阵奇异值分解过程 |
正交变换 | 正交补空间的性质 | 理解正交补空间的秩与相关运算 |
奇异值与特征向量的关系 | 正交特征向量的构造及对奇异值的影响 | 掌握奇异值的求法与数学性质 |
奇异值分解的案例运算 | 简单与复杂矩阵的奇异值分解简化法 | 理解奇异值分解的实际意义 |
奇异值分解基本定理
前提假设
设
A
A
A为一
m
×
n
m\times n
m×n实矩阵,
A
∈
R
m
×
n
A\in R_{m\times n}
A∈Rm×n,则存在A的奇异值分解:
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT
这里
m
≥
n
m\ge n
m≥n,如果
m
<
n
m<n
m<n则可以把矩阵进行转置:
A
T
=
U
Σ
V
T
A
=
V
Σ
U
T
A^T=U\Sigma V^T\\ A=V\Sigma U^T
AT=UΣVTA=VΣUT
其中U与V分别是m阶与n阶正交矩阵,
Σ
\Sigma
Σ是
m
×
n
m\times n
m×n矩形对角矩阵,对角线元素均为非负实数,依次按降序排列。
证明
不妨设
m
≥
n
m\ge n
m≥n,
m
<
n
m<n
m<n时矩阵仍能化简为行满秩的形式,可类似证明。
1、确定V和
Σ
\Sigma
Σ
由于A是
m
×
n
m\times n
m×n实矩阵,则矩阵
A
T
A
A^TA
ATA是n阶实对称矩阵。
特征值都是实数,存在n阶正交实矩阵V实现
A
T
A
A^TA
ATA的对角化,使得
V
T
(
A
T
A
)
V
=
D
V^T(A^TA)V=D
VT(ATA)V=D成立
其中D是n阶对角矩阵,对角线元素依次为
A
T
A
A^TA
ATA的特征值降序排列组成(对角线元素个数为k个,
k
=
r
a
n
k
(
A
T
A
)
k=rank(A^TA)
k=rank(ATA))。
上节内容:
合理排列正交矩阵V的列向量顺序,使得相似对角化后对应的的特征值依次降序排列。
分别计算特征值平方根,即为矩阵A的各奇异值。
λ
1
≥
λ
2
≥
⋯
≥
λ
n
≥
0
\lambda_1\ge\lambda_2\ge\cdots\ge\lambda_n\ge0
λ1≥λ2≥⋯≥λn≥0
记矩阵A的秩为r,即rank(A)=r,那么矩阵
A
T
A
A^TA
ATA的秩也是r。
σ
i
=
λ
i
,
i
=
1
,
2
,
⋯
,
n
\sigma_i=\sqrt{\lambda_i},i=1,2,\cdots,n
σi=λi,i=1,2,⋯,n
σ
i
=
\sigma_i=
σi=是矩阵分解中
Σ
\Sigma
Σ对角线上的元素
验证特征值非负
设
λ
\lambda
λ是
A
T
A
A^TA
ATA的一个特征值,x是对应于
λ
\lambda
λ的特征向量,则
∣
∣
A
x
∣
∣
2
=
x
T
A
T
A
x
=
λ
x
T
x
=
λ
∣
∣
x
∣
∣
2
||Ax||^2=x^TA^TAx=\lambda x^Tx=\lambda ||x||^2
∣∣Ax∣∣2=xTATAx=λxTx=λ∣∣x∣∣2
因此推出:
λ
=
∣
∣
A
x
∣
∣
2
∣
∣
x
∣
∣
2
≥
0
\lambda=\cfrac{||Ax||^2}{ ||x||^2}\ge0
λ=∣∣x∣∣2∣∣Ax∣∣2≥0
A
T
A
A^TA
ATA是
n
×
n
n\times n
n×n的实对称矩阵,故A的秩等于正特征值的数目,因此:
λ
1
≥
λ
2
≥
⋯
≥
λ
r
>
0
,
λ
r
+
1
=
λ
r
+
2
=
⋯
=
λ
n
=
0
\lambda_1\ge\lambda_2\ge\cdots\ge\lambda_r>0,\lambda_{r+1}=\lambda_{r+2}=\cdots=\lambda_{n}=0
λ1≥λ2≥⋯≥λr>0,λr+1=λr+2=⋯=λn=0
因此奇异值的大小关系为:
σ
1
≥
σ
2
≥
⋯
≥
σ
r
>
0
,
σ
r
+
1
=
σ
r
+
2
=
⋯
=
σ
n
=
0
\sigma_1\ge\sigma_2\ge\cdots\ge\sigma_r>0,\sigma_{r+1}=\sigma_{r+2}=\cdots=\sigma_{n}=0
σ1≥σ2≥⋯≥σr>0,σr+1=σr+2=⋯=σn=0
因此特征向量也可以分为两个部分,定义:
V
1
=
[
v
1
v
2
⋯
v
r
]
,
V
2
=
[
v
r
+
1
v
r
+
2
⋯
v
n
]
V_1=[v_1v_2\cdots v_r],V_2=[v_{r+1}v_{r+2}\cdots v_{n}]
V1=[v1v2⋯vr],V2=[vr+1vr+2⋯vn]
其中
v
1
v
2
⋯
v
r
v_1v_2\cdots v_r
v1v2⋯vr为
A
T
A
A^TA
ATA的正特征值对应的特征向量,由于特征向量维数等于原矩阵的秩,故
v
r
+
1
v
r
+
2
⋯
v
n
v_{r+1}v_{r+2}\cdots v_{n}
vr+1vr+2⋯vn为0特征值对应的特征向量,合并
V
1
,
V
2
V_1,V_2
V1,V2为矩阵V:
V
=
[
V
1
V
2
]
V=[V_1\space V_2]
V=[V1 V2]
即得矩阵A奇异值分解中的n阶正交矩阵V。
记对角矩阵:
Σ
1
=
[
σ
1
σ
2
⋱
σ
r
]
\Sigma_1=\begin{bmatrix} \sigma_1 & & & \\ & \sigma_2 & & \\ & & \ddots & \\ & & &\sigma_r \end{bmatrix}
Σ1=⎣⎢⎢⎡σ1σ2⋱σr⎦⎥⎥⎤
Σ
1
\Sigma_1
Σ1是r阶对角矩阵,其对角线元素依次降序排列:
σ
1
,
⋯
,
σ
r
\sigma_1,\cdots,\sigma_r
σ1,⋯,σr
因此拓展矩阵的维数得到
m
×
n
m\times n
m×n矩形对角矩阵
Σ
\Sigma
Σ可表示为:
Σ
=
[
Σ
1
0
0
0
]
\Sigma=\begin{bmatrix} \Sigma_1 &0 \\ 0 & 0 \end{bmatrix}
Σ=[Σ1000]
即得矩阵A奇异值分解中的
m
×
n
m\times n
m×n矩形对角矩阵
2、计算矩阵U
构造m阶正交实矩阵
记向量:
u
j
=
1
σ
j
A
v
j
,
j
=
1
,
2
,
⋯
,
r
U
1
=
[
u
1
,
u
2
,
⋯
,
u
r
]
u_j=\cfrac{1}{\sigma_j}Av_j,j=1,2,\cdots,r\\ U_1=[u_1,u_2,\cdots,u_r]
uj=σj1Avj,j=1,2,⋯,rU1=[u1,u2,⋯,ur]
则有
A
V
1
=
U
1
Σ
1
AV_1=U_1\Sigma_1
AV1=U1Σ1
U
1
U_1
U1的列向量可视为一组标准正交基,因为:
记
{
u
r
+
1
,
u
r
+
2
,
⋯
,
u
m
}
\{u_{r+1},u_{r+2},\cdots,u_m\}
{ur+1,ur+2,⋯,um}为A的正交线性空间
N
(
A
T
)
N(A^T)
N(AT)的一组标准正交基(使用施密特正交扩展),若记
U
2
=
[
u
r
+
1
,
u
r
+
2
,
⋯
,
u
m
]
U_2=[u_{r+1},u_{r+2},\cdots,u_m]
U2=[ur+1,ur+2,⋯,um]
则
U
=
[
U
1
U
2
]
U=[U_1\quad U_2]
U=[U1U2]
u
1
,
u
2
,
⋯
,
u
m
u_{1},u_{2},\cdots,u_m
u1,u2,⋯,um构成了
R
m
R^m
Rm的一组标准正交基。因此U为m阶正交矩阵。
U即为矩阵A奇异值分解中的m阶正交矩阵。
3、证明
U
Σ
V
T
=
A
U\Sigma V^T=A
UΣVT=A
由前述结论,可得矩阵乘积:
U
Σ
V
T
=
[
U
1
U
2
]
[
Σ
1
0
0
0
]
[
v
1
T
v
k
T
]
=
U
1
Σ
1
V
1
T
=
A
1
V
1
V
1
T
=
A
U\Sigma V^T=[U_1\quad U_2]\begin{bmatrix} \Sigma_1 &0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} v_1^T \\ v_k^T \end{bmatrix}\\ =U_1\Sigma_1V_1^T\\ =A_1V_1V_1^T\\ =A
UΣVT=[U1U2][Σ1000][v1TvkT]=U1Σ1V1T=A1V1V1T=A
例题
上面理论部分感觉推得有点生硬,具体还是去看下数学基础部分:https://blog.csdn.net/oldmao_2001/article/details/103614310
下面看例子
试对下面5×4矩阵A进行奇异值分解
A
=
[
1
0
0
0
0
0
0
4
0
3
0
0
0
0
0
0
2
0
0
0
]
A=\begin{bmatrix} 1 &0&0&0 \\ 0 & 0& 0& 4\\ 0 & 3& 0& 0\\ 0 & 0& 0& 0\\ 2 & 0& 0& 0\\ \end{bmatrix}
A=⎣⎢⎢⎢⎢⎡10002003000000004000⎦⎥⎥⎥⎥⎤
解:
B
=
A
T
A
=
[
5
0
0
0
0
9
0
0
0
0
0
0
0
0
0
16
]
B=A^TA=\begin{bmatrix} 5&0&0&0 \\ 0 & 9& 0&0 \\ 0 & 0& 0&0\\ 0 & 0& 0&16 \end{bmatrix}
B=ATA=⎣⎢⎢⎡50000900000000016⎦⎥⎥⎤的特征值从大到小是4,3,
5
\sqrt5
5,0,对应的特征向量分别是:
[
0
0
0
1
]
,
[
0
1
0
0
]
,
[
1
0
0
0
]
,
[
0
0
1
0
]
\begin{bmatrix} 0\\ 0\\ 0\\ 1 \end{bmatrix},\begin{bmatrix} 0\\ 1\\ 0\\ 0 \end{bmatrix},\begin{bmatrix} 1\\ 0\\ 0\\ 0 \end{bmatrix},\begin{bmatrix} 0\\ 0\\ 1\\ 0 \end{bmatrix}
⎣⎢⎢⎡0001⎦⎥⎥⎤,⎣⎢⎢⎡0100⎦⎥⎥⎤,⎣⎢⎢⎡1000⎦⎥⎥⎤,⎣⎢⎢⎡0010⎦⎥⎥⎤
后面就是求
Σ
−
1
\Sigma^{-1}
Σ−1,然后带公式求U,由于构造正交矩阵不唯一,结果也不唯一。