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

1. 基本概念

  • 矩阵微积分:Matrix Calculus

  • 线

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

  • 张量积( Kronecker product of matrices ⊗ ; a.k.a, tensor product.)

    ARm×n,BRp×q

    BA=B11AB21ABp1AB12AB22ABp2AB1qAB2qABpqARpm×qn

  • 阿达玛积(Hadamard product:
    ARm×n,BRm×n

    AB=[aijbij]

1.1 常用求导操作

  • (aTx)x=a

  • (aTxb)x=abT

  • (aTxTb)x=baT

  • Gradient and Hessian

    • f(x)=xTAx+bTx

    • 梯度:

      xf=fx=(A+AT)x+b

    • 海森矩阵:

      2fxxT=A+AT

  • 基本规则

    • A=0(A)

    • (X+Y)=X+Y

    • (αX)=αX

  • 乘法规则

    • (XY)=(X)Y+X(Y)

    • (XY)=(X)Y+X(Y)

    • (XY)=(X)Y+X(Y)

  • 行列式的导数(Derivatives of Determinants)

    • (det(X))=det(X)tr(X1(X))

    • (ln(det(X)))=tr(X1(X)

  • 链式法则(The Chain Rule)

    • 设:
      U=f(X)

      则:
      g(U)X=g(f(X))X
    • 链式法则为:
      g(U)xij=k=1ml=1ng(U)ukluklxij

      g(U)Xij=tr[(g(U)U)TUXij]
  • 迹的导数(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=[yix]m×1 ( y ) dYdx=[yijx]m×n ( 线 )
Vector( x )
(列向量 n×1 )
dydx=[yxj]1×n ( ) dydx=[yixj]m×n ( )
Matrix( X )
(m×n)
dydX=[yxji]n×m ( )

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

  • yyix ,简称:向量函数(Vector Function)
    y=y1y2ym
  • x

  • dydx

    dydx=y1xy2xymx

  • dydx 表示向量 y 的切向量(tangent vector)

  • yR1Rm

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

  • RnR1
  • y

  • x

    x=x1x2xn

  • dydxGradeint
    y(x)=y=dydx=[yx1,yx2,,yxn]
  • :它表示一个标量场在空间 Rn 中的梯度( Gradient ),在物理学中,电场是电势的矢量梯度。

2.2.1 梯度(Gradient)

  • :对于一个可微的、多变量的实值函数 f(x1,x2,,xn) ,其梯度是一个向量,且向量的元素为 fxi(x)

    gradf=f(x)=f=[fx1,fx2,,fxn]

  • :依据具体使用环境而定

  • :
    这里写图片描述
    这里写图片描述

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

  • f:RnR1:GradientVector

  • f:RnRm:JacobianMatrix

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

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

  • x0fx/

2.2.2 方向导数(Directionial Derivative)

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

  • directionalderivative :空间矢量 x 的标量函数 fx 在单位向量 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)=limh0f(x+hv)f(x)h,h

    • 如果函数 f x处可微,则沿着任意向量 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)=cvf
    • 乘法规则(product rule):
      v(fg)=gvf+fvg
    • 链式法则(chain rule):如果 g 在点p处可微,且 h g(p)处可微,则有:
      v(hg)(p)=h(g(p))vg(p)

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

  • y (Vector Function):向量的元素为输入向量 x 函数(因变量)

    y=y1y2ym

  • x (Input Vector):向量的元素的自变量

    x=x1x2xn

  • dydxJacobianMatrix
    dydx=y1x1y2x1ymx1y1x2y2x2ymx2y1xny2xnymxn
  • 向量函数对向量的导数表示:推进(或差),或雅可比矩阵(pushforward (or differential), or the Jacobian matrix.)。

2.3.1 雅可比矩阵(Jacobian Matrix)

  • :向量值函数对所有自变量的一阶偏导数生成的矩阵为Jacobian Matrix
  • f:RnRm,xRn,f(x)RmfJacobianJm×n
    x=x1xn,f=f1fm

    Jf(x)=J=[fx1fxn]=f1x1fmx1f1xnfmxn

  • Jf=Jf(x)=J=Df=(f1,,fm)(x1,,xn)

  • Jij=fixj
  • :如果向量函数 f 在点x可微,Jacobian Matrix定义了从 RnRm 的线性变换,且 x线

  • m=1,rowvectorf(x)

    • 对于多变量标量值函数变为:梯度
    • 对于单变量标量值函数变为:导数
    • 对于多变量向量值函数变为:Jacobian Matrix
    • 可用于描述强加给图像局部的拉伸、旋转、平移变换
    • (x,y)=f(x,y)Jf(x,y)xy
  • 线

    • pRnfpJf(p)线Jf(p)p线
      f(x)=f(p)+Jf(p)(xp)+o(||xp||)
    • xp,||xp||xp
    • 多变量标量值函数的梯度的Jacobian Matriax就是海森矩阵,它是此函数的二阶导数
  • 线
    这里写图片描述

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

  • :可用于解决最小化问题
  • Y :Matrix function (矩阵的元素为自变量 x 的函数 )
    Y=y11y21ym1y12y22ym2y1ny2nymn
  • x

  • 线tangentmatrix

dYdx=y11xy21xym1xy12xy22xym2xy1nxy2nxymnx

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

  • :可用于解决最小化问题,如 Kalmanfilter
  • y
  • X
    X=x11x21xm1x12x22xm2x1nx2nxmn
  • yXgradientmatrix
    Xy(X)=dydX=yx11yx12yx1nyx21yx22yx2nyxm1yxm2yxmn
  • f(X)
    • f(X):其自变量为矩阵X
    • f(X)在矩阵Y方向的方向导数为:
      Yf=tr(dfdXY),tr

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


    • Hessian Matrix是一个多变量标量值函数的二阶偏导组成的方阵
    • f:RnR,xRn,f(x)RfHn×n
      H=2fx1x12fx2x12fxnx12fx1x22fx2x22fxnx22fx1xn2fx2xn2fxnxn
    • 元素法表示为:
      Hij=2fxixj

    • 多变量标量值函数的梯度的Jacobian Matriax就是海森矩阵,它是此函数的二阶导数
      H(f(x))=J(f(x))T
  • Hessian
    • 就是形容其在该点附近特征向量方向的凹凸性,特征值越大,凸性越强。
  • Hessiann×n :

    • 由于二阶导数具有对称性,即:
      xi(fxj)=xj(fxi)
    • 所以有:
      H=HT
  • Criticalpoints/Stationarypoint(/)

    • x0fx/
    • 在点 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,有 zTMz0 ))
    • 如果Hessian矩阵在点 x 正定的(positive definite (M为对称,对于任意列向量z,有zTMz>0)),则 x f的孤立局部极小值点
    • 如果Hessian矩阵在点 x 负定的(negative definite (M为对称,对于任意列向量z,有zTMz<0)),则 x f的孤立局部极大值点
    • 如果Hessian矩阵有正的和负的特征值,则x是f的一个鞍点(saddle point)

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

映射函数类型一阶求导二阶求导
f:R1R1 标量值函数导数0
f:RnR1 标量值函数梯度海森矩阵
f:RnRm 向量值函数雅可比矩阵

参考:
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

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值