SVD专题1 算子的奇异值分解——矩阵形式的推导
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言 Preface
《Linear Algebra Done Right》一书在讲述算子的奇异值分解时并未给出其矩阵分解形式,仅是在结构上予以阐明:算子奇异值分解的核心在于使用两组基。以下讨论旨在总结奇异值分解推导的整个流程并给出算子奇异值分解的矩阵形式。
几点说明
- 本文讨论的范围局限于算子的奇异值分解,而非更广泛的线性映射的奇异值分解。
- 本文的叙述方式不同于通常教材的做法,即并不事先罗列为了得到目标结论所需的预备知识,而是一环扣一环反向补充每一个步骤所需的知识。
- 为方便讨论,以下涉及到的算子均默认是复向量空间 V 中的算子,故不在每句话中重复指明复向量空间 V 上的算子
预备知识 Prerequisite
不同教材中给出算子奇异值分解的方式不同,本文将在算子极分解的基础上引出奇异值分解。
1.1 极分解 Polar Decomposition
算子极分解:一个算子 T 总是可以分解成一个等距同构 S 和一个正算子 T∗T 的乘积。
T=ST∗T
现在我们遇到了两个新概念,等距同构 S 和正算子 T∗T ,我们先来讨论前者。
1.2 等距同构 Unitary Operator
1.2.1 什么是等距同构
我们先给出等距同构的定义:若算子 S 能够保持范数不变,则称 S 为等距同构,即:
∣∣Sv∣∣=∣∣v∣∣
等距同构 S 是怎样刻画的呢?其实就是在问一个算子 S 是等距同构的话有哪些等价条件呢?这里我们列举以下有助于理解我们后续推导的等价关系:
1.2.2 等距同构的刻画
算子 S 是等距同构 ⟺
(1)向量空间中的规范正交基 {e1,⋯,en} 被 S 作用后仍然是规范正交基 {Se1,⋯,Sen} ,不妨记作 {f1,⋯,fn} 。
(2)S∗S=SS∗=I,orS∗=S
注意观察,(2)其实告诉我们了 S 是一个正规算子,在此基础上多了一些别的性质,那么我们就可以在先前已经能够完全描述的正规算子的基础上来描述 S 。
重要补充:正规算子与复谱定理
正规算子:若算子 T 和它的伴随可交换,称算子 T 为正规算子,即:T∗T=TT∗
之所以我们能够完全描述正规算子,正是由于复谱定理:复向量空间中的正规算子 T 可以被一组规范正交基给对角化。
小声哔哔时间:以后我们就清楚了,凡是遇到了正规算子,就知道它可以被一组规范正交基给对角化,我们要训练自己的小脑瓜,直到把这句话刻在脑子里,变成一种本能反应。
1.2.3 等距同构的描述
等距同构 S 的描述: S 可以被一组规范正交基给对角化,且相应的本征值的绝对值为1。
请拿出小本本记住这句话的前半部分,我们后面会用到的:即 S 可以被一组规范正交基给对角化。
1.3 正算子 Positive Operator
再来谈一谈正算子的刻画及其描述。
1.3.1 什么是正算子
我们先给出正算子的定义:若自伴算子 T 满足 ⟨Tv,v⟩≥0 恒成立,则称 T 是正算子。
温馨小提示:由于自伴算子满足 T∗=T ,所以自伴算子都是正规算子。(^_^)
1.3.2 正算子的刻画
为了方便理解和记忆,这里先摆出书中重要的一种类比关系:
正规算子⇌实数
正算子 ⇌非负实数
算子 T 是正算子 ⟺
(1) T 是自伴算子且所有本征值非负
(2) T 有唯一的正平方根,可以把它记作 T
等等!算子还有开平方这一说?
答曰:小笨蛋,我上面的类比关系白写啦?非负实数可以开个平方算算平方根,正算子就不能有啦?
补:算子的平方根
如果算子 R 满足: R2=T ,则称算子 R 为算子 T 的平方根。
1.3.3 正算子的描述
正算子 T 的描述: T 可以被一组规范正交基给对角化,且相应的本征值非负。
请再次掏出小本本吧,同样记下这句话的前半部分,即:正算子 T 可以被一组规范正交基给对角化。
好了,现在我们可以解释一下为什么 T∗T 是正算子啦!
我们说,对于复向量空间上的任意算子 T 而言, T∗T 都是正算子(不信的话用定义法去验证一下哈~),由先前我们对正算子的刻画:可以用 T∗T 来表示 T∗T 唯一的那个正平方根(即这个平方根也是一个正算子)。
奇异值分解 Singular Value Decomposition(SVD)
极分解把复向量空间上的任意算子 T 给分解成了一个等距同构 S 和一个正算子 T∗T 的乘积。掏出我们的小本本,看一看上面记下来的两句话:
(1) S 可以被一组规范正交基给对角化
(2) T∗T 可以被一组规范正交基给对角化
啊呀,我们猜想一下,不会那样巧合,使得两个算子都被同一组规范正交基给对角化了吧?没错,确实没那么巧,这意味着我们要对任意算子 T 使用两组基来描述啦!这就是奇异值分解的核心,即对算子采用了两组基来表示呀!先前我们的做法是涉及到算子的,都一般默认变换前后都使用同一组基。
步骤1
不管三七二十一,先找一组规范正交基把 T∗T 给对角化了,记这组规范正交基为 {e1,⋯,en} ,相应的本征值记作 {s1,⋯,sn}
T∗T[e1⋯en]=[T∗Te1⋯T∗Ten]=[s1e1⋯snen]=[e1⋯en]⎣⎡s1⋱sn⎦⎤
步骤2
在上一步的基础上,左右两边同时左乘等距同构 S :
ST∗T[e1⋯en]=S[e1⋯en]⎣⎡s1⋱sn⎦⎤=[Se1⋯Sen]⎣⎡s1⋱sn⎦⎤=[f1⋯fn]⎣⎡s1⋱sn⎦⎤
回忆一下等距同构的刻画的(1),正是第三个等号成立的原因呀:规范正交基 {e1,⋯,en} 被 S 作用后仍然是规范正交基 {f1,⋯,fn} ,这样就出现了第二组基。
进一步化简:
T[e1⋯en]=[f1⋯fn]⎣⎡s1⋱sn⎦⎤
两边同时右乘 [e1⋯en]−1 ,得到:
T=[f1⋯fn]⎣⎡s1⋱sn⎦⎤[e1⋯en]−1
换用简单的大写符号来表示这些元素都明着写出来的矩阵,得到:
T=UΣV−1
结语 Epilogue
以下两点相当明显的事实值得挑明(因为这对刚接触的人来说可能并不那样显然):
(1) [e1⋯en]−1 ,即矩阵 V−1 就是等距同构的逆 S−1 的矩阵,由于 S−1=S∗ ,故上式中的 V−1 还可以写作 V∗ 。矩阵 V∗ 作用的目的在于(或称这个矩阵的“方向”在于)输入一个属于任意坐标系统的向量,给出该向量在规范正交基 {e1,⋯,en} 下的坐标系统的重新(等价)表述。
(2) [f1⋯fn] ,即矩阵 U 作用的目的在于,把原输入向量经算子 T 变换后的输出向量在规范正交基 {f1,⋯,fn} 下的坐标系统的重新(等价)表述,重新变回其在任意坐标系统下的等价表述。
由上述(1)中的等价关系,我们给出本文的最终目标,即复向量空间上算子奇异值分解最终的矩阵表述形式:
T=UΣV∗