奇异值分解(SVD)推导及相关数学知识补充
相关数学知识补充
矩阵的秩
定义
矩阵A中不为零的子式的最高阶数,称为矩阵A的秩,记作r(A)。零矩阵的秩为0。
性质
- 秩是一个正整数或0。
- 秩等于或小于矩阵的行数和列数。秩等于或小于矩阵的行数和列数。
- 当n×n矩阵A的秩等于n时,则称A是非奇异矩阵,或称A满秩。
- 若r(Am×n)<min{m,n},则称A是秩亏缺的。
- 若r(Am×n)=m(<n),则称矩阵A具有满行秩。
- 若r(Am×n)=n(<m),则称矩阵A具有满列秩。
- 任何矩阵A左乘满列秩矩阵或者右乘满行秩矩阵后,矩阵A的秩保持不变。
意义
「秩」是矩阵中所有行向量中极大线性代无关组的元素个数。
「秩」是图像经过矩阵变换之后的空间维度。
正交矩阵(orthogonal matrix)
定义
如果AAT = E或ATA = E,则n阶实矩阵A称为正交矩阵。
性质
若A是正交矩阵,则满足:
- AT,A-1与A*也是正交矩阵(其中 A* 是 A的共轭转置。);
- A的各行各列是单位向量且两两正交;
- (Ax,Ay)=(x,y) 其中x,y∈R;
- AT = A-1;
- 正交矩阵相似于对角矩阵。
SVD推导的相关引理
引理1
内容:假设A
ϵ
\epsilon
ϵ R
m
×
n
^{m\times n}
m×n, 则
A
T
A
与
A
A
T
A^T A与A A^T
ATA与AAT的特征值 (eigenvalue)非负。
证明:
假设
λ
\lambda
λ 为AT A的特征值,x是它对应的特征向量,即
A
T
A
x
=
λ
x
A^T Ax=\lambda x
ATAx=λx
由于
A
T
A
A^T A
ATA是 对称的,故
λ
\lambda
λ 是一个实数,因此我们有:
0
≦
(
A
x
,
A
x
)
=
(
A
x
)
T
(
A
x
)
=
x
T
A
T
A
x
=
x
T
λ
x
=
λ
x
T
x
0\leqq(Ax, Ax)=(Ax)^T(Ax)=x^TA^TAx=x^T\lambda x=\lambda x^Tx
0≦(Ax,Ax)=(Ax)T(Ax)=xTATAx=xTλx=λxTx
因为xTx > 0,因此我们可以得到
λ
≧
0
\lambda \geqq 0
λ≧0 。
同理,我们可以知道
A
A
T
A A^T
AAT的特征值也是非负的。
引理2
内容:假设A
ϵ
\epsilon
ϵ R
m
×
n
^{m\times n}
m×n, 则我们有r(A) = r(ATA) = r(AAT)。
证明:
要证明r(A) = r(ATA) = r(AAT),相当于证明Ax=0和ATAx=0有相同的解。
Ax=0
⇒
\Rightarrow
⇒ ATAx=0
ATAx=0
⇒
\Rightarrow
⇒ xTATAx=0
⇒
\Rightarrow
⇒ (Ax)TAx=0
⇒
\Rightarrow
⇒ Ax=0
由此,可以得到Ax=0
⇔
\Leftrightarrow
⇔ ATAx=0
Ax=0和ATAx=0有相同的解,故A与ATA核相等,所以秩相等可证。
引理3
内容:假设A
ϵ
\epsilon
ϵ R
m
×
n
^{m\times n}
m×n, ATA与AAT有相同的特征值。
证明:
假设
λ
\lambda
λ 为AT A的特征值,x是它对应的特征向量,即
A
T
A
x
=
λ
x
A^T Ax=\lambda x
ATAx=λx
则
A
T
A
x
=
λ
x
⇒
A
A
T
A
x
=
λ
A
x
⇒
A
A
T
y
=
λ
y
A^T Ax=\lambda x \Rightarrow AA^T Ax=\lambda Ax \Rightarrow AA^T y=\lambda y
ATAx=λx⇒AATAx=λAx⇒AATy=λy
故可证得ATA与AAT有相同的
λ
\lambda
λ。
引理4
内容:如果两个矩阵是彼此正交等价,那么它们的奇异值相同。
证明:
假设A ,B
ϵ
\epsilon
ϵ R
m
×
n
^{m\times n}
m×n, 彼此正交等价,则存在正交矩阵U
ϵ
\epsilon
ϵ R
m
×
m
^{m\times m}
m×m, V
ϵ
\epsilon
ϵ R
n
×
n
^{n\times n}
n×n, s.t. A=UBV.
若A,B彼此正交相似,则存在正交矩阵P,使得 P-1BP=A
ATA = (UBV)TUBV = VTBTUTUBV = VTBTBV = V-1BTBV
故可得到 ATA 与BTB彼此正交相似,因此它们有相同的
λ
\lambda
λ;
奇异值
σ
\sigma
σ =
λ
\sqrt \lambda
λ, 故两者的奇异值相同。
SVD推导
A = U
Σ
\Sigma
ΣVT
证明:
∵
\because
∵ ATA为对称矩阵(证:(ATA)T=AT(AT)T=ATA)
(对称矩阵性质:若A为对称矩阵,必存在正交矩阵,将其化为对角矩阵,且对角矩阵的对角元素即为特征值)
∴
\therefore
∴ ATA = X
λ
\lambda
λX-1
其
中
λ
=
(
λ
1
λ
2
⋱
λ
n
)
其中\lambda= \begin{pmatrix} \lambda_1 & \\ & \lambda_2& \\ & & \ddots & \\ & & & \lambda_n \\ \end{pmatrix}
其中λ=⎝⎜⎜⎛λ1λ2⋱λn⎠⎟⎟⎞
X-1ATAX =
λ
\lambda
λ
用V来替换X, 得到 V-1ATAV =
λ
\lambda
λ
∵
\because
∵矩阵V正交
∴
\therefore
∴V-1=VT
故 VTATAX =
λ
\lambda
λ =
(
Δ
2
0
0
0
)
\begin{pmatrix} \Delta^2&0 \\0&0\\ \end{pmatrix}
(Δ2000)
将V拆成V1和V2,其中V1
ϵ
\epsilon
ϵ R
n
×
r
^{n\times r}
n×r,V2
ϵ
\epsilon
ϵ R
n
×
n
−
r
^{n\times n-r}
n×n−r
则
(
V
1
V
2
)
\begin{pmatrix} V_1 \\V_2 \\ \end{pmatrix}
(V1V2)(ATA)(V_1,V_2) =
(
V
1
T
A
T
A
V
2
T
A
T
A
)
\begin{pmatrix} V_1^TA^TA\\V_2^TA^TA \\ \end{pmatrix}
(V1TATAV2TATA)(V_1,V_2) =
(
V
1
T
A
T
A
V
1
V
1
T
A
T
A
V
2
V
2
T
A
T
A
V
1
V
2
T
A
T
A
V
2
)
\begin{pmatrix} V_1^TA^TAV_1&V_1^TA^TAV_2\\V_2^TA^TA V_1&V_2^TA^TA V_2\\ \end{pmatrix}
(V1TATAV1V2TATAV1V1TATAV2V2TATAV2)=
(
Δ
2
0
0
0
)
\begin{pmatrix} \Delta^2&0 \\0&0\\ \end{pmatrix}
(Δ2000)
∴
\therefore
∴
V
2
T
A
T
A
V
1
=
0
V_2^TA^TA V_1=0
V2TATAV1=0
⇒
\Rightarrow
⇒ (AV2)TAV2=0
⇒
\Rightarrow
⇒AV2=0
Δ
2
=
V
1
T
A
T
A
V
1
=
(
A
V
1
)
T
A
V
1
\Delta^2 = V_1^TA^TAV_1 = (AV_1)^TAV_1
Δ2=V1TATAV1=(AV1)TAV1
设U1
ϵ
\epsilon
ϵ R
n
×
r
^{n\times r}
n×r , U1 = AV1
Δ
\Delta
Δ-1
U
1
T
U
1
=
(
Δ
−
1
)
T
V
1
T
A
T
A
V
1
Δ
−
1
=
Δ
−
1
Δ
2
Δ
−
1
=
E
r
U_1 ^TU_1=(\Delta^{-1})^TV_1^TA^T AV_1 \Delta^{-1} = \Delta^{-1}\Delta^2\Delta^{-1} = E^r
U1TU1=(Δ−1)TV1TATAV1Δ−1=Δ−1Δ2Δ−1=Er
这说明
U
1
U_1
U1各列为两两正交的单位向量(自身与自身内积为1)
同理,U也可以写成U = (U1,U2)
UTAV =
(
U
1
T
U
2
T
)
A
(
V
1
,
V
2
)
\begin{pmatrix} U_1^T\\U_2^T \\ \end{pmatrix}A(V_1,V_2)
(U1TU2T)A(V1,V2) =
(
U
1
T
A
V
1
U
1
T
A
V
2
U
2
T
A
V
1
U
2
T
A
V
2
)
\begin{pmatrix} U_1^TAV_1&U_1^TAV_2\\U_2^TAV_1&U_2^TAV_2 \\ \end{pmatrix}
(U1TAV1U2TAV1U1TAV2U2TAV2) =
(
U
1
T
U
Δ
U
1
T
(
A
V
2
)
U
2
T
U
Δ
U
2
T
(
A
V
2
)
)
\begin{pmatrix} U_1^TU\Delta&U_1^T(AV_2)\\U_2^TU\Delta&U_2^T(AV_2) \\ \end{pmatrix}
(U1TUΔU2TUΔU1T(AV2)U2T(AV2)) =
(
Δ
0
0
0
)
\begin{pmatrix} \Delta&0 \\0&0\\ \end{pmatrix}
(Δ000)
因此,可以得到:
A
=
U
U
T
A
V
V
T
=
U
(
Δ
0
0
0
)
V
T
A = UU^TAVV^T = U\begin{pmatrix} \Delta&0 \\0&0\\ \end{pmatrix}V^T
A=UUTAVVT=U(Δ000)VT
故SVD得证。