首页 > 学院 > 开发设计 > 正文

视觉惯性单目SLAM (五)矩阵微积分

2019-11-08 00:23:11
字体:
来源:转载
供稿:网友

1. 基本概念

矩阵微积分:Matrix Calculus

微积分的核心思想:局部线性化

矩阵函数(包括向量函数)对标量的导数:等于它的各个元素对标量的导数,且是同阶的矩阵

张量积( Kronecker PRoduct of matrices ⊗ ; a.k.a, tensor product.) A∈Rm×n,B∈Rp×q B⊗A=⎡⎣⎢⎢⎢⎢⎢B11AB21A⋮Bp1AB12AB22A⋮Bp2A⋯⋯⋱⋯B1qAB2qA⋮BpqA⎤⎦⎥⎥⎥⎥⎥∈Rpm×qn

阿达玛积(Hadamard product: A∈Rm×n,B∈Rm×n A∘B=[aij∗bij]

1.1 常用求导操作

∂(aTx)∂x=a

∂(aTxb)∂x=abT

∂(aTxTb)∂x=baT

Gradient and Hessian

f(x)=xTAx+bTx

梯度:∇xf=∂f∂x=(A+AT)x+b

海森矩阵:∂2f∂x∂xT=A+AT

基本规则

∂A=0(A是常量)

∂(X+Y)=∂X+∂Y

∂(αX)=α∂X

乘法规则

∂(X∘Y)=(∂X)∘Y+X∘(∂Y)

∂(XY)=(∂X)Y+X(∂Y)

∂(X⊗Y)=(∂X)⊗Y+X⊗(∂Y)

行列式的导数(Derivatives of Determinants)

∂(det(X))=det(X)tr(X−1(∂X))

∂(ln(det(X)))=tr(X−1(∂X)

链式法则(The Chain Rule)

设:U=f(X) 则:∂g(U)∂X=∂g(f(X))∂X 链式法则为: ∂g(U)∂xij=∑k=1m∑l=1n∂g(U)∂ukl∂ukl∂xij ∂g(U)∂Xij=tr[(∂g(U)∂U)T∂U∂Xij]

迹的导数(Derivatives of Traces)

函数f是函数F的标量导数(f() is the scalar derivative of F())

∂tr(F(X)∂X=f(X)T

∂∂Xtr(XA)=AT ∂∂Xtr(AXB)=ATBT∂∂Xtr(AXTB)=BA∂∂Xtr(XTA)=A∂∂Xtr(X2)=2XT弗罗伯尼范数求导(Derivatives of Frobenius Norm) 弗罗伯尼范数:||A||F=∑ij|Aij|2−−−−−−−−√=tr(AAH)−−−−−−−√导数:∂∂X||X||2F=2X=∂∂Xtr(XXH)

1.2 导数公式

这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述

2. 矩阵一阶求导规则汇总

偏导数/偏微分:Partial Derivatives

矩阵导数:Matrix Derivatives

自变量(independent variable):可以为标量(Scalar)、向量(Vector)、矩阵(Matrix)

因变量(dependent variable):可以为标量(Scalar)、向量(Vector)、矩阵(Matrix)

行:为因变量类型(y,y,Y函数类型)

列:为自变量类型(x,x,X

下表中,i代表行,j代表列

向量: 是一个只有一列的矩阵

因变量向量/标量的维数:决定导数的行数

自变量向量/标量的维数:决定导数的列数

下表中使用dd与∂∂意思相同

类型 Scalar(y) Vector(y,列向量 m×1) Matrix(Y) m×n
Scalar(x) dydx dydx=[∂yi∂x]m×1(向量y的切向量) dYdx=[∂yij∂x]m×n(切线矩阵)
Vector(x) (列向量 n×1) dydx=[∂y∂xj]1×n(梯度行向量) dydx=[∂yi∂xj]m×n(雅可比矩阵)
Matrix(X) (m×n) dydX=[∂y∂xji]n×m(梯度矩阵)

2.1 向量对标量求导(Vector-by-scalar)

向量y:向量中每个元素yi为自变量x的函数,简称:向量函数(Vector Function) y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥

标量x

向量对标量求导:dydx dydx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x∂y2∂x⋮∂ym∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

几何意义dydx表示向量y的切向量(tangent vector)

映射y:R1→Rm

2.2 标量对向量求导(梯度:Scalar-by-vector)

映射:Rn→R1

求导结果:梯度

标量y

向量x x=⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥

标量对向量求导:dydx,其结果为梯度(Gradeint) ∇y(x)=∇y=dydx=[∂y∂x1,∂y∂x2,⋯,∂y∂xn]几何意义:它表示一个标量场在空间Rn中的梯度(Gradient),在物理学中,电场是电势的矢量梯度。

2.2.1 梯度(Gradient)

梯度定义:对于一个可微的、多变量的实值函数f(x1,x2,⋯,xn),其梯度是一个向量,且向量的元素为∂f∂xi(x),上体定义如下: gradf=∇f(x)=∇f=[∂f∂x1,∂f∂x2,⋯,∂f∂xn]

梯度是行向量还是列向量?:依据具体使用环境而定

图片的梯度表示: 这里写图片描述 这里写图片描述

Jacobian矩阵与梯度的关系: Jacobian矩阵是1个具有n个变量的向量函数的梯度的推广。即一个多变量的实值函数求偏导生成一个梯度向量,而m个多变量的实值函数求偏导生成一个Jacobian矩阵(由多个梯度行向量组成)。

f:Rn→R1:求偏导生成(梯度向量GradientVector)

f:Rn→Rm:求偏导生成(雅可比矩阵JacobianMatrix)

梯度向量的长度:表示在梯度方向变化的快慢,即陡峭程度(长度越大,变化越大)

梯度向量的方向:表示在指定点最陡的方向(即切线斜率最大的方向)

如果标量函数的梯度某点x为0,则称f在点x有一个临界点/驻点(可能为极大值点、或极小值点、或拐点)

2.2.2 方向导数(Directionial Derivative)

梯度向量方向表示最陡的方向,方向导数描述指定方向的陡峭程度(如爬山,沿着最陡的方向可能比较困难,选一个合适的陡峭的路上山比较可行)

方向导数用梯度表示(directionalderivative):空间矢量x的标量函数f(x)在单位向量v方向上的方向导数用梯度定义如下: ∇vf(x)=∇f(x)⋅v ∇vf(x):方向导数;∇f(x):为函数f(x)的梯度;(⋅):为点乘(dotproduct) 或简记为:∇vf=dfdxv

方向导数(是一个标量<一个数>)的定义

标量函数f(x) f(x)=f(x1,x2,⋯,xn)沿着向量v方向 v=[v1,v2,⋯,vn]

方向导数定义为: ∇vf(x)=limh→0f(x+hv)−f(x)h,h为标量

如果函数fx处可微,则沿着任意向量v的方向导数都存在,且为: ∇vf(x)=∇f(x)⋅v

方向导数的意义

一个多元的可微函数在点x处沿着向量v方向的方向导数的物理含义:当以速度v移动通过点x时,f相对于时间(t)的瞬时变化率

方向导数的性质

求和规则(sum rule): ∇v(f+g)=∇vf+∇vg常数因子规则(constant factor rule: c为任意常数): ∇v(cf)=c∇vf乘法规则(product rule): ∇v(fg)=g∇vf+f∇vg链式法则(chain rule):如果g在点p处可微,且hg(p)处可微,则有: ∇v(h∘g)(p)=h′(g(p))∇vg(p)

2.3 向量对向量求导(Vector-by-vector)

向量函数y(Vector Function):向量的元素为输入向量x的函数(因变量) y=⎡⎣⎢⎢⎢⎢y1y2⋯ym⎤⎦⎥⎥⎥⎥

输入向量x(Input Vector):向量的元素的自变量 x=⎡⎣⎢⎢⎢x1x2⋯xn⎤⎦⎥⎥⎥

向量对向量求导:dydx,其结果为雅可比矩阵(JacobianMatrix) dydx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y2∂x1⋮∂ym∂x1∂y1∂x2∂y2∂x2⋮∂ym∂x2⋯⋯⋱⋯∂y1∂xn∂y2∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥向量函数对向量的导数表示:推进(或差),或雅可比矩阵(pushforward (or differential), or the Jacobian matrix.)。向量对标量求导、标量对向量求导:是向量对向量求导的特例

2.3.1 雅可比矩阵(Jacobian Matrix)

定义:向量值函数对所有自变量的一阶偏导数生成的矩阵为Jacobian Matrixf:Rn→Rm,x∈Rn,f(x)∈Rm,函数f的Jacobian是Jm×nx=⎡⎣⎢⎢x1⋮xn⎤⎦⎥⎥,f=⎡⎣⎢⎢f1⋮fm⎤⎦⎥⎥ Jf(x)=J=[∂f∂x1⋯∂f∂xn]=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f1∂x1⋮∂fm∂x1⋯⋱⋯∂f1∂xn⋮∂fm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥所有表示方法Jf=Jf(x)=J=Df=∂(f1,⋯,fm)∂(x1,⋯,xn)矩阵元素法表示为Jij=∂fi∂xj

雅可比矩阵的重要性:如果向量函数f在点x可微,Jacobian Matrix定义了从Rn→Rm的线性变换,且是向量函数在点x附近最好的线性近似

如果m=1,向量函数只有一个函数,此雅可比矩阵变为一个行向量(rowvector),即梯度∇f(x)

雅可比矩阵与梯度和导数的关系

对于多变量标量值函数变为:梯度对于单变量标量值函数变为:导数对于多变量向量值函数变为:Jacobian Matrix

用于局部变换

可用于描述强加给图像局部的拉伸、旋转、平移变换(x′,y′)=f(x,y)用于变换一个图像,则Jf(x,y)则描述了(x,y)邻域像素是如何变换的

最好的局部线性近似

若p是Rn中一点,则f在点p可微,其偏导数为Jf(p),则线性变换Jf(p)是点p附近最好的线性近似,即 f(x)=f(p)+Jf(p)(x−p)+o(||x−p||)x→p,||x−p||是x与p间的距离

海森矩阵的来源

多变量标量值函数的梯度的Jacobian Matriax就是海森矩阵,它是此函数的二阶导数非线性变换实例图 这里写图片描述

2.4 矩阵对标量求导(Matrix-by-scalar)

用途:可用于解决最小化问题 矩阵函数Y:Matrix function (矩阵的元素为自变量x的函数 ) Y=⎡⎣⎢⎢⎢⎢⎢y11y21⋮ym1y12y22⋮ym2⋯⋯⋱⋯y1ny2n⋮ymn⎤⎦⎥⎥⎥⎥⎥

标量x

矩阵对标量的导数(切线矩阵tangentmatrix)

dYdx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y11∂x∂y21∂x⋮∂ym1∂x∂y12∂x∂y22∂x⋮∂ym2∂x⋯⋯⋱⋯∂y1n∂x∂y2n∂x⋮∂ymn∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

2.5 标量对矩阵求导(Scalar-by-matrix)

用途:可用于解决最小化问题,如Kalmanfilter标量函数y矩阵自变量X X=⎡⎣⎢⎢⎢⎢⎢x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn⎤⎦⎥⎥⎥⎥⎥标量y对矩阵X求导,其结果为梯度矩阵(gradientmatrix) ∇Xy(X)=dydX=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x12⋮∂y∂x1n∂y∂x21∂y∂x22⋮∂y∂x2n⋯⋯⋱⋯∂y∂xm1∂y∂xm2⋮∂y∂xmn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥标量函数f(X)的方向导数: f(X):其自变量为矩阵Xf(X)在矩阵Y方向的方向导数为: ∇Yf=tr(dfdXY),tr为矩阵的迹

3. 标量对向量的二阶求导(海森矩阵)

定义: Hessian Matrix是一个多变量标量值函数的二阶偏导组成的方阵几何意义:它描述了多变量函数的局部曲率f:Rn→R,x∈Rn,f(x)∈R,如果函数f的二阶偏导数存在且在函数域内连续,则Hn×n为: H=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x1∂x1∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x2∂x2⋮∂2f∂xn∂x2⋯⋯⋱⋯∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂xn∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥元素法表示为: Hij=∂2f∂xi∂xj海森矩阵的来源 多变量标量值函数的梯度的Jacobian Matriax就是海森矩阵,它是此函数的二阶导数 H(f(x))=J(∇f(x))THessian矩阵的特征值: 就是形容其在该点附近特征向量方向的凹凸性,特征值越大,凸性越强。

Hessian矩阵是n×n方阵,且是对称矩阵:

由于二阶导数具有对称性,即: ∂∂xi(∂f∂xj)=∂∂xj(∂f∂xi)所以有: H=HT

Criticalpoints/Stationarypoint(临界点/驻点)

如果标量函数的梯度某点x为0,则称f在点x有一个临界点/驻点(可能为极大值点、或极小值点、或拐点)在点x处的海森矩阵的行列式被称为:判别式(discriminant)如果此判别式为0,则点x被称为:函数f退化临界点(degenerate critical point)或非莫尔斯临界点(non-Morse critical point)如果此判别式不为0,则点x被称为:函数f非退化临界点的(non-degenerate)或莫尔斯临界点 (Morse critical point )

用途

海森矩阵在莫尔斯理论(Morse theory)和突变理论(catastrophe theory)中具有重要作用,因为它的内核和特征值可以对临界点进行分类

海森矩阵的性质

凸函数的Hessian Matrix是半正定的(positive semi-definite(M为对称,对于任意列向量z,有zTMz≥0))如果Hessian矩阵在点x正定的(positive definite (M为对称,对于任意列向量z,有zTMz>0)),则xf的孤立局部极小值点如果Hessian矩阵在点x负定的(negative definite (M为对称,对于任意列向量z,有zTMz<0)),则xf的孤立局部极大值点如果Hessian矩阵有正的和负的特征值,则x是f的一个鞍点(saddle point)

4. 导数 VS 梯度 VS 雅可比矩阵 VS 海森矩阵四者的关系

映射 函数类型 一阶求导 二阶求导
f:R1→R1 标量值函数 导数 0
f:Rn→R1 标量值函数 梯度 海森矩阵
f:Rn→Rm 向量值函数 雅可比矩阵

参考: 1)https://en.wikipedia.org/wiki/Matrix_calculus 2)http://select.cs.cmu.edu/class/10725-S10/recitations/r4/Matrix_Calculus_Algebra.pdf 3)https://ccrma.stanford.edu/~dattorro/matrixcalc.pdf 4)http://www.janmagnus.nl/misc/mdc2007-3rdedition


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表