SVD专题1 算子的奇异值分解——矩阵形式的推导
本文目录
- SVD专题1 算子的奇异值分解——矩阵形式的推导
- 前言 Preface
- 几点说明
- 预备知识 Prerequisite
- 1.1 极分解 Polar Decomposition
- 1.2 等距同构 Unitary Operator
- 1.2.1 什么是等距同构
- 1.2.2 等距同构的刻画
- 重要补充:正规算子与复谱定理
- 1.2.3 等距同构的描述
- 1.3 正算子 Positive Operator
- 1.3.1 什么是正算子
- 1.3.2 正算子的刻画
- 补:算子的平方根
- 1.3.3 正算子的描述
- 奇异值分解 Singular Value Decomposition(SVD)
- 步骤1
- 步骤2
- 结语 Epilogue
SVD专题1 算子的奇异值分解——矩阵形式的推导
前言 Preface
《Linear Algebra Done Right》一书在讲述算子的奇异值分解时并未给出其矩阵分解形式,仅是在结构上予以阐明:算子奇异值分解的核心在于使用两组基。以下讨论旨在总结奇异值分解推导的整个流程并给出算子奇异值分解的矩阵形式。
几点说明
- 本文讨论的范围局限于算子的奇异值分解,而非更广泛的线性映射的奇异值分解。
- 本文的叙述方式不同于通常教材的做法,即并不事先罗列为了得到目标结论所需的预备知识,而是一环扣一环反向补充每一个步骤所需的知识。
- 为方便讨论,以下涉及到的算子均默认是复向量空间 VVV 中的算子,故不在每句话中重复指明复向量空间 VVV 上的算子
预备知识 Prerequisite
不同教材中给出算子奇异值分解的方式不同,本文将在算子极分解的基础上引出奇异值分解。
1.1 极分解 Polar Decomposition
算子极分解:一个算子 TTT 总是可以分解成一个等距同构 SSS 和一个正算子 T∗T\sqrt{T^*T}T∗T 的乘积。
T=ST∗TT = S\sqrt{T^*T} T=ST∗T
现在我们遇到了两个新概念,等距同构 SSS 和正算子 T∗T\sqrt{T^*T}T∗T ,我们先来讨论前者。
1.2 等距同构 Unitary Operator
1.2.1 什么是等距同构
我们先给出等距同构的定义:若算子 SSS 能够保持范数不变,则称 SSS 为等距同构,即:
∣∣Sv∣∣=∣∣v∣∣||Sv|| = ||v|| ∣∣Sv∣∣=∣∣v∣∣
等距同构 SSS 是怎样刻画的呢?其实就是在问一个算子 SSS 是等距同构的话有哪些等价条件呢?这里我们列举以下有助于理解我们后续推导的等价关系:
1.2.2 等距同构的刻画
算子 SSS 是等距同构 ⟺\Longleftrightarrow⟺
(1)向量空间中的规范正交基 {e1,⋯,en}\{e_1, \cdots, e_n \}{e1,⋯,en} 被 SSS 作用后仍然是规范正交基 {Se1,⋯,Sen}\{Se_1, \cdots, Se_n \}{Se1,⋯,Sen} ,不妨记作 {f1,⋯,fn}\{f_1, \cdots, f_n \}{f1,⋯,fn} 。
(2)S∗S=SS∗=I,orS∗=SS^*S = SS^* = I , \quad or \quad S^* = SS∗S=SS∗=I,orS∗=S
注意观察,(2)其实告诉我们了 SSS 是一个正规算子,在此基础上多了一些别的性质,那么我们就可以在先前已经能够完全描述的正规算子的基础上来描述 SSS 。
重要补充:正规算子与复谱定理
正规算子:若算子 TTT 和它的伴随可交换,称算子 TTT 为正规算子,即:T∗T=TT∗T^*T = TT^*T∗T=TT∗
之所以我们能够完全描述正规算子,正是由于复谱定理:复向量空间中的正规算子 TTT 可以被一组规范正交基给对角化。
小声哔哔时间:以后我们就清楚了,凡是遇到了正规算子,就知道它可以被一组规范正交基给对角化,我们要训练自己的小脑瓜,直到把这句话刻在脑子里,变成一种本能反应。
1.2.3 等距同构的描述
等距同构 SSS 的描述: SSS 可以被一组规范正交基给对角化,且相应的本征值的绝对值为1。
请拿出小本本记住这句话的前半部分,我们后面会用到的:即 SSS 可以被一组规范正交基给对角化。
1.3 正算子 Positive Operator
再来谈一谈正算子的刻画及其描述。
1.3.1 什么是正算子
我们先给出正算子的定义:若自伴算子 TTT 满足 ⟨Tv,v⟩≥0\left \langle Tv, v \right\rangle \ge 0⟨Tv,v⟩≥0 恒成立,则称 TTT 是正算子。
温馨小提示:由于自伴算子满足 T∗=TT^* = TT∗=T ,所以自伴算子都是正规算子。(^_^)
1.3.2 正算子的刻画
为了方便理解和记忆,这里先摆出书中重要的一种类比关系:
正规算子⇌实数正规算子\rightleftharpoons 实数正规算子⇌实数
正算子⇌非负实数正算子 \ \ \ \ \rightleftharpoons 非负实数正算子 ⇌非负实数
算子 TTT 是正算子 ⟺\Longleftrightarrow⟺
(1) TTT 是自伴算子且所有本征值非负
(2) TTT 有唯一的正平方根,可以把它记作 T\sqrt{T}T
等等!算子还有开平方这一说?
答曰:小笨蛋,我上面的类比关系白写啦?非负实数可以开个平方算算平方根,正算子就不能有啦?
补:算子的平方根
如果算子 RRR 满足: R2=TR^2 = TR2=T ,则称算子 RRR 为算子 TTT 的平方根。
1.3.3 正算子的描述
正算子 TTT 的描述: TTT 可以被一组规范正交基给对角化,且相应的本征值非负。
请再次掏出小本本吧,同样记下这句话的前半部分,即:正算子 TTT 可以被一组规范正交基给对角化。
好了,现在我们可以解释一下为什么 T∗T\sqrt{T^*T}T∗T 是正算子啦!
我们说,对于复向量空间上的任意算子 TTT 而言, T∗TT^*TT∗T 都是正算子(不信的话用定义法去验证一下哈~),由先前我们对正算子的刻画:可以用 T∗T\sqrt{T^*T}T∗T 来表示 T∗TT^*TT∗T 唯一的那个正平方根(即这个平方根也是一个正算子)。
奇异值分解 Singular Value Decomposition(SVD)
极分解把复向量空间上的任意算子 TTT 给分解成了一个等距同构 SSS 和一个正算子 T∗T\sqrt{T^*T}T∗T 的乘积。掏出我们的小本本,看一看上面记下来的两句话:
(1) SSS 可以被一组规范正交基给对角化
(2) T∗T\sqrt{T^*T}T∗T 可以被一组规范正交基给对角化
啊呀,我们猜想一下,不会那样巧合,使得两个算子都被同一组规范正交基给对角化了吧?没错,确实没那么巧,这意味着我们要对任意算子 TTT 使用两组基来描述啦!这就是奇异值分解的核心,即对算子采用了两组基来表示呀!先前我们的做法是涉及到算子的,都一般默认变换前后都使用同一组基。
步骤1
不管三七二十一,先找一组规范正交基把 T∗T\sqrt{T^*T}T∗T 给对角化了,记这组规范正交基为 {e1,⋯,en}\{e_1, \cdots, e_n \}{e1,⋯,en} ,相应的本征值记作 {s1,⋯,sn}\{s_1, \cdots, s_n \}{s1,⋯,sn}
T∗T[e1⋯en]=[T∗Te1⋯T∗Ten]=[s1e1⋯snen]=[e1⋯en][s1⋱sn]\begin{aligned} \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} T∗T[e1⋯en]=[T∗Te1⋯T∗Ten]=[s1e1⋯snen]=[e1⋯en]⎣⎡s1⋱sn⎦⎤
步骤2
在上一步的基础上,左右两边同时左乘等距同构 SSS :
ST∗T[e1⋯en]=S[e1⋯en][s1⋱sn]=[Se1⋯Sen][s1⋱sn]=[f1⋯fn][s1⋱sn]\begin{aligned} 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} ST∗T[e1⋯en]=S[e1⋯en]⎣⎡s1⋱sn⎦⎤=[Se1⋯Sen]⎣⎡s1⋱sn⎦⎤=[f1⋯fn]⎣⎡s1⋱sn⎦⎤
回忆一下等距同构的刻画的(1),正是第三个等号成立的原因呀:规范正交基 {e1,⋯,en}\{e_1, \cdots, e_n \}{e1,⋯,en} 被 SSS 作用后仍然是规范正交基 {f1,⋯,fn}\{f_1, \cdots, f_n \}{f1,⋯,fn} ,这样就出现了第二组基。
进一步化简:
T[e1⋯en]=[f1⋯fn][s1⋱sn]\begin{aligned} 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} T[e1⋯en]=[f1⋯fn]⎣⎡s1⋱sn⎦⎤
两边同时右乘 [e1⋯en]−1\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}[e1⋯en]−1 ,得到:
T=[f1⋯fn][s1⋱sn][e1⋯en]−1T = \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} T=[f1⋯fn]⎣⎡s1⋱sn⎦⎤[e1⋯en]−1
换用简单的大写符号来表示这些元素都明着写出来的矩阵,得到:
T=UΣV−1T = U \Sigma V^{-1} T=UΣV−1
结语 Epilogue
以下两点相当明显的事实值得挑明(因为这对刚接触的人来说可能并不那样显然):
(1) [e1⋯en]−1\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}[e1⋯en]−1 ,即矩阵 V−1V^{-1}V−1 就是等距同构的逆 S−1S^{-1}S−1 的矩阵,由于 S−1=S∗S^{-1} = S^*S−1=S∗ ,故上式中的 V−1V^{-1}V−1 还可以写作 V∗V^*V∗ 。矩阵 V∗V^*V∗ 作用的目的在于(或称这个矩阵的“方向”在于)输入一个属于任意坐标系统的向量,给出该向量在规范正交基 {e1,⋯,en}\{e_1, \cdots, e_n \}{e1,⋯,en} 下的坐标系统的重新(等价)表述。
(2) [f1⋯fn]\begin{bmatrix} f_1 \cdots f_n \end{bmatrix}[f1⋯fn] ,即矩阵 UUU 作用的目的在于,把原输入向量经算子 TTT 变换后的输出向量在规范正交基 {f1,⋯,fn}\{f_1, \cdots, f_n \}{f1,⋯,fn} 下的坐标系统的重新(等价)表述,重新变回其在任意坐标系统下的等价表述。
由上述(1)中的等价关系,我们给出本文的最终目标,即复向量空间上算子奇异值分解最终的矩阵表述形式:
T=UΣV∗T = U \Sigma V^{*} T=UΣV∗
SVD专题1 算子的奇异值分解——矩阵形式的推导相关推荐
- 最小二乘估计矩阵形式的推导
最小二乘估计矩阵形式的推导 最近写文章有用到一些算法,自己推一下,顺便mark下来. 这么久我才发现csdn居然都能写Tex了(666). 考虑一般线性回归模型(OLR) 考虑只含有一个指标的一般线性 ...
- 普遍意义下矢量的散度和旋度表达式以及它们的矩阵形式的推导
现有任意一个三维矢量A⃗\vec AA(高维矢量的情况类似): (1)A⃗=A1e^q1+A2e^q2+A3e^q3\vec A=A_1\hat e_{q_1}+A_2\hat e_{q_2}+A_3 ...
- 其他算法-SVD奇异值分解
目录 SVD原理 特征值分解EVD 奇异值分解SVD SVD的性质 基于Numpy的SVD图像压缩 奇异值分解即 Singular Value Decomposition,简称SVD,SVD广泛应用于 ...
- 奇异值分解(SVD)方法求解最小二乘问题
奇异值分解(SVD)方法求解最小二乘问题 1 奇异值分解(SVD)原理 1.1 回顾特征值和特征向量 1.2 SVD的定义 1.3 求出SVD分解后的U,Σ,V矩阵 1.4 SVD的一些性质 2 线性 ...
- SVD奇异值分解(理论与C++实现)
SVD奇异值分解 前言 理论推导 部分代码实现 前言 奇异值分解(singular value decomposition,以下简称SVD)是线性代数中一种重要的矩阵分解.SVD将矩阵分解为奇异向 ...
- 线性代数学习笔记10-2:特征值分解EVD/奇异值分解SVD的几何意义
前置知识 矩阵对应于线性变换,并且要明确讨论所依赖的基(坐标系):同一个变换,在不同的基下对应的矩阵不同 具体来说,矩阵中的列向量对应了基变换,而基的变换造成了原空间中所有向量的变换 B = P − ...
- 机器学习 - SVD分解算法的物理意义
机器学习-SVD分解算法的物理意义 奇异值分解(Singular Value Decomposition),以下简称SVD. 奇异值分解算法是一种在机器学习中经常使用到的一个算法,SVD主要用于数据压 ...
- SVD分解.潜语义分析.PythonCode
原文链接:http://www.cnblogs.com/appler/archive/2012/02/02/2335886.html 原始英文链接:http://www.puffinwarellc.c ...
- 用SVD压缩彩色图片(MATLAB代码)
Write a MATLAB program to perform color image compression using singular value decomposition (SVD). ...
- 奇异值分解的定义及应用
目录 1.定义 2.证明 3.紧凑奇异值分解和截断奇异值分解 4.几何解释 5.性质 6.奇异值分解的计算 7. 奇异值分解与矩阵近似 7.1弗罗尼乌斯范数 7.2矩阵的最优近似 7.3矩阵的外积展开 ...
最新文章
- 微信小程序,对象转换成数组
- RPC简介,及与web service的对比
- 设计模式(4)--AbstractFactory(抽象工厂模式)--创建型
- mybatis 遍历数组_Mybatis中别名、插件与数据源配置
- Http请求中Content-Type
- 移动机器人参数校准的原由
- HDU 5980 位运算 进制转换函数 DEV C++调试失败的原因
- atoi函数_linux网络编程之POSIX 消息队列 和 系列函数
- 解读OOM killer机制输出的日志
- allure如何定制Pytest自动化测试报告样式
- iOS直播等开源项目地址收藏
- 广州特耐苏-广州风淋通道构造及特点
- android pos机对接微信刷脸支付时如何做到双屏异显-2020年10月9日
- 你可能不知道的关于Oracle Rac的事...
- const int *,const int * const和int const *之间的区别
- 华云数据打造企业社会责任践行范本
- STM32F40xx搭建Keil工程编译错误(stm32f4xx_fmc.c)
- 【cue语言系列】03.json marshal和unmarshal
- .NET Framework和.NET Core/.NET5/.NET6
- 金蝶软件安装时,提示安装包配置文件(Setup.Lst)文件不存在无法安装处理方法
热门文章
- 《JavaScript菜鸟教程》学习
- 快速解决Ubuntu无法访问Windows分区的问题
- Windows: 如何调整C盘分区大小
- 20171205_Matlab求方差,均值,均方差,协方差的函数
- MISRA C-2012规则中文版
- 推荐阅读《未来世界的幸存者》
- python 保存为tiff文件, 图像转tiff, tif文件添加投影
- Java经典程序编程50题(较适合初学者)
- 新cBSS敏捷发布实践
- Terrasolid Suite v015-v016 for Microstation CONNECT, V8i, V8 for Windows platforms 1CD