SVD专题1 算子的奇异值分解——矩阵形式的推导
SVD专题1 算子的奇异值分解——矩阵形式的推导
前言 Preface
《Linear Algebra Done Right》一书在讲述算子的奇异值分解时并未给出其矩阵分解形式,仅是在结构上予以阐明:算子奇异值分解的核心在于使用两组基。以下讨论旨在总结奇异值分解推导的整个流程并给出算子奇异值分解的矩阵形式。
几点说明
- 本文讨论的范围局限于算子的奇异值分解,而非更广泛的线性映射的奇异值分解。
- 本文的叙述方式不同于通常教材的做法,即并不事先罗列为了得到目标结论所需的预备知识,而是一环扣一环反向补充每一个步骤所需的知识。
- 为方便讨论,以下涉及到的算子均默认是复向量空间 \(V\) 中的算子,故不在每句话中重复指明复向量空间 \(V\) 上的算子
预备知识 Prerequisite
不同教材中给出算子奇异值分解的方式不同,本文将在算子极分解的基础上引出奇异值分解。
1.1 极分解 Polar Decomposition
算子极分解:一个算子 \(T\) 总是可以分解成一个等距同构 \(S\) 和一个正算子 \(\sqrt{T^*T}\) 的乘积。
\]
现在我们遇到了两个新概念,等距同构 \(S\) 和正算子 \(\sqrt{T^*T}\) ,我们先来讨论前者。
1.2 等距同构 Unitary Operator
1.2.1 什么是等距同构
我们先给出等距同构的定义:若算子 \(S\) 能够保持范数不变,则称 \(S\) 为等距同构,即:
\]
等距同构 \(S\) 是怎样刻画的呢?其实就是在问一个算子 \(S\) 是等距同构的话有哪些等价条件呢?这里我们列举以下有助于理解我们后续推导的等价关系:
1.2.2 等距同构的刻画
算子 \(S\) 是等距同构 \(\Longleftrightarrow\)
(1)向量空间中的规范正交基 \(\{e_1, \cdots, e_n \}\) 被 \(S\) 作用后仍然是规范正交基 \(\{Se_1, \cdots, Se_n \}\) ,不妨记作 \(\{f_1, \cdots, f_n \}\) 。
(2)\(S^*S = SS^* = I , \quad or \quad S^* = 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\) 满足 \(\left \langle Tv, v \right\rangle \ge 0\) 恒成立,则称 \(T\) 是正算子。
温馨小提示:由于自伴算子满足 \(T^* = T\) ,所以自伴算子都是正规算子。(^_^)
1.3.2 正算子的刻画
为了方便理解和记忆,这里先摆出书中重要的一种类比关系:
\(正规算子\rightleftharpoons 实数\)
\(正算子 \ \ \ \ \rightleftharpoons 非负实数\)
算子 \(T\) 是正算子 \(\Longleftrightarrow\)
(1) \(T\) 是自伴算子且所有本征值非负
(2) \(T\) 有唯一的正平方根,可以把它记作 \(\sqrt{T}\)
等等!算子还有开平方这一说?
答曰:小笨蛋,我上面的类比关系白写啦?非负实数可以开个平方算算平方根,正算子就不能有啦?
补:算子的平方根
如果算子 \(R\) 满足: \(R^2 = T\) ,则称算子 \(R\) 为算子 \(T\) 的平方根。
1.3.3 正算子的描述
正算子 \(T\) 的描述: \(T\) 可以被一组规范正交基给对角化,且相应的本征值非负。
请再次掏出小本本吧,同样记下这句话的前半部分,即:正算子 \(T\) 可以被一组规范正交基给对角化。
好了,现在我们可以解释一下为什么 \(\sqrt{T^*T}\) 是正算子啦!
我们说,对于复向量空间上的任意算子 \(T\) 而言, \(T^*T\) 都是正算子(不信的话用定义法去验证一下哈~),由先前我们对正算子的刻画:可以用 \(\sqrt{T^*T}\) 来表示 \(T^*T\) 唯一的那个正平方根(即这个平方根也是一个正算子)。
奇异值分解 Singular Value Decomposition(SVD)
极分解把复向量空间上的任意算子 \(T\) 给分解成了一个等距同构 \(S\) 和一个正算子 \(\sqrt{T^*T}\) 的乘积。掏出我们的小本本,看一看上面记下来的两句话:
(1) \(S\) 可以被一组规范正交基给对角化
(2) \(\sqrt{T^*T}\) 可以被一组规范正交基给对角化
啊呀,我们猜想一下,不会那样巧合,使得两个算子都被同一组规范正交基给对角化了吧?没错,确实没那么巧,这意味着我们要对任意算子 \(T\) 使用两组基来描述啦!这就是奇异值分解的核心,即对算子采用了两组基来表示呀!先前我们的做法是涉及到算子的,都一般默认变换前后都使用同一组基。
步骤1
不管三七二十一,先找一组规范正交基把 \(\sqrt{T^*T}\) 给对角化了,记这组规范正交基为 \(\{e_1, \cdots, e_n \}\) ,相应的本征值记作 \(\{s_1, \cdots, s_n \}\)
\sqrt{T^*T}
\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}
&= \begin{bmatrix} \sqrt{T^*T}e_1 \cdots \sqrt{T^*T}e_n \end{bmatrix} \\
&= \begin{bmatrix} s_1e_1 \cdots s_ne_n \end{bmatrix} \\
&= \begin{bmatrix} e_1 \cdots e_n \end{bmatrix} \begin{bmatrix} s_1 \\ & \ddots \\ & & s_n \\ \end{bmatrix}
\end{aligned}\\
\]
步骤2
在上一步的基础上,左右两边同时左乘等距同构 \(S\) :
S \sqrt{T^*T}
\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}
&= S \begin{bmatrix} e_1 \cdots e_n \end{bmatrix} \begin{bmatrix} s_1 \\ & \ddots \\ & & s_n \\ \end{bmatrix} \\
&= \begin{bmatrix} Se_1 \cdots Se_n \end{bmatrix} \begin{bmatrix} s_1 \\ & \ddots \\ & & s_n \\ \end{bmatrix} \\
&= \begin{bmatrix} f_1 \cdots f_n \end{bmatrix} \begin{bmatrix} s_1 \\ & \ddots \\ & & s_n \\ \end{bmatrix}
\end{aligned}\\
\]
回忆一下等距同构的刻画的(1),正是第三个等号成立的原因呀:规范正交基 \(\{e_1, \cdots, e_n \}\) 被 \(S\) 作用后仍然是规范正交基 \(\{f_1, \cdots, f_n \}\) ,这样就出现了第二组基。
进一步化简:
T \begin{bmatrix}e_1 \cdots e_n \end{bmatrix}
&= \begin{bmatrix} f_1 \cdots f_n \end{bmatrix} \begin{bmatrix} s_1 \\ & \ddots \\ & & s_n \\ \end{bmatrix}
\end{aligned}\\
\]
两边同时右乘 \(\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}\) ,得到:
= \begin{bmatrix} f_1 \cdots f_n \end{bmatrix} \begin{bmatrix} s_1 \\ & \ddots \\ & & s_n \\ \end{bmatrix} \begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}\\
\]
换用简单的大写符号来表示这些元素都明着写出来的矩阵,得到:
\]
结语 Epilogue
以下两点相当明显的事实值得挑明(因为这对刚接触的人来说可能并不那样显然):
(1) \(\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}\) ,即矩阵 \(V^{-1}\) 就是等距同构的逆 \(S^{-1}\) 的矩阵,由于 \(S^{-1} = S^*\) ,故上式中的 \(V^{-1}\) 还可以写作 \(V^*\) 。矩阵 \(V^*\) 作用的目的在于(或称这个矩阵的“方向”在于)输入一个属于任意坐标系统的向量,给出该向量在规范正交基 \(\{e_1, \cdots, e_n \}\) 下的坐标系统的重新(等价)表述。
(2) \(\begin{bmatrix} f_1 \cdots f_n \end{bmatrix}\) ,即矩阵 \(U\) 作用的目的在于,把原输入向量经算子 \(T\) 变换后的输出向量在规范正交基 \(\{f_1, \cdots, f_n \}\) 下的坐标系统的重新(等价)表述,重新变回其在任意坐标系统下的等价表述。
由上述(1)中的等价关系,我们给出本文的最终目标,即复向量空间上算子奇异值分解最终的矩阵表述形式:
\]
SVD专题1 算子的奇异值分解——矩阵形式的推导的更多相关文章
- 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理
0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...
- 数据降维技术(2)—奇异值分解(SVD)
上一篇文章讲了PCA的数据原理,明白了PCA主要的思想及使用PCA做数据降维的步骤,本文我们详细探讨下另一种数据降维技术—奇异值分解(SVD). 在介绍奇异值分解前,先谈谈这个比较奇怪的名字:奇异值分 ...
- SVD(奇异值分解)小结
注:奇异值分解在数据降维中有较多的应用,这里把它的原理简单总结一下,并且举一个图片压缩的例子,最后做一个简单的分析,希望能够给大家带来帮助. 1.特征值分解(EVD) 实对称矩阵 在理角奇异值分解之前 ...
- 关于SVD(Singular Value Decomposition)的那些事儿
SVD简介 SVD不仅是一个数学问题,在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层 ...
- HAWQ + MADlib 玩转数据挖掘之(五)——奇异值分解实现推荐算法
一.奇异值分解简介 奇异值分解简称SVD(singular value decomposition),可以理解为:将一个比较复杂的矩阵用更小更简单的三个子矩阵的相乘来表示,这三个小矩阵描述了大矩阵重要 ...
- 数据预处理:PCA,SVD,whitening,normalization
数据预处理是为了让算法有更好的表现,whitening.PCA.SVD都是预处理的方式: whitening的目标是让特征向量中的特征之间不相关,PCA的目标是降低特征向量的维度,SVD的目标是提高稀 ...
- SVD分解.潜语义分析.PythonCode
原文链接:http://www.cnblogs.com/appler/archive/2012/02/02/2335886.html 原始英文链接:http://www.puffinwarellc.c ...
- 词向量(one-hot/SVD/NNLM/Word2Vec/GloVe)
目录 词向量简介 1. 基于one-hot编码的词向量方法 2. 统计语言模型 3. 从分布式表征到SVD分解 3.1 分布式表征(Distribution) 3.2 奇异值分解(SVD) 3.3 基 ...
- 浅谈 PCA与SVD
前言 在用数据对模型进行训练时,通常会遇到维度过高,也就是数据的特征太多的问题,有时特征之间还存在一定的相关性,这时如果还使用原数据训练模型,模型的精度会大大下降,因此要降低数据的维度,同时新数据的特 ...
随机推荐
- CF848E-Days of Floral Colours【dp,分治NTT】
正题 题目链接:https://www.luogu.com.cn/problem/CF848E 题目大意 \(2n\)个花排成一个圆环,\(n\)种颜色每种两个,要求两个相同颜色之间最小距离为\(1, ...
- 分享一下我的Python自学历程,分享下我自己学习方法
其实关于编程这事儿没有接触的那么早,大一的时候没什么关注点,有一门课是vb,一天天的,就抄抄作业啥的就完事儿了.当时也觉的自己不是学编程的料,想着以后估摸也不会干开发相关的工作. 我的自学历程 阴差阳 ...
- 解决报错:Unable to process Jar entry [org/springframework/jmx/export/annotation/*****]
情况说明:从gitub上clone的maven项目,pox.xml配置中的依赖,自己的repository都有,所以正常update project ,正常clean,install,整个过程无报错 ...
- python下载网-易-公-开-课的视频
import requests url='http://v.stu.126.net/mooc-video/nos/mp4/2016/03/19/1004187130_5b0f0056936d4f78a ...
- Linux下iptables学习笔记
Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6. ...
- 41 位 Contributor 参与,1574 个 PR,不容错过的版本更新!
6 月 25 日,在商业公司 SphereEx 正式成立一月之余的今天,我们很高兴的宣布 Apache ShardingSphere 迎来了 5.0.0-beta 版本的正式发布.经过半年多的优化和打 ...
- pure-ftpd管理FTP服务器,创建文件夹可以,但上传下载文件不行
两种原因 1.因为pure-ftpd的防火墙端口问题 # Port range for passive connections replies. - for firewalling. PassiveP ...
- python中return的返回和执行
1 打印函数名和打印函数的执行过程的区别 例子1.1 def a(): print(111) print(a) # 打印a函数的内存地址,不会对a函数有影响,a函数不会执行 print(a()) # ...
- Kubernetes List-Watch 机制原理与实现 - chunked
概述http chunkedwatch api 概述 Kubernetes 中主要通过 List-Watch 机制实现组件间的异步消息通信,List-Watch 机制的实现原理值得深入分析下 . 在 ...
- 如何快速体验鸿蒙全新声明式UI框架ArkUI?
HDC2021将于10月22日在东莞松山湖正式开幕,大会将设立Codelab体验专区,超多好玩.有趣的Demo等你体验.想快速入门HarmonyOS?学习HarmonyOS新特性?以下几个Codela ...