前言
为了学习多视图几何,有很多数学的基础需要去补充,目前为止,博主能力有限,有错误的地方则欢迎指正,本系列博文和多视图几何笔记将会一同编写(如果我没编写完,或许我也没看懂或者做实验太忙了,见谅)。
系列博文参考的有慕尼黑工业大学(TUM)的课程,图灵出版社出版的《线性代数应该这样学》第三版和部分高校的教材。
为了这一系列博文的基础性质,我们省略掉了一些较为基础又总所周知的知识,比如Cn和Rn的定义,集合的定义等。大多数采用的是众所周知的符号。
部分在多几何视图大概无用的知识点(子集和交并和直和等等),不会填入(如果有需要会在后面加)。
多视图几何的数学基础知识的掌握(1)
线性空间
集合V被称为线性空间或者在域R上的向量空间,仅当它在向量加法
+:V×V→V
和标量乘法
⋅:R×V→V,
例如αV1+βV2∈V,∀V1,V2∈V,∀α,β∈R
上封闭。
关于加法(+),它形成一个交换群(存在零元素 0,逆元素−V)。 标量乘法遵循R的结构:α(βu)=(αβ)u。 乘法和加法遵循分配律:
(α+β)V=αV+βV
α(v+u)=αv+αu
这里我们需要给出向量空间关于在大学中较为严谨的定义。
线性空间的定义
给定一个域F(R和C),一个非空集合V叫做F上的一个向量空间(vector space)也叫线性空间,如果定义了两种运算:向量加法+和纯量乘法(乘号通常省略不写),其中加法是V×V到V的一个映射,纯量乘法是F×V到V的一个映射,并满足以下几个性质:
- 交换律:∀x,y∈V,满足x+y=y+x
- 结合律:∀x,y,z∈V,满足(x+y)+z=x+(y+z)
- 存在零元素:x+0=x
- 存在逆元素:∀x∈V,∃y∈V,满足x+y=0
- 数因子分配律:∀x,y∈V,∀k∈F,满足k(x+y)=kx+ky
- 分配律:∀x∈V,∀k,l∈F,满足,(k+l)x=kx+lx
- 乘法结合律:∀x∈V,∀k,l∈F满足k(lx)=(kl)x
- 乘法单位元:∀x∈V满足1x=x
小题目
假定R+为正实数组成的集合,其加法和乘法运算定义为
m⊞n=mn,k∘m=mk
验证它是R+上的线性空间。
证明
要证明是线性空间,则证明加法和数乘封闭,所以满足那八条性质才可。
结合律:(m⊞n)⊞p=mnp=m⊞(np)=m⊞(n⊞p)
:m⊞n=mn=nm=n⊞m
存在零元素:可以发现是1是零元素,因为m⊞=m×1=m
存在逆元素:可以发现逆元素是m1,因为m⊞m1=m×m1=1
数因子分配律:k∘(m⊞n)=k∘(mn)=(mn)k=mknk=(k∘m)⊞(l∘m)
分配律:(k⊞l)∘m=mk+l=mkml=(k∘m)⊞(l∘m)
乘法结合律:k∘(l∘m)=k∘ml=(ml)k=mlk=mkl=(kl)∘m
乘法单位元:1∘m=m1=m
所以满足8条性质,故而是在R+上线性空间。
举个例子
V=Rn,v=(x1,x2,xn)T
n维实数空间Rn或n维复数空间Cn,其中加法数乘运算为向量的加法和数乘元素
次数不超过n的多项式全体P[x]n={p=i=0∑naixi∣a0,a1,...,an∈R}
子空间
向量空间V的子集W⊂V称为子空间,仅当0∈W和W在+和 ⋅(对于∀α∈R)运算下是封闭的。
具体来说,子空间仅W⊂V这个条件是不够的,还需要满足下面的条件:
- 存在零元素:0∈W
- 加法封闭:∀v,w∈W,满足v+w∈W
- 标量乘法封闭:a∈F,∀u∈U,满足au∈U
举个例子
- 若b∈F,则{(x1,x2,x3,x4)∈F4:x3=5x4+b}是F4的子空间当且仅当b=0
- 区间[0,1]上全体实值连续函数的集合是R[0,1]上的子空间
- 0是V的最小子空间,V是V的最大子空间,空集不是V的子空间,因为子空间必须是向量空间,而向量空间至少包含一个元素,即加法单位元
线性独立性和基
一组向量集S={v1,...,vk}⊂V的张成子空间,是由这些向量的所有线性组合形成的子空间:
span(S)={v∈V∣v=i=1∑kαivi}
在以下情况下,集合S被称为线性独立:
i=1∑kαivi=0⇒αi=0∀i
换句话说:如果没有一个矢量可以表示为剩余矢量的线性组合。 否则该集合被称为线性相关的。
一组向量B={v1,...,vn}如果它是线性无关的并且如果它可以张成向量空间V,则称为V的一组基。基是线性独立向量的最大集。
对于基的定义要知道两点:
- {v1,...,vn}是线性无关的
- ∀x都能由{v1,...,vn}的组合线性表示,即x=i=1∑kβivi
基的性质
设B和B′为线性空间V的两个基数。
-
B和B′包含相同数量的向量。 该数字n称为空间V的维数(换句话说线性空间V中线性无关向量组所含向量的最大数量n,称为V的维数,记做dimV=n)。
-
任何矢量v∈V可以唯一地表示为B={b1,...,bn}中的基矢量的线性组合:
v=i=1∑nαibi
-
特别地,B的所有向量可以表示为另一个基向量组bi′∈B′的线性组合:
bI′=j=1∑nαjibj
该基变换的系数αji可以组合在矩阵A中。令B≡(b1,...,bn)和B′≡(b1′,...,bn′)作为基向量的矩阵,我们可以写:B′=BA⇔B=B′A−1。
向量的内积
在向量空间上,可以定义内积(点积,dt.:,标积 ̸= 乘法):
<⋅,⋅>:V×V→R
其中有如下属性:
1. 线性性:<u,αv+βw>=α<u,v>+β<u,w>
2. 对称性:<u,v>=<v,u>,注意是在R上才成立
3. 正定性:<v,v>≥0和<v,v>=0⇔v=0
4. 第一个位置的可加性:<u+v,w>=<u,w>+<v,w>
5. 第一个位置的齐次性:∀λ∈R,∀u,v∈V,满足<λu,v>=λ<u,v>
标量积被认为是一种范数
∣⋅∣:V→R,∣∣v∣∣=<v,v>
∀λ∈F,∣∣λv∣∣=∣λ∣∣∣v∣∣
和一个度量指标
d:V×V→R,d(v,w)=∣∣v−w∣∣=<v−w,v−w>
用于测量长度和距离,使V成为度量空间(metric space)。 由于度量由标量积V引起,因此称为希尔伯特空间(Hilbert space)。
在数学中,希尔伯特空间是欧几里德空间的一个推广,其不再局限于有限维的情形。与欧几里德空间相仿,希尔伯特空间也是一个内积空间,其上有距离和角的概念(及由此引申而来的正交性与垂直性的概念)。此外,希尔伯特空间还是一个完备的空间,其上所有的柯西序列等价于收敛序列,从而微积分中的大部分概念都可以无障碍地推广到希尔伯特空间中。希尔伯特空间为基于任意正交系上的多项式表示的傅立叶级数和傅立叶变换提供了一种有效的表述方式,而这也是泛函分析的核心概念之一。希尔伯特空间是公式化数学和量子力学的关键性概念之一。
现在我们就来说说内积的具体模样
规范和诱导内积
当V=R时,我们可以为规范基B=In定义规范内积:
<x,y>=xTy=i=1∑nxiyi
它引出了标准的L2范数或欧几里德范数
∣∣x∣∣2=xTx=x12+...+xn2
由B=B′A−1,应用基变换A得到新基B′,然后由下式给出在新坐标系下的x′,y′的规范内积:
<x,y>=xTy=(Ax′)T(Ay′)=x′TATAY′≡<x′,y′>ATA
Bx=(B′A−1)x=B′(A−1x)=B′x′⇒x=Ax′
后一种乘积被称为矩阵A的诱导内积。
两个 v和 w向量正交当且仅<v,w>=0
值得注意的是:
- 0正交于V中的任意向量
- 0是V中唯一一个与自身正交的向量
勾股定理(毕达哥拉斯定理)
设v和u是V的正交向量,则∣∣u+v∣∣2=∣∣u∣∣2+∣∣v∣∣2
证明:
∣∣u+v∣∣2=<u+v,u+v>=<u,u>+<u,v>+<v,u>+<v,v>=∣∣u∣∣2+∣∣v∣∣2
正交分解
设u,v∈V且v̸=0,令c=∣∣v∣∣2<u,v>,w=u−∣∣v∣∣2<u,v>v,则<w,v>=0且u=cv+w
证明:
设u,v∈V且v̸=0,把u写成v的标量倍加上一个正交于v的向量w,若下图所示:
令c∈F表示一个标量,则
u=cv+(u−cv)
要取合适c使得v正交于(u−cv),即
0=<u−cv,v>=<u,v>−c∣∣v∣∣2⇒c=∣∣v∣∣2<u,v>
因此我们得到
u=cv+(u−cv)=∣∣v∣∣2<u,v>v+(u−∣∣v∣∣2<u,v>v)
令w=u−∣∣v∣∣2<u,v>v,即可证得。
柯西-施瓦茨不等式
设u,v∈V,则∣<u,v>∣≤∣∣u∣∣∣∣v∣∣,等号成立当且仅当u,v之一是另一个的标量倍。
证明:
若v=0,则不等式两端都等于0。
因为所有向量都与零向量正交,零向量的模为0
假设v̸=0,考虑正交分解式子:
u=∣∣v∣∣2<u,v>v+w
由于w正交于v,由于勾股定理有:
∣∣u∣∣2=∥∥∥∥∣∣v∣∣2<u,v>∥∥∥∥2+∣∣w∣∣2=∣∣v∣∣2∣<u,v>∣+∣∣w∣∣2≥∣∣v∣∣2∣<u,v>∣2
然后两端同时乘以∣∣v∣∣2,再开平方即可证明。
显然w=0时取等号,而当w=0时由于正交分解式子可以得到u=cv,即u是v的标量倍(或说v是u的标量倍)。
三角不等式
设u,v∈V,则∣u∣+v∣∣≤∣∣u∣∣+∣∣v∣∣,等号成立当且仅当u,v之一是另一个的非负标量倍。
考虑三角形两边之和大于第三边求证
平行四边形恒等式
设u,v∈V,则∣∣u+v∣∣2+∣∣u−v∣∣2=2(∣∣u∣∣2+∣∣v∣∣2)
证明:
∣∣u+v∣∣2+∣∣u−v∣∣2=<u+v,u+v>+<u−v,u−v>=∣∣u∣∣2+∣∣v∣∣2+<u,v>+<v,u>+∣∣u∣∣2+∣∣v∣∣2−<u,v>−<v,u>=2(∣∣u∣∣2+∣∣v∣∣2)
克罗内克乘积(Kronecker Product)和矩阵的拼接(stack)
给出两个矩阵A∈Rm×n和B∈Rk×l,通过下面的方式可以定义克罗内克内积A⊗B:
A⊗B≡⎝⎜⎛a11B⋮am1B⋯⋱⋯a1nB⋮amnB⎠⎟⎞∈Rmk×nl
在Matlab中可以通过下面代码实现
C=kron(A,B)
例子
[1321]⊗[0231]=⎣⎢⎢⎡1×01×23×03×21×31×13×33×12×02×21×01×22×32×11×31×1⎦⎥⎥⎤=⎣⎢⎢⎡0206319304026231⎦⎥⎥⎤
给定一个矩阵A∈Rm×n,它的拼接As是通过拼接它的n列向量a1,⋯,an∈Rm获得:
As≡⎝⎜⎛a1⋮an⎠⎟⎞∈Rmn
python中的numpy有stack函数,除此之外还有hstack等等
例子
⎝⎛159261372483⎠⎞s=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛159261372483⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞
这些符号允许重写代数表达式,例如:
uTAv=(v⊗u)TAs
证明就不证明了,有需要评论里说,我举例子验证和进行维数的判断,没任何问题,该式恒成立。
线性变换和矩阵
线性代数研究线性空间之间线性变换的性质。 由于这些可以用矩阵表示,线性代数研究矩阵的性质。 两个线性空间V和W之间的线性变换L是映射L:V→W这,如下所示:
- L(x+y)=L(x)+L(y),∀x,y∈V
- L(αx)=αL(x),∀x∈V,α∈R
由于线性,L对空间V的作用由其对V的基矢量的作用唯一地定义。在规范基础上{e1,...,en}, 我们有:
L(x)=Ax,∀x∈V
其中
A=(L(e1),...,L(en))∈Rm×n
所有的m×n的实矩阵用M(m,n)表示。 在m=n的情况下,令M(m,n)≡M(n)在域R上形成环(ring),即它在矩阵乘法和求和下闭合(引出了群的概念)。
我们给出线性映射的一些规范化定义。
规范化定义
设v1,..,vn是V的基,w1,...,wn∈W。则存在唯一一个线性映射L:V→W(有些书本会写成T)使得对于任意的j=1,...,n都有
Lvj=wj
对于证明就不证明了,有需要的话。留言评论我再修改博文添加。此博文只是用于实际的计算机处而非数学的课程博文
单射(injective)
当Lv=Lu时必有u=v,则称线性映射L:V→W是单射。
换句话说,单射映射将不同输入映射成不同输出,即u̸=v则Tu̸=Tv
线性群GL(n)和SL(n)
存在形成一组的某些线性变换群(Group)。
博主将群定义为一种集合加上一种运算的代数结构,当然这也可能并不规范,下面给出较为规范的定义。
一个群是具有操作∘:G×G→G的一个集合G,它满足下面的性质:
- 封闭性:g1∘g2∈G,∀g1,g2∈G
- 结合律:(g1∘g2)∘g3=g1∘(g2∘g3),∀g1,g2,g3∈G
- 幺(零)元:∃e∈G:e∘g=g∘e=g,∀g∈G
- 逆元:∃g−1∈G:g∘g−1=g−1∘g=e,∀g∈G
示例
所有可逆(非奇异)n×n实矩阵形成关于矩阵乘法的群。 该群称为一般线性群GL(n)。 它由所有A∈M组成,都满足:
det(A)̸=0
所有满足A∈GL(n)矩阵,其det(A)=1形成一个群,被称为特殊线性群SL(n)。而且值得一说的是,A的逆也在这个群中,即det(A−1)=det(A)−1。
后期会涉及到李群和李代数,他们也是群的一种
群的矩阵表达
如果存在单射变换(injective transformation),则组G具有矩阵表达或者被认为是矩阵群:
R:G→GL(n)
它保留了G的群结构,即逆(inverse)和组合(composition)由映射保留:
R(e)=In×n,R(g∘h)=R(g)R(h),∀g,h∈G
这样的映射R被称为群同态(Group homomorphism)。
关于群同态的描述可以参看维基百科,中文版,英文版。
中文版维基百科需要翻墙,没有条件还是去英文版吧,原汁原味。
值得注意的,这群的矩阵表示有什么作用?
使用群的矩阵表示的想法是让我们可以允许通过查看相应矩阵群的属性来分析更抽象的群。
示例
我们知道对象的旋转形成一个群,因为存在零元素(无旋转)和逆元素(反向旋转),并且旋转的任何连接也是旋转(围绕不同的轴)。 如果旋转由相应的矩阵表示,则研究旋转群的属性更容易。
这就是旋转矩阵的群的引出,比如SO(2),SO(3)
仿射变换群A(n)
我们使用矩阵A∈GL(n)和一个向量b∈Rn定义仿射变换L:Rn→Rn:
L(x)=A(x)+b
所有这种仿射变换的集合称为维度n的仿射群,由A(n)表示。
除非b=0,否则上面定义的L不是线性映射。通过引入齐次坐标来表示x∈Rn为(x1)∈Rn+1,L成为线性映射:
L:Rn+1→Rn+1;(x1)↦(A0b1)(x1)
具有A∈GL(n)和b∈Rn的矩阵(A0b1)称为仿射矩阵。 它是GL(n+1)的一个元素。 仿射矩阵形成GL(n+1)的子群。
留个思考题,为什么是子群呢?答案我就不揭秘了。(感觉很简单)
正交群O(n)
如果一个矩阵A∈M(n)保留了内积性质就被称为是正交矩阵:
<Ax,Ay>=<x,y>,∀x,y∈Rn
感觉这样定义不够严谨。不过有些书是这么定义正交矩阵的。
如果一个n×n的实矩阵A满足
AAT=E,ATA=E
其中E是单位矩阵,AT表示是矩阵A的转置矩阵,则称该矩阵A为正交矩阵。
值得注意的是这样矩阵具有以下性质:
- AT也是正交矩阵
- A的各行是单位向量且两两正交,列也是如此
- detA=1or−1
- AT=A−1
接下来说正交群。
所有正交矩阵的集合形成正交群O(n),其是GL(n)的子群。 对于正交矩阵R,我们有
<Rx,Ry>=xTRTRy=xTy,∀x,y∈Rn
因此,我们必然有RTR=RRT=I,换句话说:
O(n)={R∈GL(n)∣RRT=I}
谢天谢地,博主终于到此引出了正交群的概念。
上述恒等式表明,对于任何正交矩阵R,我们得到det(RTR)=(det(R))2=det(I)=1,使得det(R)∈{±1}。
具有det(R)=±1的O(n)的子群称为特殊正交群SO(n)。 SO(n)=O(n)∩SL(n)。 特别地,SO(3)是所有三维旋转矩阵的组。
回顾:O(n)是正交群,SL(L)是特殊线性群(前面有讲述)
欧式群E(n)
从Rn到Rn的欧几里德变换L由正交矩阵R∈O(n)和向量T∈Rn定义:
L:Rn→Rn;x↦Rx+T
所有这些变换的集合称为欧几里德群E(n)。 它是仿射群A(n)的子组。 通过齐次坐标表示,我们得到:
E(n)={(R0T1)∣∣∣∣∣R∈O(n),T∈Rn}
如果R∈SO(3)(即det(R)=1),则我们得到特殊欧式群SE(3)。 特别地,SE(3)代表R3中的刚体运动。
群的范围总结
让我们来总结一下
SO(n)⊂O(n)⊂GL(n)
SE(n)⊂E(n)⊂A(n)⊂GL(n+1)
值域(range),扩张空间(span),零空间(Null Space)和核(Kernel)
设A∈Rm×n是定义从Rn到Rm的线性映射的矩阵。 A的值域(range,即为列空间)或扩张空间(span,也是张成的空间)定义为Rm的子空间,可以通过A“可达”的空间:
range(A)={y∈Rm∣∃x∈Rn:Ax=y}
矩阵A的值域由其列向量的张成的空间。
矩阵A的零空间或核由被映射为零向量的向量集x∈Rn给出:
null(A)≡ker(A)={x∈R3∣Ax=0}
矩阵A的零空间由与其行向量正交的向量给出。
用matlab的代码写如下:
Z=null(A)
在研究线性方程的解时,值域和零空间的概念是有用的。 方程Ax=b有一个解x∈R3当且仅当b∈range(A)。 而且,只有当ker(A)=0时,该解才是唯一解。 实际上,如果xs是Ax=b和xo∈ker(A)的解,则xs+xo也是解:A(xs+xo)=Axs+Axo=b。
可能有人把之称之为通解或一般解
矩阵求解不想额外扩展,如果有人想要额外扩展,我可能需要开个新博文详细讲解,但具体来说,我们需要记求解的时候是需要增广矩阵或者克拉默法则来求解的,另外有以下的几点总结(矩阵求解有需要的人下面博文评论,我就另外开一篇博文描述)。
总结需要矩阵的秩的内容,如果不懂的,先跳过,后面讲解了矩阵的秩。
- rank(A)<rank(A,b),则方程组无解
- rank(A)=rank(A,b)=r=n,则方程组有唯一解
- rank(A)=rank(A,b)=r<n,则方程组有无穷多解
对于有解的情况:
- det(A)=0,则无穷多解
- det(A)̸=0,则存在唯一解
矩阵的秩(Rank)
我们把矩阵的值域的维度称为矩阵的秩,即:
rank(A)=dim(range(A))
矩阵A∈Rm×n的秩有如下的性质:
-
rank(A)=n−dim(ker(A))
-
0≤rank(A)等于A的线性独立行(或列)向量的最大数量。≤min{m,n}
-
rank(A)等于A的线性独立行(或列)向量的最大数量。
-
rank(A)是A的非零子式的最高阶,其中阶数为k的子式(minor)是 A的k×k的子矩阵
-
西尔维斯特不等式(Sylvester’s inequality):
让B∈Rn×k,然后AB∈Rm×k,而且
rank(A)+rank(B)−n≤rank(AB)≤min{rank(A),rank(B)}
-
对于任何非奇异矩阵C∈Rm×m和D∈Rn×n,我们有
rank(A)=rank(CAD)
matlab中求矩阵的秩:
d=rank(A)
特征值和特征向量
让A∈Cn×n是复矩阵。一个非零向量v∈Cn被称为A 的(右)特征向量,仅当它满足下面条件时:
Av=λv,λ∈C
λ被称为A的特征值。
类似的,如果对于λ∈C,有vTA=λvT,则称为A的左特征向量。
矩阵A的谱(spectrum)σ(A)是其所有特征值的集合。
用matlab求特征值和特征向量:
[V,D]=eig(A)
其中D是包含特征值的对角矩阵,V是矩阵,其列是对应的特征向量,使得AV=VD。
特征值和特征向量的性质
让A∈Rn×n,然后
-
对于一些λ∈R,满足Av=λv,接着存在一个左特征向量η∈Rn:ηTA=ληT。因此σ(A)=σ(AT)。
想想将ηTA=ληT两边都转置
-
与不同特征值相关联的矩阵A的特征向量是线性无关的。
-
所有特征值σ(A)是特征多项式方程det(λI−A)=0的根。因此det(A)等于所有特征值的乘积(其中一些特征值可能多次出现)。
-
对于一些非奇异矩阵,如果B=PAP−1,则σ(B)=σ(A)
-
如果λ∈C是一个特征值,那么它的共轭λ∈C也是一个特征值。 因此对于实矩阵A来说,σ(A)=σ(A).
对称矩阵
如果ST=S,则矩阵S∈Rn×n称为对称的。如果xTSx≥0,则对称矩阵S称为半正定矩阵(由S≥0或S⪰0表示)。 如果xTSx>0,∀x̸=0,则称S为正定(用S>0或S≻0表示)。
让S∈Rn×n是实对称矩阵,则:
- S的所有特征值都是实数。例:σ(S)∈R
- 对应于不同特征值λi̸=λj的S的特征向量vi和vj是正交的。
- S总是存在n个正交的特征向量,它们构成Rn的基。 设V=(v1,...,vn)∈O(n)是这些特征向量的正交矩阵,并且∧=diag(λ1,...,λn)是特征值组成的对角矩阵。 然后我们有S=V∧VT。
- 如果所有特征值都是正的(非负),则S是正(半正)定的。
- 设S为半正定且λ1,λn是最大和最小的特征值。 那么λ1=max∣x∣=1<x,Sx>和λn=min∣x∣=1<x,Sx>。
矩阵的范数
有很多方法可以在矩阵A∈Rm×n的空间(space)上定义范数。 它们可以基于A操作的域空间上的范数来定义。 特别地,矩阵A的诱导2范数被定义为
∣∣A∣∣2≡∣x∣2=1max∣Ax∣2=∣x∣2=1max<x,ATAx>
或者,可以将A的Frobenius范数(F范数)定义为:
∣∣A∣∣f≡i,j∑aij2=trace(ATA)
国内书籍可能写成∣∣A∣∣F
请注意,这些范数通常不一样。 由于矩阵ATA是对称的并且是半正定的,我们可以将它对角化为:ATA=Vdiag(σ12,...,σn2)VT,其中σ12≥σi2≥0。这导致:
∣∣A∣∣2=σ1
而且
∣∣A∣∣f=trace(ATA)=σ12+...+σn2
值得注意的矩阵的迹有如下性质:
- Tr(A)=Tr(AT)
- Tr(ABC)=Tr(CAB)=Tr(BCA)
- a∈R,a=Tr(a)
斜对称矩阵
如果AT=−A,矩阵A∈Rn×n称为斜对称(skew-symmetric)或反对称矩阵(anti-symmetric)。
如果A是实斜对称矩阵,则
-
A的所有特征值都是零或纯虚数,即形式为iw ,其中i2=−1,w∈R
-
存在正交矩阵V,使得
A=V∧VT
其中∧是分块对角矩阵
∧=diag{A1,...,Am,0,...,0},其中实对称矩阵Ai有如下形式:
Ai=(0−aiai0)∈R2×2,i=1...,m
特别地,任何斜对称矩阵的秩是偶数。
例子-计算机视觉中的斜对称
在计算机视觉中,一个常见的斜对称矩阵由矢量u∈R3的帽算子(hat operator)给出:
u^=⎝⎛0u3−u2−u30u1u2−u10⎠⎞∈R3×3
这是从矢量R3的空间到R3×3中的斜对称矩阵的空间的线性算子。
特别地,矩阵u^具有以下特性
u^v=u×v
其中×表示R3中的标准向量积。 对于u̸=0,我们得到rank(u^)=2并且由u扩展的u^的零空间,因为u^u=uTu^=0。
奇异值分解(SVD)
我们研究了矩阵的许多属性,例如秩,值域,零空间和矩阵的诱导范数。 许多这些属性可以通过所谓的奇异值分解(SVD)来获得。
SVD:singular value decomposition
SVD可以看作是非方阵的特征值和特征向量的推广。
SVD的计算在数值上是良态的(well-conditioned)。 它对于求解线性代数问题非常有用,例如矩阵求逆,秩计算,线性最小二乘估计,投影和固定秩近似。
在实践中,奇异值分解和特征值分解都被广泛使用。
博主认为有一篇关于SVD的描述还是不错,可以参考该文SVD分解及几何意义。
要说明奇异值分解,首先我们需要说一说什么是奇异值。
奇异值(singular values)
这里我们不给出很严谨的数学定义(如果有需要则在评论中说明,我会添加)
我们说奇异值是指给定一个矩阵A∈Rm×n,我们令q=min{m,n},假设rank(A)=r。
那么当我们求AHA的特征值中非负特征值的算术平方根叫做奇异值。
SVD的代数推导
让我们定义一个矩阵A∈Rm×n,其中m≥0,rank(A)=p。接着存在如下性质:
- U∈Rm×p,其列是正交的
- V∈Rn×p,其列是正交的
- Σ∈Rp×p,Σ=diag(σ1,...,σp),其中σ1≥...≥σp,
以至于可得到:
A=UΣVT
注意,这概括了特征值分解。 而后者用正交变换V分解对称方阵A:
A=V∧VT
其中V∈O(n),∧=diag{λ1,...,λn}
SVD允许利用具有正交列的两个变换U和V来分解秩p的任意(非方阵)矩阵A,如上所示。 然而,我们将看到SVD基于对称方阵的特征值分解。
SVD分解的证明
给定一个矩阵A∈Rm×n,其中m≥n而且rank(A)=p,则矩阵
ATA∈Rn×n
是对称的,半正定的。 因此,它可以被分解为具有的非负特征值σ12≥...≥σn2≥0的正交特征向量v1,...,vn。 σ1被称为奇异值。
由于ker(ATA)=ker(A)和range(ATA)=range(AT)
加上已知span{v1,...,vp}=range(AT)和span{vp+1,...,vn}=ker(A)。
然后让
ui=σi1Avi⇔Avi=σiui,i=1,...,p
而ui∈Rm是正交的:
<ui,uj>=σiσj1<Avi,Avj>=σiσj1<vi,ATAvj>=δij
然后完成{ui}i=1p到Rm的基{ui}i=1m。由于Avi=σiui,我们可以得到:
A(v1,...,vn)=(u1,...,um)⎝⎜⎜⎜⎜⎜⎜⎜⎛σ100⋮00⋱⋯⋯⋯00σ⋯⋯⋯⋮⋮⋮000000⎠⎟⎟⎟⎟⎟⎟⎟⎞
它具有AV=UΣ的形式,因此:
A=UΣVT
现在简单地删除所有乘以零奇异值U的列和VT的行,我们得到形式A=UΣVT,其中U∈Rm×p和V∈Rn×p。
在matlab中,使用以下代码可以求矩阵的SVD分解
[U,S,V]=svd(A)
SVD的几何解释
对于A∈Rn×n,奇异值分解A=UΣVt使得U=(u0,...,un)的列和V=(v1,...,vn)形成Rn的正交基。 如果通过变换A将点x∈Rn映射到点y∈Rn,则以U的基为底得到的坐标y通过对角矩阵Σ与V的基为底的x坐标相关:每个坐标仅通过相应的奇异值进行缩放:
y=Ax=UΣVTx⇔UTy=ΣVTx
矩阵A将单位球体映射为具有半轴长为σiui的椭圆体。
我们将α≡VTx是点x在以V为基下的系数,同理y在以U为基下的系数被记为β≡UTy。圆的所有点都满足∣x∣22=i∑αi2=1。按照上面的推算可以得到βi=σiαi。 因此对于在球体上的点:
i∑ai2=i∑αi2βo2=1
其中指出,变换点位于沿着以U为基的轴取向的椭圆体上。
本博主推荐一篇博文,关于讲解SVD的几何意义。
广义(Moore Penrose)逆
对于某些二次矩阵,如果det(A)=0,则可以定义逆矩阵。所有可逆矩阵的集合形成群GL(n)。
还可以为任意(非二次)矩阵A∈Rm×n定义(广义)逆(也称为伪逆)(dt。:伪逆)。 如果其SVD为A=UΣVT,则伪逆定义为:
A†=VΣ†UT
其中:
Σ†=(Σ1−1000)n×m
国内的书对于广义逆的上标可能直接是+而不是†
其中Σ1是非零奇异值的对角矩阵。
在Matlab中这样求解出广义(伪)逆:
X = pinv(A)
特别地,伪逆能以与二次可逆矩阵的逆相似的方式使用:
AA†A=A,A†AA†=A†
线性方程Ax=b,其中秩r≤min{m,n}的矩阵A∈Rm×n可以有多个或没有解。 xmin=A†b是∣∣Ax−b∣∣2中最小范数∣∣x∣∣的极小化变量(minimizers)。
详细的说。
当矩阵A的列数多余行数的时候,使用使用伪逆求解线性方程是众多可能解法中的一种。特别地,x=A† 是方程所有可行解中欧几里得范数∣∣x∣∣2最小的一个。
当矩阵A 的行数多于列数时,可能没有解。在这种情况下,通过伪逆得到的x
使得Ax 和b 的欧几里得距离∣∣Ax−b∣∣2 最小。
总结
本次博文到这里介绍,介绍了线性代数的知识,只要是感觉在计算机视觉尤其是多几何视图中需要的。