本文目录
2021-11-9 分割线
麻烦各位看官大大们多多点赞哦,让更多的人看到这篇文章~
以下是原文:
SVD专题2 线性映射的奇异值分解——矩阵形式的推导
前言 Preface
本讲不能和本系列的第1讲:SVD专题1 算子的奇异值分解——矩阵形式的推导_夏小正的鲜小海的博客-CSDN博客 采取同样的讲解策略,原因是线性映射不同于算子,涉及到维度的变化,倘若对线性代数的几个基本定理没有理解的话,很难看懂每一步都是想做什么。
几点说明:
第一点,为什么在第1讲的推导中用的是符号 T T T ,这里是符号 A A A 呢?
一方面是我在写这部分内容时参考的两大资料来源:線代啟示錄 和 一份 CMU 的课程讲义 Computer Science Theory for the Information Age, Spring 2012. 都是用的 A A A ,另一方面是,符号 T T T 其实是沿袭了 “Linear Algebra Done Right” 中将其视作算子或线性映射的习惯表达,而 SVD 在具体应用中基本都是在和矩阵打交道的,而用 T T T 来表达矩阵的很少。这里为了与人们的习惯用法保持一致,故使用记号 A A A 。
第二点,下面的出现的向量空间默认是复向量空间或复内积向量空间。
特别注意,本节中出现的 A A A 有两重含义:当把 A A A 看作代数语言,它表示一个抽象的线性映射;当使用矩阵语言,把 A A A 视作该线性映射对应的矩阵表述,那么 A A A 就是 C M × N \mathbb{C}^{M\times N} CM×N 中的一个实实在在的矩阵。
预备知识 Prerequisite
2.1 秩-零定理 Rank-Nullity Theorem
作为后面推导的基石,一定要搞懂这个线性代数中最基本的一大定理。
考虑由 n n n 维复向量空间 V V V 到 m m m 维复向量空间 M M M 的一个线性映射 A : V ↦ W A:V \mapsto W A:V↦W。我们把 V V V 中那些被 A A A 映射到 W W W 中 0 \mathbf{0} 0 向量的全体向量,叫做 A A A 的零空间 null A \operatorname{null}{A} nullA (或称核空间 ker A \operatorname{ker}{A} kerA ),把 V V V 中所有向量都映射到 W W W 中去,相应的被映射的值域,叫做 A A A 的值空间 range A \operatorname{range}{A} rangeA 。不难证明, ker A \operatorname{ker}{A} kerA 是 V V V 的一个子空间, range A \operatorname{range}{A} rangeA 是 W W W 的一个子空间,并且称值空间 range A \operatorname{range}{A} rangeA 的维度为线性映射 A A A 的秩,记作 rank A \operatorname{rank}{A} rankA (不要忘了,子空间的维度 = 基中线性独立的向量的个数)。
秩零定理告诉我们, V V V 的维度,一定等于 ker A \operatorname{ker}{A} kerA 的维度与 range A \operatorname{range}{A} rangeA 的维度之和,即:
n = dim V = dim ker A + dim range A n = \operatorname{dim}{V} = \operatorname{dim}{\operatorname{ker}{A}} + \operatorname{dim}{\operatorname{range}{A}}\\ n=dimV=dimkerA+dimrangeA
这个定理的证明是很重要的,蕴含了一个很有用的想法,这个想法将作为后续 SVD 推导的出发点,有助于直观理解。现在给出该定理在代数视角下的证明。
如果设 ker A \operatorname{ker}{A} kerA 的维度是 p p p ,一组基为 { u 1 , . . . , u p } \{\mathbf{u_1}, ..., \mathbf{u_p}\} { u1,...,up} ,那么我们可以在这组基的基础上将其扩充成 V V V 的一组基 { u 1 , . . . , u p , v 1 , . . . , v r } \{\mathbf{u_1}, ..., \mathbf{u_p}, \mathbf{v_1}, ..., \mathbf{v_r}\} { u1,...,up,v1,...,vr} ,即我们又新增了 r r r 个线性独立的向量。那么 V V V 的维度 n = p + r n=p+r n=p+r 。其实不难看出,这里其实相当于构造出来了一个子空间 span { v 1 , . . . , v r } \operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\} span{ v1,...,vr} ,这个子空间把 { v 1 , . . . , v r } \{\mathbf{v_1}, ..., \mathbf{v_r}\} { v1,...,vr} 作为它的基。现在 V V V 中就有两个子空间了,分别是 ker A \operatorname{ker}{A} kerA 和 span { v 1 , . . . , v r } \operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\} span{ v1,...,vr} 。它们刚好凑成了二元直和分解, ker A ⊕ span { v 1 , . . . , v r } = V \operatorname{ker}{A} \oplus \operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}=V kerA⊕span{ v1,...,vr}=V 。直和在这里可以简单的理解为“互不隶属”。
既然有了一组基 { u 1 , . . . , u p , v 1 , . . . , v r } \{\mathbf{u_1}, ..., \mathbf{u_p}, \mathbf{v_1}, ..., \mathbf{v_r}\} {
u1,...,up,v1,...,vr} ,很自然的想法是 V V V 中的每一个向量 v \mathbf{v} v 都可以写为基的线性组合:
A v = a 1 u 1 + ⋯ + a p u p + b 1 v 1 + ⋯ + b r v r = b 1 A v 1 + ⋯ + b r A v r \begin{aligned} A\mathbf{v}&=a_1\mathbf{u_1}+\cdots+a_p\mathbf{u_p}+ b_1\mathbf{v_1}+\cdots+b_r\mathbf{v_r} \\ &=b_1A\mathbf{v_1}+\cdots+b_rA\mathbf{v_r} \end{aligned}\\ Av=a1u1+⋯+apup+b1v1+⋯+brvr=b1Av1+⋯+brAvr
第二个等号成立的原因是 A A A 把 u 1 \mathbf{u_1} u1 到 u p \mathbf{u_p} up 都给映射为 W W W 中的 0 \mathbf{0} 0 向量了,或者说每个 u i \mathbf{u_i} ui 都在 ker A \operatorname{ker}{A} kerA 中。
上式说明 range A \operatorname{range}{A} rangeA 其实就是 span { b 1 A v 1 + ⋯ + b r A v r } \operatorname{span}\{b_1A\mathbf{v_1}+\cdots+b_rA\mathbf{v_r}\} span{ b1Av1+⋯+brAvr}。如果能够证明 { A v 1 , . . . , A v r } \{A\mathbf{v_1}, ..., A\mathbf{v_r}\} { Av1,...,Avr} 是线性独立集,那么 range A \operatorname{range}{A} rangeA 的维度恰好就为 r r r ,定理就得证了。下面证明 { A v 1 , . . . , A v r } \{A\mathbf{v_1}, ..., A\mathbf{v_r}\} { Av1,...,Avr} 的确是线性独立集,即 { A v 1 , . . . , A v r } \{A\mathbf{v_1}, ..., A\mathbf{v_r}\} { Av1,...,Avr} 是 range A \operatorname{range}{A} rangeA 的一组基。
令: c 1 A v 1 + ⋯ + c r A v r = 0 c_1 A\mathbf{v_1}+\cdots+ c_r A\mathbf{v_r}=0 c1Av1+⋯+crAvr=0 ,有:
c 1 A v 1 + ⋯ + c r A v r = 0 ⟺ A ( c 1 v 1 + ⋯ + c r v r ) = 0 \begin{aligned} & c_1 A\mathbf{v_1}+\cdots+ c_r A\mathbf{v_r}= \mathbf{0} \\ \Longleftrightarrow \ & A \left( c_1 \mathbf{v_1}+\cdots+ c_r \mathbf{v_r} \right)= \mathbf{0} \end{aligned}\\ ⟺ c1Av1+⋯+crAvr=0A(c1v1+⋯+crvr)=0
意味着 c 1 v 1 + ⋯ + c r v r c_1 \mathbf{v_1}+\cdots+ c_r \mathbf{v_r} c1v1+⋯+crvr 在 ker A \operatorname{ker}{A} ker