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为标量
如果函数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)=c∇vf乘法规则(product rule): ∇v(fg)=g∇vf+f∇vg链式法则(chain rule):如果g在点p处可微,且h在g(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×n: x=⎡⎣⎢⎢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=HTCriticalpoints/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)),则x是f的孤立局部极小值点如果Hessian矩阵在点x是负定的(negative definite (M为对称,对于任意列向量z,有zTMz<0)),则x是f的孤立局部极大值点如果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