太久没更新主要是在忙开发和测试,这几个月被很多同学提问,同时接触了一些实习生。普遍发现动手能力不错,数学基础却差异很大。从我身边电子,CV或者SLAM做得比较杰出的朋友来看,大家普遍有个共性,具备优秀或者杰出的数学基础。今天接着著名的18.06课程,总结和分享一下线性代数部分。全文字多,基本没涉及到具体开发或者具体算法。
在中文网没有搜索到18.06的课程总结,干脆自己写一下,这是一篇18.06线性代数课程总结,涉及线性代数的关键工程要点。其实就是怼大家如果基础差(看字都看不懂就是基础差,这都不懂。。。别说自己哪怕是了解机器人状态估计或SLAM,说熟悉和精通一定diss惨你),一定要多去认真看看18.06。现存世界所有工程中的非线性优化,绝大部分以建立假设后,以线性优化来近似或逼近。
VIO-VSLAM中,会涉及线代,概率,高数,李群李代数等等,线代占了一大半。国内线代的教育整体比较零碎(现在学的和我20年前学的东西差不多。。。),没有全面强调其重要性,18.06课程在B站浏览量不算太高(这个课程我在过去的工作和学习过程中来回看过10遍以上),同时认真推荐下我永远的偶像Gilbert Strang老师86岁时在2020年发布的新课,这个是必须精通18.06之后了。
实际上并不仅止于VIO-VSLAM,过去19年我的主要工作中,包括信号处理,图像压缩与转换,包括所有机器视觉相关的工作,都紧密地和线性代数结合。如何与矩阵处理工具结合,开发自己的算法,或硬化成电路。这一门课程都属于本质学科(工程本质是数理)。如果今天写的你有看不懂的,就一定要去弄懂它。
矩阵即方程组的几何解释。后续A'代表A的转置矩阵,A*代表A矩阵的逆,A"代表A矩阵的共轭。(我懒。。。实在不想敲公式)
矩阵消元,乘法和逆的基础解释,LU分解就不说了。重点是掌握高斯消元。
(一)从矩阵A的置换和转置,子空间,可解性开始:
1.置换矩阵:行重新排列了的单位矩阵I,可逆,可对矩阵进行行变换
2.向量空间由所有空间中的向量构成,缺一不可。
加法,数乘和其他线性组合后仍然在向量空间,它对这些运算封闭
R2直线子空间:R2整体,零向量,任何穿过原点的直线
R3子空间:R3整体,零向量,任何穿过原点的直线,任何穿过原点的平面
所有线性组合构成了列空间。
这个列空间必然过原点,但是三维空间的P平面与L直线(不在P平面)的并集不是子空间,因为加法不封闭。交集是:0,在子空间
这个法则对任意2个子空间生效。向量空间必须满足的条件:加法和乘法封闭
首先需要注意的是:方程组并不总是有解。0向量是解,同时每一列也是解。
正规方程Ax=b中,只有b是各列线性组合(即属于A的列空间)时,才有解。除了0零向量,Ax中还包含了系数C/权重
主列:列之间线性无关,没有互为线性组合的列,主元所在的列
零空间: Ax=0中所有的解,它们构成一个子空间。
Ax=b,如果b仅是在列空间中,x无法组成向量空间,因为没有零向量,是一个不穿过原点的直线或者平面或者其他什么的(高维)~。
自由变量所在的自由列可以随意取值(一般是0和1),解出主元,得到特解,每一个自由变量对应一个特解,特解个数就是自由变量个数,然后所有特解的线性组合为Ax=0的解。
简化后的主列矩阵是单位阵,主列个数为秩的个数r。
将b放在矩阵A最后一列,生成增广矩阵。
如果行的线性组合后对应的结果为0行,对应的b一定为0。全部自由变量为0就可以很容易找到一个特解。对于方程组的某个解,它与零空间内任意向量之和仍然为方程组的解。
如果考虑秩r的mxn矩阵A,
R矩阵:矩阵的行最简形式矩阵
r≤m r≤n
列满秩 r=n,此时自由变量为0,零空间只有0
如果有解,只有一个特解,只有0或1个解
行满秩 r=m,此时有m个主元,自由变量n-r或n-m个
r=m=n情况必定是可逆矩阵,
r=n<m, R=I,0或唯一解
r=m<n, 1个或无穷解
r<m, r<n,0或无穷解
(二)线性相关,基和维数:
向量组线性无关:表示任何C1X1+C2X2+...CnXn结果都不为零,除非所有C为0
向量组线性无关不能有零向量,平面内多个向量一定相关
线性无关的条件是零空间里面只有零向量 ,秩RANK=n,无自由变量,
反之相关 秩RANK<n,有自由变量
一堆向量v生成了一个向量空间(列空间),代表这个空间包含了这个向量组的所有线性组合
列空间内的向量不一定线性无关,列空间中的一组基<=向量个数
维数属于空间,同样空间没有秩,只有矩阵才有秩
基:一组向量,足够但是不多,1.正好生成整个空间,2.同时线性无关
n x n 矩阵以这类向量构建则可逆
所有基向量的数量相等,基向量数量等于空间维数
秩为r的m x n矩阵,零空间向量数:n-r,基的数量等于r
四个子空间: 列空间C(A)在m中,零空间在n中,行空间(行向量生成行空间,基性质一样)在n中,行空间的零空间(A转置)在m中,或者叫做左零空间
列空间的维数是r
行空间的维数也是r
零空间的维数:n-r,自由变量个数
左零空间的维数:m-r
行变换不会对行空间产生影响,但是影响了列空间
行空间的基,是矩阵行最简形式R的前r(秩数)
A和R的行空间与基是一样的
一个可逆方阵的行最简形式,其实是一个单位矩阵(高斯-若尔当形)
但是如果是m x n矩阵,需要对单位阵I进行对应的行变换
自由变量对应的E中的行向量就是我们需要的组合(对应左零空间)
矩阵其实也就是向量空间
比如所有的3x3矩阵构成一个矩阵空间,上三角矩阵/所有的对称矩阵/对角矩阵都是他们的子空间
这个时候空间仍然对加法和数乘封闭
(三)矩阵空间,秩1,小世界,图论与网络:
这块会讲到关键的因子图和矩阵间的简单关联
3x3矩阵空间M的基和维数是9
对称矩阵S 的维数是6
上三角矩阵U的维数是6
S+U 这种情况只能用S中的任意元素加上U中的任意元素,这样可以得到所有的3 x 3矩阵
维数:S维数+U维数=他们之间交与和的维数的和
二阶微分方程解的维数是2
秩1矩阵就和积木一样,比如一个秩4的矩阵可以由4个秩1矩阵组合
秩4加秩4矩阵的秩不会大于8,但是不等于4,同样秩1矩阵的和的秩不等于1
求子空间的一组基,需要将线性无关向量列出来,然后再在各个主元上赋值把基求出来。
图/因子图:一般由顶点和边构成。
转换为m x n矩阵形式:顶点对应m,边对应n。VIO-VSLAM中是大量应用因子图优化的,再以卡尔曼滤波或BA完成。
小世界:比如全球人际关系,6步法关联任何2个人之间。
图中的回路,意味着“相关”,通过矩阵A可以算出各个边上的差值。
图通过转置调节回了m>n(正常方程组m>n)的情况,变成了更加好解的情况,在4个子空间间进行转换。没有回路的图就是树,表示A的各行线性无关(各个边线性无关)
重要的欧拉公式:环路loop数量=边edge的数量-(顶点Nodes数量-1)
应用数学通式之一:A'CAx=f
(四)投影矩阵与最小二乘:
行空间与零空间,列空间与左零空间的交角是90°
矩阵和向量点乘能迅速判断是否正交。如果x'x=x1²+x2²+...xn²的条件是正交
两个正交向量点乘为0,零向量与任何向量都正交
两个子空间正交,意味着2个子空间所有的向量之间都正交
零空间和行空间正好将整个空间一分为二并相互正交,因为点乘为0
行空间包含了所有的行和其线性组合,此时这称为n维空间中的正交补。
如果b不在A的列空间中时,Ax=b无解,同时当方程组特别多时,右侧难免有坏数据,比如SLAM中的离散时间测量。
任何A'A是对称矩阵,相对A,它变成了更小的n x n方阵,A'A也是一个性质非常好的矩阵,这个矩阵至关重要。
此矩阵可逆(当零空间只有零向量时,各列线性无关),和原矩阵秩相等
假设向量b在向量a上的投影是p,则误差e=b-p (几个关系式就不写了。。很基础)
这个式子,给a加系数投影不变,给b加系数投影随之改变
一个投影矩阵随便作用于某个向量,最后投影P矩阵如下:
你用任何b乘这个矩阵,总是在这个矩阵的列空间中,P矩阵是一个秩1矩阵
投影是因为Ax=b可能会无解,Ax总在列空间中,而b未必
此时问题被转换为了Ax^=p,因为p在列空间中,可以用来逼近目标
转换到3维,b投影到平面,首先要有平面的一组基(线性无关),比如a1和a2
e=b-p,垂直于平面,p是基向量的组合
b-Ax^其实就是e,它也垂直于平面。此时e在左零空间N(AT)中,又垂直于列空间C(A)
这时推导出投影矩阵主公式,A通常不可逆,非方阵
如果A可逆,则投影矩阵P投影到了整个列空间(也是整个空间),是单位阵I
投影矩阵P转置=P,且对称,同时P²=P
最小二乘法:b垂直于列空间是因为P在A转置的零空间
如果P是个投影,那么I-P也是,所有误差e的平方和为最小二乘法
最小化这个||Ax-b||²=||e||²,并剔除离群值outliers
这是应用数学最重要的公式
A'A即可逆也对称(A中列线性无关,互相垂直的各列必然线性无关)
然后对这个二次函数求偏导得出结果,e垂直于列空间
(五)正交矩阵,QR分解和正交性质
垂直即正交,q代表正交向量,Q代表正交矩阵
如果i=j则qi'qj=1,如果i不等于j,则qi'qj=0
P=Q(Q'Q)*Q'=(QQ')(QQ')=QQ'=I
Q'Q如上,最后生成单位阵I,求的都是矩阵点积
Q为方阵时,是正交矩阵并且可逆,其转置等于逆。
Q也可以是长方形的,投影矩阵和A形式类似,当Q是方阵时,其投影矩阵P投影到整个列空间,为单位阵I
A'Ax^=A'b,现在A变成方阵Q,则Q'Qx^=Q'b,简化成x^=Qb
Gram Schmidt法:
将线性无关的向量组变为正交。a,b变为A,B
从b当中求一个向量,使其垂直于a/A
这个B=e,用b减去其投影:B=b-(A'b/A'A)A,最后再除以自身长度
因为互相垂直正交,然后再找出C正交于A和B
写一个减号,减去A和B方向上的分量。最后结果不是单位向量,再除以自身长度||C||
Q和A有同一个列空间,A=LU(消元),将A转为Q称为QR分解,A=QR
下标i不等于j则为0,因为垂直和正交QR的R为右上三角矩阵
(六)行列式主要性质
现代数学行列式的重要度发生了变化,关键是其核心性质
性质1:单位阵I行列式为1
性质2:交换行,则行列式正负转换
性质3a:行列式某行乘t,相当于t乘整个行列式
性质3b:行列式某行a,b加上A,B(如二维),行列式变为a,b和A,B各自对应c,d的行列式之和。
性质4:如果两行相等,则行列式为零
性质5:消元行列式不变,并化为右上三角矩阵,如果对角线有零,则行列式为0
性质6:如果行列式有1行是0,则整个行列式为0
性质7:消元后的上三角阵U,其行列式为主元的乘积(核心性质)
性质8:行列式非零则可逆,为零则矩阵奇异
性质9:detAB=(detA)(detB), detA*=1/detA,detA*A=I(detA*)(detA)=1
性质10:detA'=detA
(七)特征值与特征向量
特征值和特征向量在现代工程中是核心
有特定的向量能使得Ax平行于x
满足Ax=λx,此时x是特征向量,λ是特征值
零空间向量Ax=0,矩阵奇异,则行列式为0,特征值为0
投影矩阵P的特性:特征值为1(在投影矩阵平面)或0(2个垂直关系)
特征值的和等于对角线元素(迹trace)的和
特征值与特征向量解法:先解出一组λ,det(A-λI)=0,寻找零空间null space,利用消元法,找出主列,给自由变量赋值,找出其他的x(因式分解)。
特征值不满足线性关系,或乘积关系。
(八)对角线与A的幂
假设A有n个线性无关的特征向量,按列组成矩阵S,称为特征向量矩阵
通过矩阵乘法操作,A=SΛS*,其中Λ是由所有特征值λ构成的单位矩阵(这一点非常关键)。
A²的特征值是λ²,特征向量也一样(推导:A²=(SΛS*)(SΛS*)=SΛ²S*=λ²)
同样A的K次方的特征值是A特征值的K次方,特征值是计算矩阵幂的一种方法,如果K趋向于无穷,如果这些值都小于1,则A的K次方趋于零。(注意,矩阵幂级数展开广泛应用于机器人及SLAM学科落地)
一个多维单位矩阵I,只有一个特征值重复n次,但是其特征向量均线性无关。
如果特征值各不相同,则可以进行对角化
uk+1=Auk,从一个已知向量u0开始
进行幂数展开:u1=Au0, u2=A²u0......uk=A(k次方)u0
u0=c1x1+c2x2....+cnxn=Sc (c是系数向量)
A(k次方)u0=c1λ1(k次方)x1+c2λ2(k次方)x2+...cnλn(k次方)xn=Λ(k次方)Sc
将矩阵A进行k次方,则高幂数项影响消除,剩下的只有特征向量。
关键在于确定A的特征值和特征向量,接着的展开式把u0展开成特征向量的线性组合。
离散时间t估计,微分方程都可以加以应用,此时当0个特征值时我们就得到了稳态。
微分方程通解可以以这种形式得到,系数c可以从初值得到。
我们需要λ的实数部分为负,虚数部分不产生影响,如果λ的实数部分为正,则解无法收敛。
需要确定特征值,特征向量与其系数
v(t)=e(Λt次方)v(0)
u(t)=Se(Λt次方)S*u(0)--->指数函数形式 e(At次方)=Se(Λt次方)S*--->含有矩阵的指数
U=SV
展开成幂级数的形式,是一种定义指数函数的方式。
形成了一个漂亮的泰勒级数展开。
幂级数也是一种求逆矩阵的好方法,t很小就可以去掉若干项,当各项特征值都小于1,则矩阵求逆成立。换言之,通过S和Λ最终得到e(At次方),如果所有特征值实部为负,则对角线指数收敛为0.
微分方程:du/dt=Au,常系数线性方程的解是指数形式的,找到指数和系数,即可以通过线性代数求解完成。微分方程是指数形式。
马尔科夫矩阵定义:
1.每个元素大于等于0
2.每一列加起来都等于1,即使矩阵平方,此性质仍满足
所有矩阵的幂,都是马尔科夫矩阵。
如果某个矩阵A存在特征值1,则其他项会随K增大而消失,剩下x1部分
A-I是奇异的,因为行线性无关,如果是一个方阵,则A和A'的特征值一样。
(九)对称矩阵与正定性
对称矩阵:A=A'
特征值都是实数,特征向量互相垂直(能被选择)
列都标准正交了,用Q来表示
对称矩阵定理:A=QΛQ*=QΛQ'
Ax=λx则 A"x"=λ"x",实矩阵,特征值有λ和λ''
对共轭: 对于a+ib取共轭为a-ib,一个数乘以其共轭只剩下实部
如果一个向量为复向量,那么x''转置x就是其长度平方
当矩阵是实矩阵,共轭就不起作用,当它对称,转置不起作用,最终直接得到A
性质好的矩阵:λ为实数,x互相垂直。
针对复数矩阵的情况:
每一个对称矩阵都是一些互相垂直的投影矩阵的组合
当给定对称矩阵,我们知道特征值的实数
计算高阶对称矩阵的特征值有极高的计算量,特征值分解和SVD分解是很好的方法
对于实矩阵,可以通过主元数进行计算,并判断其正负,这样能控制在更好的计算量
正主元数等于正特征值个数
主元的乘积等于特征值的乘积,等于其行列式的值
正定矩阵:首先对称,特征值为正,主元都是正,子行列式也是正的
只要一条性质满足,其他两条自然满足
复数矩阵与快速傅里叶变换:
当特征值为负数时,特征向量也变复数了,傅里叶矩阵是标准的复数矩阵。
通常n阶方阵乘法要算n²次,加上傅里叶矩阵FFT后复杂度降低为logn, 底数等于次方数。计算复杂度急剧降低。
如果用复数向量,如何求模长:z'z是不对的,因为模长平方为正数
z''z可以得到模长的平方|z|²,复数的共轭,比如i会变成-i,相乘为1(正数),向量的长度为正
z'''z用这个形式表达更好,Hermitian表达了共轭加转置,同时也是向量内积的求法。
假设有互相垂直的向量q1,q2....到qn,同时满足转置和共轭,称之为Unitary矩阵,酉矩阵
傅里叶矩阵(这部分是常识就不说太细了)中的向量w,在原点半径为I的单位圆上做6分,是1的6个六次方根。
-i乘i还是等于1,逆等于它的转置,复矩阵的逆等于其共轭转置。
傅里叶矩阵中F3和F6,F8和F4,F64和F32间存在着联系,如(w64)²=(w32)
此时进行快速傅里叶变换能极大简化运算并不断向下分块。其中对角阵D由W的幂构成
快速傅里叶变换可以一直进行,但是双侧的修正矩阵会变得繁杂,右侧是置换矩阵,左侧由I和D组成。复杂度logn其实就是修正开销加最后那一丢丢。
其核心是一个特殊的标准正交矩阵。
(十)正定矩阵与最小值
正定矩阵:特征值全部为正,行列式和子行列式全部为正,主元a为正,第二个主元是行列式除a,主元的乘积等于行列式值。
最关键的性质是:x'Ax>0
因为这个算法不管系数,全部变成了二次型
鞍点:函数在某一个点上,某一个方向向下,某一个方向向上
函数的最佳观测方向实际是在沿着特征向量的方向上
要注意x'Ax>0仅在极小值上除外,当矩阵正定时,不再有鞍点。
矩阵本质告诉我们的,是一个二阶导数,如果二阶导数为正,则有极小值
针对x1,x2....xn,需要二阶导数矩阵为正定,则有极小值
空间中的流形也取决于维数
2x2的情况:对一个普通x,y函数取二次型配平方(高斯消元),假设取结果为1,则代表以1为长度取此函数的椭圆切面。
如果此时在鞍点切割,得到双曲线。
一个简单的LU分解即消元,消元就是配平方,配完之后外部的就是主元。
n x n矩阵是同一个逻辑
举例:3x3时,就变成了椭球了(机器人状态估计里整天说的不确定度椭球就是这个)
此时3个轴的长度就是特征向量的方向,轴的长度由特征值决定,因为其本质是特征向量与特征值矩阵的结合。
(十一)相似矩阵,若尔当形与奇异值分解
逆矩阵特征值等于原矩阵特征值的倒数
正定矩阵逆矩阵也是正定矩阵
如果要使用最小二乘,需要证明A'A是正定矩阵
通常我们应用数学中的矩阵m x n是长方形,但是其A'A是方阵加对称
这个矩阵的特性是正定/半正定
假设11x5矩阵,各列线性无关,零空间中无其他向量,秩为n=5,则A'A正定
如果A'A可逆,则最小二乘有解
对于正定矩阵,你不需要进行行交换,也不必担心主元过小或者等于0
A和B是2个n x n矩阵,是相似矩阵,意味存在着某个可逆矩阵M
满足B=M*AM, 如同A和Λ是相似矩阵,S*AS=Λ, 而Λ也是A的相似矩阵中性质最好的。
所有相似矩阵有共同的特征值。特征向量是不同的
但是当特征值相等时,特征向量可能就不再是线性无关了,矩阵无法对角化。这种情况下对角阵的相似矩阵就是自己。其他的都是非对角阵,其中一个最简洁的是:若尔当(jordan)标准形(注意在当代,若尔当标准型的使用变少了,因为有更好的方法,但是得基本了解),比如A=[4,0 1,4]
这些矩阵间的特征向量数量相等,如果进行分块,则命名为若尔当块J。每一个若尔当块对应一个特征向量。形态是对角线由λ,上半三角有1有0,下半三角全0的形式。
J每一个都是可以对角化的块,就是对角矩阵
奇异值分解(SVD分解,至今科学工程界最好和最终的分解之一,差不多算线代最重要的部分了,当然当代科学家和工程师们结合幂级数展开/更好的基变换,有了更多更好的处理方法,那都是后话了。)A=UΣV'
通常对正定矩阵的分解:A=QΛQ' A=SΛS*
因为一般情况下,特征向量矩阵不是正交矩阵,所以需要使用SVD分解
我们在行空间中找一个典型向量v1,然后变换到列空间中的某向量,记为u1,所以u1=Av1,我们需要找到的是列空间的一组正交基,变换到行空间的一组正交基。
当A作用到这组基向量上,这边就得到一组正交向量。
这里通过Gram schmidt法找到A的一组基,也需要考虑到零空间,困难在于找到基向量。
Av1相当于u1的一个倍数,这个倍数不再叫做λ,一般用σ表示:伸缩因子,等于λ开根。
类似的,进行变换,求解AV=UΣ, Σ是由σ构成的对角单位矩阵。
我们需要寻找行空间的一组标准正交基,对称正定矩阵只是其中特例:AQ=QΣ,此时U和V都等于Q
如果有零空间,那这里就有了零空间的基vr+1到vm,把这组完善成整个Rm空间的标准正交基。
A=UΣV'=UΣV*,想办法消掉U变成A'A=VΣ'U'UΣV‘’,U'U被消,变为A'A=VΣ'ΣV,其中Σ'Σ为对角矩阵,结果直接变为了特征值和特征向量形式:QΛQ' ,A并不特别,但是A'A很特别,因为它是对称正定矩阵。
V是A'A的特征向量,U是AA'的特征向量,这是不同的。
反过来同样可以用AA'来消掉V,记得要做标准化,知道模长,并除去(列向量各个分量平方和)
但是A'A和AA'特征值相等。
针对奇异矩阵,奇异矩阵秩为1,行空间列空间都是1维,有零空间,如果r=1,则其中一个特征值为0,求出另一个特征值并开根,最后UΣV'这个矩阵中间的对角元素不够,因为奇异。
u1,u2....ur::正交基 行空间
v1,v2....vr:正交基 列空间
vr+1....vn:正交基 零空间
ur+1....um:正交基 左零空间
Avi=σui
(十二)线性变换,对应矩阵,基变换与图像转换压缩等
这部分直接涉及机器视觉基本操作
线性变换:另一个线性代数的起点
每一个线性变换都对应一个矩阵
判断线性变换的2个条件:
1.加法 2.数乘
零向量通过线性变换一定等于0,但比如计算向量长度,不是线性变换(涉及平方),零向量运算结果不再是0
机器人状态估计中的旋转就是一个标准的线性变换。
理解线性变换的核心在于确定背后的矩阵,只要确定矩阵对于基向量的影响,就理解了整体
这里的T代表变换矩阵,因为v是基向量的线性组合cv1+....cnvn
基最终生成整个空间,矩阵源于坐标系,坐标的存在决定了基的确立,一旦选定了一组基,坐标也随之确定,线性组合中的系数就是坐标值。这些数字表示v由多少个基向量组成。
T: Rn-->Rm,输入空间的一组基来描述输入变量,输出的一组基用来确定输出向量的坐标,共需要两组基: v1,v2...vn w1,w2....wm
选择一个向量v,通过基把它表示出来,于是得到它的坐标。然后把这些坐标值乘以某个矩阵A,得到输出向量的坐标值,通过输出空间的基表示。随便选一组标准基也能出结果,但是明显不如用特征向量。
比如第一列:T(v1)=a11w1+a21w2....am1wm 这里a是系数,然后类推。
求导也是标准的线性变换。输入是一些幂函数,输出是导数
从三维空间到二维空间,目标是求导
矩阵的逆相当于线性变换的逆。
基变换:比如信号压缩,图像变换,图像压缩本质就是基变换。
如512x512图像,一共512²像素,其中假设YUV表示,每个像素0-255,即2的8次方
一个图像就是一个向量,彩色图像3倍,RGB。但是我们得到的大量像素和其相邻像素是相似的
选定一个基相当于8维,我们一般给一个全1向量,这种向量能解决很多问题
归根结底是线性代数的问题,基的选择问题。
可以将512x512分解为8x8=64的块,然后再64维空间中,用傅里叶向量做基变换,输入64个像素得到64个系数(无损压缩),再设定一个阈值丢弃不想要的值确定压缩程度。
全1的信号系数较大,交替的信号系数较小,可能会被丢弃,阈值决定。系数小的交替信号更有可能是噪声或抖动。视频是连续画面,每一帧间很接近,还需要使用预估和修正。
常用的基:傅里叶基,wavelet
关于线性代数的核心问题是,找出系数:c1乘第1个基加到c8乘第8个基。
求解P=Wc, c=W*P
很好的基就能快速求逆:
首先计算要快,因为涉及到逆,比如FFT,FWT
比如傅里叶基,有快速傅里叶变换可以做,降低了复杂度
一些好的性质:二进制计算非常快,小波基正交,基向量正交操作会变得简单很多。
列向量标准正交,则逆等于转置。
其次少量基向量就能接近信号
这个T是变换本身,A和B是相似矩阵,做他们之间的变换,如果我们知道了作用在那8个基向量上的变换是什么,那我们就知道了关于T的一切。因为每一个x都是这些基向量的组合。
其中最好的是特征向量基(完美基),但是因为开销太高,一般不用。
(十三)左右逆与伪逆
针对秩为r的mxn矩阵, m<n
首先要熟悉4个子空间图
AA*=I=A*A,两边都满足的逆是我们通常意义上的逆
列满秩有左逆,列向量线性无关,r=n,零空间只有零向量,Ax=b只有0解或1个解
对于A来说:(A'A)*A':这个是左逆,(A'A)*A'A=I,这是最小二乘中非常重要的情况
一个长方形矩阵没有两边都成立的逆
行满秩有右逆,行向量线性无关,r=m,左零空间只有零向量,但这个情况Ax=b有无穷多个解,有n个主元,n-m个自由变量
对应的:A'(AA')*=I,这个是右逆。
A乘左逆是投影矩阵,投影到列空间。A右逆乘A也是投影矩阵,投影到行空间
伪逆:Ax是列向量的一个组合,我们可以取行空间中所有向量。
我们认为在行空间中的一个向量x,和列空间中向量Ax的关系是一一对应的。因为都是r维空间
变换将零空间的分量消除,如果向量x和y在行空间中 那么Ax和Ay不会相等
但是Ax和Ay都在列空间中,前提是x不等于y
列空间任意向量到行空间某向量的映射,将其相反方向上的映射,称为伪逆。
伪逆将左零空间:A'的零空间中的m-r部分变没了,结果是0
矩阵本身又消除了零空间的结果。只有零向量可以同时属于零空间和行空间
矩阵A是一个很好的,可逆的映射,从行空间映射到列空间,如果没有零空间的干扰,逆就成立。
如果用最小二乘,伪逆就变得非常重要
如果列不满秩,就有列向量线性相关,此时ATA矩阵奇异
如何找出伪逆:首先从SVD分解开始,mxn矩阵:UΣV',对角阵的伪逆是nxm矩阵,这时ΣΣ+中的σ,变成了1/σ。 其他范式不变。
按照这个方式,每一个矩阵都有伪逆。
SVD的奇妙之处在于,把所有的问题归于对角阵。
伪逆就像是最小的矩阵,得到最好的矩阵ΣΣ+,得到r个1。
找出能快速求解伪逆的因子,就能快速的解决我们的工程问题。
一气呵成写完。。。不知不觉发现已经1万多字。。。感谢杰出的Gilbert Strang老师,祝您身体健康长青,科研与工程路漫且长,但也经营中重要的一个部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)