1. 基本概念

  • 矩阵微积分:Matrix Calculus

  • 微积分的核心思想:局部线性化\color {red}{微积分的核心思想:局部线性化}

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

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

    A∈Rm×n,B∈Rp×q

    A \in R^{m \times n}, \quad B \in R^{p \times q}

    B⊗A=⎡⎣⎢⎢⎢⎢⎢B11AB21A⋮Bp1AB12AB22A⋮Bp2A⋯⋯⋱⋯B1qAB2qA⋮BpqA⎤⎦⎥⎥⎥⎥⎥∈Rpm×qn

    B \otimes A = \begin{bmatrix} B_{11}A & B_{12}A & \cdots & B_{1q}A \\ B_{21}A & B_{22}A & \cdots & B_{2q}A \\ \vdots & \vdots & \ddots & \vdots \\ B_{p1}A & B_{p2}A & \cdots & B_{pq}A \\ \end{bmatrix} \in R^{pm \times qn}

  • 阿达玛积(Hadamard product: ∘\circ)
    A∈Rm×n,B∈Rm×n

    A \in R^{m \times n}, \quad B \in R^{m \times n}

    A∘B=[aij∗bij]

    A \circ B = [a_{ij} * b_{ij}]

1.1 常用求导操作

  • ∂(aTx)∂x=a

    \frac {\partial \;( a^T \mathbf x)} {\partial \mathbf x} =a

  • ∂(aTxb)∂x=abT

    \frac {\partial \;(a^T \mathbf x b)}{\partial \mathbf x} = ab^T

  • ∂(aTxTb)∂x=baT

    \frac {\partial \;(a^T \mathbf x^T b)}{\partial \mathbf x} = ba^T

  • Gradient and Hessian

    • f(x)=xTAx+bTx

      f(\mathbf x) = \mathbf x^T A \mathbf x + b^T \mathbf x

    • 梯度:

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

      \nabla_{\mathbf x}f = \frac {\partial f}{\partial \mathbf x} = (A+A^T) \mathbf x + b

    • 海森矩阵:

      ∂2f∂x∂xT=A+AT

      \frac {\partial ^2f}{\partial \mathbf x \partial \mathbf x^T} = A+A^T

  • 基本规则

    • ∂A=0(A是常量)\partial A = 0 \quad (A是常量)

    • ∂(X+Y)=∂X+∂Y\partial (X + Y) = \partial X +\partial Y

    • ∂(αX)=α∂X\partial (\alpha X) = \alpha \; \partial X

  • 乘法规则

    • ∂(X∘Y)=(∂X)∘Y+X∘(∂Y)\partial (X \circ Y) = (\partial X) \circ Y + X \circ (\partial Y)

    • ∂(XY)=(∂X)Y+X(∂Y)\partial (XY) = (\partial X) Y + X (\partial Y)

    • ∂(X⊗Y)=(∂X)⊗Y+X⊗(∂Y)\partial (X \otimes Y) = (\partial X) \otimes Y + X \otimes (\partial Y)

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

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

      \partial (det(X)) = det(X) \; tr(X^{-1} (\partial X))

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

      \partial (ln(det(X))) = tr(X^{-1} \; (\partial X)

  • 链式法则(The Chain Rule)

    • 设:

      U=f(X)

      U = f(X)
      则:

      ∂g(U)∂X=∂g(f(X))∂X

      \frac {\partial g(U)}{\partial X} = \frac {\partial g(f(X))}{\partial X}

    • 链式法则为:
      ∂g(U)∂xij=∑k=1m∑l=1n∂g(U)∂ukl∂ukl∂xij

      \frac {\partial g(U)}{\partial x_{ij}} = \sum_{k=1}^m\sum_{l=1}^n \frac {\partial g(U)}{\partial u_{kl}} \frac {\partial u_{kl}}{\partial x_{ij}}

      ∂g(U)∂Xij=tr[(∂g(U)∂U)T∂U∂Xij]

      \frac {\partial g(U)}{\partial X_{ij}} = tr[ (\frac {\partial g(U)}{\partial U})^T \frac {\partial U}{\partial X_{ij}}]

  • 迹的导数(Derivatives of Traces)

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

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

      \frac {\partial tr(F(X)}{\partial X} = f(X)^T

    • ∂∂Xtr(XA)=AT

      \frac {\partial}{\partial X} tr(XA) = A^T

    • ∂∂Xtr(AXB)=ATBT

      \frac {\partial}{\partial X} tr(AXB) = A^TB^T

    • ∂∂Xtr(AXTB)=BA

      \frac {\partial}{\partial X} tr(AX^TB) = BA

    • ∂∂Xtr(XTA)=A

      \frac {\partial}{\partial X} tr(X^TA) = A

    • ∂∂Xtr(X2)=2XT

      \frac {\partial}{\partial X} tr(X^2) = 2X^T

  • 弗罗伯尼范数求导(Derivatives of Frobenius Norm)
    • 弗罗伯尼范数:

      ||A||F=∑ij|Aij|2−−−−−−−−√=tr(AAH)−−−−−−−√

      ||A||_F = \sqrt{\sum_{ij}|A_{ij}|^2} = \sqrt{tr(AA^H)}

    • 导数:
      ∂∂X||X||2F=2X=∂∂Xtr(XXH)

      \frac {\partial}{\partial X}||X||_F^2 = 2X = \frac {\partial}{\partial X}tr(XX^H)

1.2 导数公式




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

  • 偏导数/偏微分:Partial Derivatives

  • 矩阵导数:Matrix Derivatives

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

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

  • 行:为因变量类型(y,y,Yy, \mathbf y, Y函数类型)

  • 列:为自变量类型(x,x,Xx, \mathbf x, X)

  • 下表中,ii\;代表行,jj\;代表列

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

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

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

  • 下表中使用dd与∂∂意思相同\frac {d}{d}与 \frac{\partial}{\partial}意思相同

类型 Scalar(yy) Vector(y\mathbf y,列向量 m×1m \times 1) Matrix(YY) m×nm \times n
Scalar(xx) dydx\frac {dy}{dx} dydx=[∂yi∂x]m×1\frac {d \mathbf y}{dx} = \begin{bmatrix} \frac {\partial y_i}{\partial x}\end{bmatrix}_{m \times 1}(向量y的切向量\color {red}{向量y的切向量}) dYdx=[∂yij∂x]m×n\frac {dY}{dx} = \begin{bmatrix} \frac {\partial y_{ij}}{\partial x}\end{bmatrix}_{m \times n}(切线矩阵\color {red}{切线矩阵})
Vector(x\mathbf x)
(列向量 n×1n \times 1)
dydx=[∂y∂xj]1×n\frac {dy}{d \mathbf x} = \begin{bmatrix} \frac {\partial y}{\partial x_j}\end{bmatrix}_{1 \times n}(梯度行向量\color {red}{梯度行向量}) dydx=[∂yi∂xj]m×n\frac {d \mathbf y}{d \mathbf x} = \begin{bmatrix} \frac {\partial y_i}{\partial x_j}\end{bmatrix}_{m \times n}(雅可比矩阵)\color {red}{雅可比矩阵)}
Matrix(XX)
(m×nm \times n)
dydX=[∂y∂xji]n×m\frac {dy}{dX} = \begin{bmatrix} \frac {\partial y}{\partial x_{ji}}\end{bmatrix}_{\color {red}{n \times m}}(梯度矩阵\color {red}{梯度矩阵})

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

  • 向量y:向量中每个元素yi为自变量x的函数\color {red}{向量\mathbf y: 向量中每个元素y_i为自变量x的函数},简称:向量函数(Vector Function)

    y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥

    \mathbf y = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix}

  • 标量x\color {red}{标量x}

  • 向量对标量求导:dydx\color {red}{向量对标量求导:\frac {d \mathbf y}{dx}}

    dydx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x∂y2∂x⋮∂ym∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

    \frac {d \mathbf y}{dx} = \begin{bmatrix} \frac {\partial y_1}{\partial x} \\ \frac {\partial y_2}{\partial x} \\ \vdots \\ \frac {\partial y_m}{\partial x} \end{bmatrix}

  • 几何意义\color {red}{几何意义}:dydx\frac {d \mathbf y}{dx}表示向量y\mathbf y的切向量(tangent vector)

  • 映射\color {red}{映射}:y:R1→Rm\mathbf y:R^1 \to R^m

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

  • 映射:Rn→R1\color {red}{映射:R^n \to R^1}
  • 求导结果:梯度\color {red}{求导结果:梯度}

  • 标量y\color {red}{标量 y}

  • 向量x\color {red}{向量 \mathbf x}

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

    \mathbf x = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}

  • 标量对向量求导:dydx,其结果为梯度(Gradeint)\color {red}{标量对向量求导:\frac {dy}{d \mathbf x},其结果为梯度(Gradeint)}
    ∇y(x)=∇y=dydx=[∂y∂x1,∂y∂x2,⋯,∂y∂xn]

    \nabla y(x) = \nabla y = \frac {dy}{d \mathbf x} = \begin{bmatrix} \frac {\partial y}{\partial x_1}, \frac {\partial y}{\partial x_2}, \cdots, \frac {\partial y}{\partial x_n} \end{bmatrix}

  • 几何意义\color {red}{几何意义}:它表示一个标量场在空间RnR^n中的梯度(GradientGradient),在物理学中,电场是电势的矢量梯度。

2.2.1 梯度(Gradient)

  • 梯度定义\color {red}{梯度定义}:对于一个可微的、多变量的实值函数f(x1,x2,⋯,xn)f(x_1, x_2, \cdots, x_n),其梯度是一个向量,且向量的元素为∂f∂xi(x),上体定义如下:\frac {\partial f}{\partial x_i}(x),上体定义如下:

    gradf=∇f(x)=∇f=[∂f∂x1,∂f∂x2,⋯,∂f∂xn]

    grad \; f =\nabla f(x) =\nabla f = \begin{bmatrix} \frac {\partial f}{\partial x_1}, \frac {\partial f}{\partial x_2}, \cdots, \frac {\partial f}{\partial x_n} \end{bmatrix}

  • 梯度是行向量还是列向量?\color {red}{梯度是行向量还是列向量?}:依据具体使用环境而定

  • 图片的梯度表示:\color {red}{图片的梯度表示:}

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

  • f:Rn→R1:求偏导生成(梯度向量GradientVector)\color {red}{f:R^n \to R^1: 求偏导生成(梯度向量 Gradient \; Vector)}

  • f:Rn→Rm:求偏导生成(雅可比矩阵JacobianMatrix)\color {red}{f:R^n \to R^m: 求偏导生成(雅可比矩阵 Jacobian \; Matrix)}

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

  • 梯度向量的方向\color {red}{梯度向量的方向}:表示在指定点最陡的方向(即切线斜率最大的方向)

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

2.2.2 方向导数(Directionial Derivative)

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

  • 方向导数用梯度表示(directionalderivative)\color {red}{方向导数用梯度表示(directional \; derivative)}:空间矢量x\mathbf x的标量函数f(x)f(\mathbf x)在单位向量v\mathbf v方向上的方向导数用梯度定义如下:

    ∇vf(x)=∇f(x)⋅v

    \nabla_{\mathbf v} f(\mathbf x) = \nabla f(\mathbf x) \cdot \mathbf v
    ∇vf(x):方向导数;∇f(x):为函数f(x)的梯度;(⋅):为点乘(dotproduct) \color {red}{\nabla_{\mathbf v} f(\mathbf x):方向导数; \quad \nabla f(\mathbf x):为函数f(x)的梯度;\quad (\cdot):为点乘(dot \; product) }
    或简记为:

    ∇vf=dfdxv

    \nabla_{\mathbf v} f= \frac {df}{d \mathbf x} \mathbf v

  • 方向导数(是一个标量<一个数>)的定义\color {red}{方向导数(是一个标量)的定义}:

    • 标量函数f(x)f(\mathbf x)

      f(x)=f(x1,x2,⋯,xn)

      f(\mathbf x) = f(x_1, x_2, \cdots, x_n)

    • 沿着向量v\mathbf v方向
      v=[v1,v2,⋯,vn]

      \mathbf v = \begin{bmatrix} v_1, v_2, \cdots, v_n \end{bmatrix}

    • 的方向导数\color {red}{方向导数}定义为:

      ∇vf(x)=limh→0f(x+hv)−f(x)h,h为标量

      \nabla_{\mathbf v} f(\mathbf x) = \lim_{h \to 0} \frac {f(\mathbf x + h \mathbf v) - f(\mathbf x)}{h}, \quad h为标量

    • 如果函数ff点x\mathbf x处可微,则沿着任意向量v\mathbf v的方向导数都存在,且为:

      ∇vf(x)=∇f(x)⋅v

      \nabla_{\mathbf v} f(\mathbf x) = \nabla f(\mathbf x) \cdot \mathbf v

  • 方向导数的意义\color {red}{方向导数的意义}:

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

    • 求和规则(sum rule):

      ∇v(f+g)=∇vf+∇vg

      \nabla_{\mathbf v}(f+g) = \nabla_{\mathbf v}f + \nabla_{\mathbf v}g

    • 常数因子规则(constant factor rule: cc为任意常数):
      ∇v(cf)=c∇vf

      \nabla_{\mathbf v}(cf) = c\nabla_{\mathbf v}f

    • 乘法规则(product rule):
      ∇v(fg)=g∇vf+f∇vg

      \nabla_{\mathbf v}(fg) = g\nabla_{\mathbf v}f + f\nabla_{\mathbf v}g

    • 链式法则(chain rule):如果gg在点pp处可微,且hh在g(p)g(p)处可微,则有:
      ∇v(h∘g)(p)=h′(g(p))∇vg(p)

      \nabla_{\mathbf v}(h \circ g)(p) = h'(g(p)) \; \nabla_{\mathbf v}g(p)

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

  • 向量函数y\color {red}{向量函数\mathbf y}(Vector Function):向量的元素为输入向量x的\mathbf x的函数(因变量)

    y=⎡⎣⎢⎢⎢⎢y1y2⋯ym⎤⎦⎥⎥⎥⎥

    \mathbf y = \begin{bmatrix} y_1 \\ y_2 \\ \cdots\\ y_m \end{bmatrix}

  • 输入向量x\color {red}{输入向量\mathbf x}(Input Vector):向量的元素的自变量

    x=⎡⎣⎢⎢⎢x1x2⋯xn⎤⎦⎥⎥⎥

    \mathbf x = \begin{bmatrix} x_1 \\ x_2 \\ \cdots\\ x_n \end{bmatrix}

  • 向量对向量求导:dydx,其结果为雅可比矩阵(JacobianMatrix)\color {red}{向量对向量求导:\frac {d \mathbf y}{d \mathbf x},其结果为雅可比矩阵(Jacobian Matrix)}
    dydx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y2∂x1⋮∂ym∂x1∂y1∂x2∂y2∂x2⋮∂ym∂x2⋯⋯⋱⋯∂y1∂xn∂y2∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

    \frac {d \mathbf y}{d \mathbf x} = \begin{bmatrix} \frac {\partial y_1}{\partial x_1} & \frac {\partial y_1}{\partial x_2} & \cdots & \frac {\partial y_1}{\partial x_n } \\ \frac {\partial y_2}{\partial x_1} & \frac {\partial y_2}{\partial x_2} & \cdots & \frac {\partial y_2}{\partial x_n } \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial y_m}{\partial x_1} & \frac {\partial y_m}{\partial x_2} & \cdots & \frac {\partial y_m}{\partial x_n } \end{bmatrix}

  • 向量函数对向量的导数表示:推进(或差),或雅可比矩阵(pushforward (or differential), or the Jacobian matrix.)。
  • 向量对标量求导、标量对向量求导:是向量对向量求导的特例\color {red}{向量对标量求导、标量对向量求导:是向量对向量求导的特例}。

2.3.1 雅可比矩阵(Jacobian Matrix)

  • 定义\color {red}{定义}:向量值函数对所有自变量的一阶偏导数生成的矩阵为Jacobian Matrix
  • f:Rn→Rm,x∈Rn,f(x)∈Rm,函数f的Jacobian是Jm×n\color {red}{f: R^n \to R^m, \; x \in R^n, \; f(x) \in R^m, \quad 函数f的Jacobian是J_{m \times n}}:
    x=⎡⎣⎢⎢x1⋮xn⎤⎦⎥⎥,f=⎡⎣⎢⎢f1⋮fm⎤⎦⎥⎥

    x = \begin{bmatrix} x_1 \\ \vdots \\ x_n \end{bmatrix}, f = \begin{bmatrix} f_1 \\ \vdots \\ f_m \end{bmatrix}

    Jf(x)=J=[∂f∂x1⋯∂f∂xn]=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f1∂x1⋮∂fm∂x1⋯⋱⋯∂f1∂xn⋮∂fm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥

    J_f(x) = J = \begin{bmatrix} \frac {\partial f}{\partial x_1} & \cdots & \frac {\partial f}{\partial x_n} \end{bmatrix}=\begin{bmatrix} \frac {\partial f_1}{\partial x_1} & \cdots & \frac {\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac {\partial f_m}{\partial x_1} & \cdots & \frac {\partial f_m}{\partial x_n} \end{bmatrix}

  • 所有表示方法\color {red}{所有表示方法}:
    Jf=Jf(x)=J=Df=∂(f1,⋯,fm)∂(x1,⋯,xn)

    J_f = J_f(x) = J = Df = \frac {\partial (f_1, \cdots, f_m)}{\partial (x_1, \cdots, x_n)}

  • 矩阵元素法表示为\color {red}{矩阵元素法表示为}:
    Jij=∂fi∂xj

    J_{ij} = \frac {\partial f_i}{\partial x_j}

  • 雅可比矩阵的重要性\color {red}{雅可比矩阵的重要性}:如果向量函数ff在点xx可微,Jacobian Matrix定义了从Rn→RmR^n \to R^m的线性变换,且是向量函数在点x附近最好的线性近似\color {red}{是向量函数在点x附近最好的线性近似}。

  • 如果m=1,向量函数只有一个函数,此雅可比矩阵变为一个行向量(rowvector),即梯度∇f(x)\color {red}{如果m=1,向量函数只有一个函数,此雅可比矩阵变为一个行向量(row \; vector),即 梯度\nabla_f(x)}

  • 雅可比矩阵与梯度和导数的关系\color {red}{雅可比矩阵与梯度和导数的关系}:

    • 对于多变量标量值函数变为:梯度
    • 对于单变量标量值函数变为:导数
    • 对于多变量向量值函数变为:Jacobian Matrix
  • 用于局部变换\color {red}{用于局部变换}:

    • 可用于描述强加给图像局部的拉伸、旋转、平移变换
    • 如(x′,y′)=f(x,y)用于变换一个图像,则Jf(x,y)则描述了(x,y)邻域像素是如何变换的(x',y') = f(x,y)用于变换一个图像,则J_f(x,y)则描述了(x,y)邻域像素是如何变换的
  • 最好的局部线性近似\color {red}{最好的局部线性近似}:

    • 若p是Rn中一点,则f在点p可微,其偏导数为Jf(p),则线性变换Jf(p)是点p附近最好的线性近似,即若p是R^n中一点,则f在点p可微,其偏导数为J_f(p),则线性变换J_f(p)是点p附近最好的线性近似,即

      f(x)=f(p)+Jf(p)(x−p)+o(||x−p||)

      f(x) = f(p) + J_f(p) (x-p) + o(||x-p||)

    • 当x→p,||x−p||是x与p间的距离x \to p,||x-p||是x与p间的距离
  • 海森矩阵的来源\color {red}{海森矩阵的来源}:

    • 多变量标量值函数的梯度的Jacobian Matriax就是海森矩阵,它是此函数的二阶导数
  • 非线性变换实例图\color {red}{非线性变换实例图}

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

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

    Y = \begin{bmatrix} y_{11} & y_{12} & \cdots & y_{1n} \\ y_{21} & y_{22} & \cdots & y_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ y_{m1} & y_{m2} & \cdots & y_{mn} \\ \end{bmatrix}

  • 标量x\color {red}{标量x}

  • 矩阵对标量的导数(切线矩阵tangentmatrix)\color {red}{矩阵对标量的导数(切线矩阵 tangent \; matrix)}

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

\frac {dY}{dx} = \begin{bmatrix} \frac {\partial y_{11}}{\partial x} & \frac {\partial y_{12}}{\partial x} & \cdots & \frac {\partial y_{1n}}{\partial x} \\ \frac {\partial y_{21}}{\partial x} & \frac {\partial y_{22}}{\partial x} & \cdots & \frac {\partial y_{2n}}{\partial x} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial y_{m1}}{\partial x} & \frac {\partial y_{m2}}{\partial x} & \cdots & \frac {\partial y_{mn}}{\partial x} \\ \end{bmatrix}

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

  • 用途\color {red}{用途}:可用于解决最小化问题,如KalmanfilterKalman \; filter 。
  • 标量函数y\color {red}{标量函数y}
  • 矩阵自变量X\color {red}{矩阵自变量X}
    X=⎡⎣⎢⎢⎢⎢⎢x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn⎤⎦⎥⎥⎥⎥⎥

    X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \\ \end{bmatrix}

  • 标量y对矩阵X求导,其结果为梯度矩阵(gradientmatrix)\color {red}{标量y对矩阵X求导,其结果为梯度矩阵(gradient \; matrix)}
    ∇Xy(X)=dydX=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x12⋮∂y∂x1n∂y∂x21∂y∂x22⋮∂y∂x2n⋯⋯⋱⋯∂y∂xm1∂y∂xm2⋮∂y∂xmn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

    \nabla_X y(X) = \frac {dy}{dX} = \begin{bmatrix} \frac {\partial y}{\partial x_{11}} & \frac {\partial y}{\partial x_{21}} & \cdots & \frac {\partial y}{\partial x_{m1}} \\ \frac {\partial y}{\partial x_{12}} & \frac {\partial y}{\partial x_{22}} & \cdots & \frac {\partial y}{\partial x_{m2}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial y}{\partial x_{1n}} & \frac {\partial y}{\partial x_{2n}} & \cdots & \frac {\partial y}{\partial x_{mn}} \\ \end{bmatrix}

  • 标量函数f(X)的方向导数\color {red}{标量函数f(X)的方向导数}:
    • f(X):其自变量为矩阵X
    • f(X)在矩阵Y方向的方向导数为:
      ∇Yf=tr(dfdXY),tr为矩阵的迹

      \nabla _Yf = tr(\frac {d f}{d X}Y), \quad tr为矩阵的迹

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

  • 定义\color {red}{定义}:

    • Hessian Matrix是一个多变量标量值函数的二阶偏导组成的方阵
    • 几何意义:它描述了多变量函数的局部曲率\color {red}{几何意义:它描述了多变量函数的局部曲率}
    • f:Rn→R,x∈Rn,f(x)∈R,如果函数f的二阶偏导数存在且在函数域内连续,则Hn×n为:f: R^n \to R, x \in R^n, f(x) \in R,如果函数f的二阶偏导数存在且在函数域内连续,则H_{n \times 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⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

      H = \begin{bmatrix} \frac {\partial^2 f}{\partial x_1 \partial x_1 } & \frac {\partial^2 f}{\partial x_1 \partial x_2 } & \cdots & \frac {\partial^2 f}{\partial x_1 \partial x_n } \\ \frac {\partial^2 f}{\partial x_2 \partial x_1 } & \frac {\partial^2 f}{\partial x_2 \partial x_2 } & \cdots & \frac {\partial^2 f}{\partial x_2 \partial x_n } \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial^2 f}{\partial x_n \partial x_1 } & \frac {\partial^2 f}{\partial x_n \partial x_2 } & \cdots & \frac {\partial^2 f}{\partial x_n \partial x_n } \\ \end{bmatrix}

    • 元素法表示为:
      Hij=∂2f∂xi∂xj

      H_{ij} = \frac {\partial^2f}{\partial x_i \partial x_j}

  • 海森矩阵的来源\color {red}{海森矩阵的来源}
    • 多变量标量值函数的梯度的Jacobian Matriax就是海森矩阵,它是此函数的二阶导数

      H(f(x))=J(∇f(x))T

      H(f(x)) = J(\nabla f(x))^T

  • Hessian矩阵的特征值\color {red}{Hessian矩阵的特征值}:
    • 就是形容其在该点附近特征向量方向的凹凸性,特征值越大,凸性越强。
  • Hessian矩阵是n×n方阵,且是对称矩阵\color {red}{Hessian矩阵是n×n方阵,且是对称矩阵}:

    • 由于二阶导数具有对称性,即:

      ∂∂xi(∂f∂xj)=∂∂xj(∂f∂xi)

      \frac {\partial }{\partial x_i} \left(\frac {\partial f }{\partial x_j} \right) = \frac {\partial }{\partial x_j} \left(\frac {\partial f }{\partial x_i} \right)

    • 所以有:
      H=HT

      H = H^T

  • Criticalpoints/Stationarypoint(临界点/驻点)\color {red}{Critical \; points/Stationary \; point(临界点/驻点)}

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

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

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

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

映射 函数类型 一阶求导 二阶求导
f:R1→R1f:R^1 \to R^1 标量值函数 导数 0
f:Rn→R1f:R^n \to R^1 标量值函数 梯度 海森矩阵
f:Rn→Rmf:R^n \to R^m 向量值函数 雅可比矩阵

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

视觉惯性单目SLAM (五)矩阵微积分相关推荐

  1. 视觉惯性单目SLAM (三)优化方法

    1. 最小二乘法 最小二乘法:Least Squares Method (LSM) 函数: y=f(x,θ) y = f ( x , θ ) y=f(x,\theta) θ θ \theta为待估参数 ...

  2. 视觉惯性单目SLAM (二) 算法基础知识

    1. 基本概念 视觉惯性:Visual-Inertial (VI) VI ORB-SLAM:视觉惯性ORB-SLAM VI ORB-SLAM输入: IMU数据(用B表示,加速度:aB:角速度:ωB\m ...

  3. 视觉惯性单目SLAM (一)算法描述

    1.视觉惯性ORB-SLAM基本知识 视觉惯性:Visual-Inertial (VI) VI ORB-SLAM:视觉惯性ORB-SLAM VI ORB-SLAM输入: IMU数据(用B表示,加速度: ...

  4. Attention SLAM:一种从人类注意中学习的视觉单目SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡椒味的口香糖 来源丨GiantPandaCV 0. 引言 当人们在一个环境中四处走动时,他们通 ...

  5. 单目slam基础 特点匹配 光流匹配 单应变换恢复变换矩阵 本质矩阵恢复变换矩阵 深度滤波

    非滤波单目slam基础 非滤波方法的单目视觉SLAM系统综述 论文 直接法 特征点法 混合法区别与联系 按照 2D−2D 数据关联方式的不同 ,视觉定位方法可以分为直接法.非直接法和混合法1. 直接法 ...

  6. ORB-SLAM:精确多功能单目SLAM系统

    ORB-SLAM: a Versatile and Accurate Monocular SLAM System Taylor Guo, 2016年3月18日-9:00 原文发表于:IEEE Tran ...

  7. 基于交汇的多机器人协作单目SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨泡泡机器人SLAM 标题:Multirobot Collaborative Monocular ...

  8. 用于自动驾驶的混合稀疏-稠密单目SLAM系统

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 作者丨泡椒味的口香糖 来源丨 GiantPandaCV 0. 引言 随着自动驾驶系统的推广,越来越多 ...

  9. PSL‑SLAM:PSL‑SLAM: a monocular SLAM system using points and structure lines in Manh 曼哈顿世界中的点线单目SLAM

    文章下载地址:https://download.csdn.net/download/weixin_50508111/85811572 一.文章简介 1. 文章类型/时间/作者/所属单位: 期刊论文/2 ...

最新文章

  1. 机器学习 凝聚态物理_机器学习遇到了凝聚的问题
  2. Artifact到底是什么
  3. android PPPoE拨号调试记录
  4. 硅谷谍战: Menlo Park某VC是CIA开的, 你们公司实习生可能是科技间谍…
  5. 旋转合并照片墙-特效照片墙
  6. OFD转PDF格式免费在线转换
  7. 利安德巴赛尔任命Peter Vanacker任首席执行官;纬湃科技斩获长城汽车逆变器大额订单 | 能动...
  8. 清华大学何平:央行数字货币具备许多优势 但不可盲目推进
  9. java 将5mb以内图片压缩至200kb以下
  10. Zotero中文文献管理
  11. 用户同步管理及集群初始配置-集群搭建步骤7
  12. 计算机学院年会,全国高等院校计算机基础教育研究会2019学术年会在我校成功举办...
  13. 英语软件的日志怎么写
  14. B+树真的不难,楼下菜大爷都能学得会的B+树!(数据结构可视化神器推荐)
  15. Emlog博客主题模板 ZanBlog3 优化版 V4
  16. 如何用 JS 实现 3D 赛车效果
  17. Android闪闪发光字体Shimmer效果
  18. 对无人机高度环的思考和第一次炸机体验
  19. 优秀自我简介200字_优秀大学生自我介绍200字
  20. java手机电池充电代码_Android中获取电池电量实例代码

热门文章

  1. Java210道常见的面试
  2. 在virtualbox中导入.vmdk文件
  3. mac 查看端口_交换机端口对应的mac地址与IP地址
  4. 峰值检测电路和精密整流电路
  5. 如何在html添加悬浮页面,如何设置悬浮窗口?
  6. 二建《机电》案例 100 问
  7. [含lw+源码等]微信小程序考勤签到管理系统+后台管理系统[包运行成功]Java毕业设计计算机毕设
  8. 最佳平方逼近 matlab,最佳平方逼近的Matlab
  9. 13.创建活动、布局、活动关联布局、注册活动
  10. 电机与运动控制笔记整理(三)——异步电机概述