Notes About Singular Value Decomposition
A brief summary of SVD:
An original matrix Amn is represented as a muliplication of three matrices:
Amn = UmmSmnVnnT
The columns of U are the orthonormal engenvectors of AAT descendingly ordered by the corresponding eigenvalues, and the columns of V are the orthonormal engenvectors of ATA descendingly ordered by the corresponding eigenvalues. This also suggests that U and V are orthonormal (orthogonal) matrices. A characteristic of the two matrices is that the non-zero eigenvalues of U and V are always the same. S is a diagonal matrix containing the square roots of eigenvalues from U and V in descending order. The diagonal entries in S are the singular values of A, the columns in U are called left singular vectors, and the columns in V are called right singular vectors.
==========================分割线=======================
看完mit的《Introduction To Linear Algebra》(Gilber Strang著)里关于SVD的章节,只能说发觉SVD愈发奇特了,但是很多概念还是不太懂,尤其是作者所说的“四个子空间”。其实看着作者推导的一些公式,自己也跟着推导一番觉得很是爽。但是我只但看了这一章节,未免理解起来过于管中窥豹。虽然自己只是为了做论文,需要弄SVD这个概念,但是一知半解不是什么好习惯,那还是从头看起吧,如果确实觉得不是重要的概念也许可以跳过。习题估计也不需要做,这里就把一些值得记录下的东西记录一下吧。
----
看到序言里讲到列空间,忽然再一次被自己对于线性代数很多基本问题的无知击倒:原来,一个矩阵A乘以一个向量x,可以理解为,将A的所有列向量,以x各个项作为权重进行线性组合,所得向量即为乘得的结果。相应的,Ax = b这个方程也可以理解为求解一个矩阵A的列向量的线性组合,使得其等于b。
----
看到讲向量的表示一段,虽然一度对于向量的物理意义理解及其混乱(二维空间中的一个点还是一条没有位置只有方向和长度的线段),甚至为何(1,0)(0,1)被默认为单位向量且在坐标轴中垂直亦搞不懂其中玄机,不过这里倒是可以对向量相加的物理意义做一简单解释:由于向量可以理解为一个点到另一个点的移动,两个向量v、w相加可以理解为点先按v移动,接着按w移动。这也能解释为何两个方向不同的向量相加总小于方向相同的向量相加,因为前者相当于在沿着两个向量移动时走了些冤枉路,有些移动相互抵消了。
刚刚忽然想到,解析几何应该是严格建立在“正交”(垂直)概念的基础之上的(没去研究过讲几何学本质的著作哈,纯粹瞎扯),但“正交”这个概念在线代里真的颇有些蛋生鸡鸡生蛋的意味,玄机还没搞懂。
----
1.2给出了点乘的一个物理意义:假设两个物体在一个平衡杆上的位置分别为(v1,v2)(以平衡点为0),两个物体的重量分别为(w1,w2),则两个向量的点乘为力矩之和。力矩之和为0表示两物体平衡。另一个例子是一个向量表示单价,一个向量表示个数,点乘为总价。
----
1.3矩阵乘向量一节给出了两种认识这种运算的方法,这应该是线代里很重要的一个概念。
一个矩阵乘以一个(列)向量Ax,可以理解为:
- 矩阵A的所有列,以x的每个项为权重进行线性组合,即:

- 矩阵A的所有行与x做点乘,所得的每个结果作为结果向量的每一项,即:

----
讲线代的书竟然讲起了微积分,而且还帮助我理解了之前看过的论文里的一个方法的数学背景:
1.3里进一步提到了如何求解离散数值的偏导,其中有三种方法:
后向差异:d(t)=x(t)-x(t-1)
前向差异:d(t)=x(t+1)-x(t)
中心差异:d(t)=(x(t+1)-x(t-1))/2
并以x(t)=t2为例提出中心差异貌似是对偏导更准确的一种近似。这也解释了之前看Marching Cubes那篇论文(有可能是图形学里最知名的一篇论文了)时作者所也使用类似方法来求梯度的原因。
----
鉴于作者一再强调row picture和column picture,这里就强调下:
row picture:一个矩阵方程Ax=b的解x,可以理解为每个线性方程所定义的平面(或超平面,其实二维空间里一条直线也是个一个“平面”哈)的相交点。当然这些平面可能不相交于一点,那应该就是相交于所在空间的子空间吧!!
column picture:一个矩阵方程Ax=b的解x,可以理解为找到A的列向量的一个线性组合,使得这个线性组合等于b。而这个线性组合的每个向量的系数即为x。
先说个有些跳跃的话题,由于先看过了SVD的章节,作者也是一再强调列空间和行空间,看来列于行之间纠结缠绕、你中有我的关系貌似真的是线性代数的真爱所在啊!!
----
看到将矩阵相乘一节,矩阵相乘,如果AB,可以理解为,B为一个源矩阵,A为一个描述转换的矩阵,AB所得矩阵即为对B按照A进行转换的结果。而转换的过程为:A的每一行描述了结果矩阵对应行的转换;A某行的每一列描述了这个列在B中对应行的系数,而最终结果矩阵的对应行则为B的每一行按照这个系数相加所得。
由于矩阵相乘A可以理解A对B进行一系列行操作所得,而高斯消元法就是有一系列的行操作组成,因此高斯消元的过程也可以表示为一系列的矩阵相乘。
----
之前说过,矩阵与向量相乘可以有两种理解方式,即矩阵每一行与向量点乘,与矩阵每一列以向量的项为系数进行线性组合。而两个矩阵AB相乘则有四种理解方式:
column picture: A乘以B等于A乘以B的每一列,所得每一个向量作为结果矩阵的每一列
row picture: A乘以B等于A的每一行乘以B,所得每一个行向量作为结果矩阵的每一行。其中A的某一行乘以B可以理解为对B做行变换
row column picture: A乘以B等于A的每一行与B的每一列做点乘,其中A的i行与B的j行相乘所得为结果矩阵C的Cij元素
column row picture: A乘以B等于A的第k列与B的第k行相乘所得的n个矩阵相加所得,其中n=A的列数=B的行数,则k取值为1到n
----
关于矩阵相乘时的分块矩阵相乘:
两矩阵AB相乘还可以理解为其各自分块矩阵的相乘。其中左矩阵A的行分割和右矩阵B的列分割可以任意,而A的列分割与B的行分割必须一致(注意这些分割不一定都是等分)。分割后的矩阵相乘结果有点类似矩阵相乘以元素为单位的解释方法:
即分块后A的第i行的矩阵与分块后B的第j列的矩阵做“点乘”,所得矩阵放到结果矩阵的第i行、第j列。
由于之前讲过,高斯消元可以通过对一个矩阵左乘一个“消元矩阵”(elimination matrix)来得到,但那里面讲的是一次只消去一行里相应的“枢轴”,如何一下子消去所有其他行的枢轴呢?有Schur Complement(抱歉不知道怎么翻译):

其中,消元矩阵里左下的块矩阵-CA-1颇为耐人寻味。看着是不是有点眼熟?是不是和消除单个元所用的-a/c异曲同工?
----
在谈到两矩阵AB相乘的逆等于B-1A-1时,作者指出:逆矩阵应以逆序做相乘,并给出一个很精辟的比喻:穿上袜子然后穿鞋的逆行为应是先脱下鞋然后脱下袜子。个人认为可以更加形式化的去理解:如果把每一个矩阵理解为一个变换或者映射(事实上矩阵确实也是做这个的哈),那么几个矩阵相乘可以理解为这几个变换的组合。这个组合的逆变换应该是先对最近一次变换取逆,然后是最近第二次的变换,然后是之前的变换。
V]8477(QJPVKERI_R9V]]0.png)
Notes About Singular Value Decomposition的更多相关文章
- 奇异值分解(We Recommend a Singular Value Decomposition)
奇异值分解(We Recommend a Singular Value Decomposition) 原文作者:David Austin原文链接: http://www.ams.org/samplin ...
- We Recommend a Singular Value Decomposition
We Recommend a Singular Value Decomposition Introduction The topic of this article, the singular val ...
- 【转】奇异值分解(We Recommend a Singular Value Decomposition)
文章转自:奇异值分解(We Recommend a Singular Value Decomposition) 文章写的浅显易懂,很有意思.但是没找到转载方式,所以复制了过来.一个是备忘,一个是分享给 ...
- [转]奇异值分解(We Recommend a Singular Value Decomposition)
原文作者:David Austin原文链接: http://www.ams.org/samplings/feature-column/fcarc-svd译者:richardsun(孙振龙) 在这篇文章 ...
- [转载]We Recommend a Singular Value Decomposition
原文:http://www.ams.org/samplings/feature-column/fcarc-svd Introduction The topic of this article, the ...
- Singular value decomposition
SVD is a factorization of a real or complex matrix. It has many useful applications in signal proces ...
- SVD singular value decomposition
SVD singular value decomposition https://en.wikipedia.org/wiki/Singular_value_decomposition 奇异值分解在统计 ...
- [Math Review] Linear Algebra for Singular Value Decomposition (SVD)
Matrix and Determinant Let C be an M × N matrix with real-valued entries, i.e. C={cij}mxn Determinan ...
- 关于SVD(Singular Value Decomposition)的那些事儿
SVD简介 SVD不仅是一个数学问题,在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层 ...
随机推荐
- IOS开发使用GCD后台运行
什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法.该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中.GCD ...
- XCOde 5 的界面布局一些新特性
1.问题 •在iOS程序中,大部分视图控制器都包含了大量的代码用于设置UI布局,设置控件的水平或垂直位置,以确保组件在不同版本的iOS中都能得到合理的布局 •甚至有些程序员希望在不同的设备使用相同的视 ...
- swift 函数参数——实参与形参
实参 在传入函数之前已有明确定义. 具体定义为 func funcName( actualParameter: Type ) {} 形参 参数只在此函数内有效并可使用,函数外不需要有明确定义. 具体定 ...
- 条件和循环(More Control Flow Tools)
1.if语句 >>>a=7 >>> if a<0: ... print 'Negative changed to zero' ... elif a==0: . ...
- Java [Leetcode 387]First Unique Character in a String
题目描述: Given a string, find the first non-repeating character in it and return it's index. If it does ...
- erl_0017 《硝烟中的erlang》 读书笔记004 “锁和阻塞”
如果某个进程需要持续地接收新任务,那么其在执行耗时过长的锁或者阻塞操作时,就会出现问题. 最为常见的例子之一就是:某个进程使用了TCP socket,阻塞在了接收新的连接或者等待消息上面.在执行此类阻 ...
- BZOJ3438:小M的作物 (最大闭合权图->最小割)
小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子 有1个(就是可以种一棵作物)(用1...n编号),现在,第i种作物种植在A中种植可以获得ai ...
- 每天一个linux命令(文件操作):【转载】whiereis命令
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...
- Page View Controllers
Page View Controllers You use a page view controller to present content in a page-by-page manner. A ...
- ubuntu pip换下载源
1.在本目录下(~)新建.pip文件夹 2.在.pip文件夹下新家pip.conf文件 3.里面添加下面文件 [global] trusted-host=mirrors.aliyun.comindex ...