#原文地址
**注:**不要把它和几何运算或者是向量运算混淆
#前言:
在数学中,矩阵微积分是进行多变量微积分的一种特殊符号,特别是在矩阵的空间上。 它将关于许多变量的单个函数的各种偏导数和/或关于单个变量的多变量函数的偏导数收集到可以被视为单个实体的向量和矩阵中。 这大大简化例如找到多元函数的最大值或最小值,以及求解微分方程组的操作。 这里使用的符号通常用于统计和工程中,而张量指数符号在物理学中是比较常用的。
两种对立的符号(行向量和列向量)把矩阵微积分分成了两个独立的阵营。这两个阵营的区别就是他们把标量的导数以行向量还是列向量写入。以行向量还是列向量写入都是可能的,即使人们通常在和矩阵同时处理的时候是以行向量(而不是列向量)的形式写入。一个简单的约定(使用行向量还是列向量)可能成为某个经常使用矩阵微积分计算的行业的业内标准(比如,经济学,统计学,估计理论,和机器学习)。但是即便是某个固定领域中的作者也可能同时使用这两种书写方式。即使在这个领域中已经有了一个大家都认可的规范书写方式。如果不认真处理这两种书写方式混用的情况,则会导致非常严重的错误。因此必须保证符号一致性,这两种约定和他们的区别在布局约定的时候就已经确定了。
#范围
矩阵微积分是指一组不同的符号,这组符号使用矩阵和向量来收集因变量的每个分量相对于自变量的每个分量的导数。总的来说,自变量可以是标量,向量,或者是一个矩阵,因变量也可以是上述的三者之一。每一种不同的自变量和因变量的组合都有不同的一套运算规则。矩阵符号是一种有组织的可以方便收集很多导数的方式。
作为第一个例子,考虑向量微积分中的梯度运算。对于一个有三个自变量的标量方程,f(x1,x2,x3)f(x_1,x_2,x_3)f(x1​,x2​,x3​),梯度被定义为下面的方程式:
∇f=∂f∂x1x1^+∂f∂x2x2^+∂f∂x3x3^\nabla f=\dfrac{\partial f}{\partial x_1}\hat{x_1}+\dfrac{\partial f}{\partial x_2}\hat{x_2}+\dfrac{\partial f}{\partial x_3}\hat{x_3} ∇f=∂x1​∂f​x1​^​+∂x2​∂f​x2​^​+∂x3​∂f​x3​^​
其中:xi^i≤i≤3\hat{x_i}\space i\leq i\leq 3xi​^​ i≤i≤3的和是单位向量。
这种形式的导数可以被看作是标量fff对向量x\mathbf{x}x其结果可以被向量形式表示。
∇f=∂f∂x=[∂f∂x1∂f∂x2∂f∂x3]T\nabla f=\dfrac{\partial f}{\partial \mathbf{x}}=\left[\dfrac{\partial f}{\partial x_1} \space\dfrac{\partial f}{\partial x_2}\space\dfrac{\partial f}{\partial x_3}\right]^T ∇f=∂x∂f​=[∂x1​∂f​ ∂x2​∂f​ ∂x3​∂f​]T
更为复杂的形式是一个标量方程对一个矩阵进行求导,也就是梯度矩阵,这个矩阵收集了每一个矩阵元素对应位置的求导结果。如果是那样,被求导的标量就必须是一个包含了所有的矩阵元素的方程。作为另一个例子,如果我们有一个由mmm个自变量构成的因变量或函数的nnn维度向量,我们可以考虑因变量向量相对于自变量向量的导数。其结果可以使用一个m×nm\times nm×n维的包含了所有可能求导组合的矩阵。当然,标量,向量,矩阵,一共有3×3=93\times 3=93×3=9中可能的相互求导的方式。当然有些方式的结果维度太高,于是结果过于复杂。
下表收集了六种矩阵形式最整齐的求导结果:

形式 标量 向量 矩阵
标量 ∂y∂x\dfrac{\partial y}{\partial x}∂x∂y​ ∂y∂x\dfrac{\partial \mathbf{y}}{\partial x}∂x∂y​ ∂Y∂x\dfrac{\partial \mathbf{Y}}{\partial x}∂x∂Y​
向量 ∂y∂x\dfrac{\partial y}{\partial \mathbf{x}}∂x∂y​ ∂y∂x\dfrac{\partial \mathbf{y}}{\partial \mathbf{x}}∂x∂y​
矩阵 ∂y∂X\dfrac{\partial y}{\partial \mathbf{X}}∂X∂y​

在这里我们把矩阵作为最一般的情况,把向量和标量分别视为矩阵的特殊形式。而且,我们使用粗体小写字母代表向量,粗体大写字目代表矩阵。这些符号的使用是贯通全文的。
注意到我们也可以讨论向量对矩阵求导,或者是上表中的任何没有填写的部分。然而这些求导的结果的维度太高,所以不能被写成2维矩阵形式。在接下来的三个章节中我们将定义每一种求导形式和与他们相关的一系列的数学计算。请参阅布局约定部分以获取更详细的表格。
##和其他导数的关系
矩阵求导不过是一种方便计算的用来保存一系列偏导结果的符号。Fréchet导数是在设置功能性分析的标准的方式,以获取有关向量的导数。在矩阵的矩阵函数为Fréchet可微的情况下,这两个导数将允许符号的转换。 一般在偏导数的情况下,一些公式可能会在弱分析条件下延伸,而不是像导数的存在那样近似线性映射。
##用途
矩阵微积分用于推导最优随机估计量,通常涉及使用拉格朗日乘子。 这包括的导数有:

  • 卡尔曼滤波器
  • 维纳过滤器
  • 高斯混合的期望最大化算法

#符号
向量和矩阵的偏导数在本节和后面的章节中使用矩阵符号,使用一个变量代表众多变量。在后面的章节中,我们为了区分标量,向量和矩阵将采用不同的书写方式。我们使用M(n,m)M(n,m)M(n,m)表示一个n×mn\times mn×m的矩阵,就是说这个矩阵共有nnn行,mmm列。矩阵使用大写的加粗的字母比如A,X,Y\mathbf{A,X,Y}A,X,Y等来表示。M(n,1)M(n,1)M(n,1)代表一个列向量,使用加粗的小写字母来表示,比如a,x,y\mathbf{a,x,y}a,x,y等。M(1,1)M(1,1)M(1,1)代表一个标量使用小写的斜体不加粗的字母来表示,比如a,t,x{a,t,x}a,t,x等。XT\mathbf{X}^TXT表示矩阵的转置。tr(X)tr(\mathbf{X})tr(X)表示矩阵的迹。det(X)det(\mathbf{X})det(X)是矩阵的行列式。所有的方程是都假定可分级为C1C^1C1,除非另有说明。通常来说,字母表的前半部分(a,b,c,… )(a,b,c,\dots)(a,b,c,…)用来表示常量,而字母表的后半部分用来表示变量(t,x,y,… )(t,x,y,\dots)(t,x,y,…)。
**注:**综上所述,在向量和矩阵中偏导数编排系统中存在不同的符号表示。而且到目前为止都没有一个标准。为了方便,在后面两个章节中,我们统一采用分子布局规范,同时避免更为复杂的讨论。更后面的章节将更加深入讨论布局规范。认识到下面这些是很重要的:

  1. 尽管有“分子布局”和“分母布局”,但是实际上还有多于两种的符号布局可以选择。选择“分子”vsvsvs“分母”(或者在某些情况下,是分子”vsvsvs“混合”)可以独立地进行,标量对向量,向量对标量,向量对向量,向量对矩阵地偏导。有些作者混合使用不同的布局方式。
  2. 下面选择“分子布局”选择并不意味着“分子布局”这是“正确的”或“优越的”选择。 各种布局类型都有优点和缺点。 如果不小心将不同布局的公式结合在一起,就可能导致严重的错误,并且从一个布局转换到另一个时需要注意避免这样的错误。 因此,在使用现有公式时,最好的策略可能是识别使用哪种布局并保持布局一致性,而不是尝试在所有情况下使用相同的布局。

##备选方案
张量索引符号以其爱因斯坦求和约定和矩阵微积分演算是非常相似的,除了一次一个写入仅表示单一组分。它的优点是可以很容易地操作任意高阶张量,而高于二阶的张量则用矩阵符号很难操作。这里所有的工作都可以在不使用单变量矩阵表示法的情况下完成。然而,在估计理论和应用数学的其他领域的许多问题将导致太多的指标得到适当的跟踪,指向这些领域的矩阵微积分。而且,爱因斯坦符号在证明这里提出的身份方面是非常有用的(参见区分一节)作为典型元素符号的替代方法,当明确的和数被执行时会变得麻烦。请注意,矩阵可以被认为是二级张量。
#向量求导
因为向量是只有一列的矩阵,所以对向量的偏导是最简单的矩阵偏导。
这里的符号可以通过识别具有欧几里得空间Rn\mathbf{R}^nRn的nnn向量的空间M(n,1)M(n,1)M(n,1)并且使用RRR来标识标量M(1,1)M(1,1)M(1,1)来容纳向量演算的常规操作。 对应的向量微积分在每个小节结束时指出。
注:本节中的讨论假定用于教学目的的分子布局约定。 一些作者使用不同的约定。 关于布局约定的部分更详细地讨论了这个问题。
##向量对标量求导
向量y=[y1y2⋮ym]\mathbf{y}=\left[\begin{aligned}y_1\\y_2\\\vdots\\y_m\end{aligned}\right]y=⎣⎢⎢⎢⎢⎢⎡​y1​y2​⋮ym​​⎦⎥⎥⎥⎥⎥⎤​对xxx求导(使用分子布局)可以写成:
∂y∂x=[∂y1∂x∂y2∂x⋮∂ym∂x]\dfrac{\partial{\mathbf{y}}}{\partial{x}}=\left[\begin{aligned}\dfrac{\partial{y_1}}{\partial{x}}\\\dfrac{\partial{y_2}}{\partial{x}}\\\vdots\\\dfrac{\partial{y_m}}{\partial{x}}\end{aligned}\right] ∂x∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x∂y1​​∂x∂y2​​⋮∂x∂ym​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​
在向量微积分中,向量y\mathbf{y}y相对于标量xxx的导数被称为向量y\mathbf{y}y的切向量,∂y∂x\dfrac{\partial{\mathbf{y}}}{\partial{x}}∂x∂y​注意到这里y:R1→Rm\mathbf{y}:\mathbf{R}^1\rightarrow \mathbf{R}^my:R1→Rm
示例:
简单的例子包括欧几里德空间中的速度矢量,它是位置矢量的切向量(视为时间的函数)。 另外,加速度是速度的切向量
##标量对向量求导
元素yyy对向量y=[y1y2⋮ym]\mathbf{y}=\left[\begin{aligned}&y_1\\&y_2\\&\vdots\\&y_m\end{aligned}\right]y=⎣⎢⎢⎢⎢⎢⎡​​y1​y2​⋮ym​​⎦⎥⎥⎥⎥⎥⎤​求导(使用分子布局)可以写成:
∂y∂x=[∂y∂x1∂y∂x2⋯∂y∂xm]⋅\dfrac{\partial{y}}{\partial{\mathbf{x}}}=\left[\begin{aligned}\dfrac{\partial{y}}{\partial{x_1}}\space \dfrac{\partial{y}}{\partial{x_2}}\space \cdots\space \dfrac{\partial{y}}{\partial{x_m}}\end{aligned}\right]\cdot ∂x∂y​=[∂x1​∂y​ ∂x2​∂y​ ⋯ ∂xm​∂y​​]⋅
在向量演算中,空间Rn\mathbf{R}^nRn(其独立坐标是x的分量)中的标量场yyy的梯度是标量由向量求导的转置。在物理学中,所谓电场就是向量梯度的电位。
一个标量函数f(x)f(\mathbf{x})f(x)对空间向量x\mathbf{x}x的方向导数在单位向量u\mathbf{u}u上的梯度的定义如下:
∇uf(x)=∇f(x)⋅u\nabla_{\mathbf{u}}f(\mathbf{x})=\nabla{f(\mathbf{x})\cdot\mathbf{u}} ∇u​f(x)=∇f(x)⋅u
使用刚刚定义的标量对于向量导数的符号,我们可以将方向导数重写为∇uf(x)=∂f∂xu⋅\nabla_{\mathbf{u}}f(\mathbf{x})=\dfrac{\partial{f}}{\partial{\mathbf{x}}}\mathbf{u}\cdot∇u​f(x)=∂x∂f​u⋅.这种表示形式在使用链式法则或者其他运算的时候非常地友好,因为它和我们熟悉地标量求导非常相似。
##向量对向量求导
前面两种情况中的每一种都可以被认为是使用适当大小的向量对向量求导数的应用。类似地,我们将发现涉及矩阵的导数将以相应的方式减少到涉及向量的导数。
对函数向量(一个向量其组成是函数)y=[y1y2⋮ym]\mathbf{y}=\left[\begin{aligned}\begin{matrix}y_1\\y_2\\\vdots\\y_m\end{matrix}\end{aligned}\right]y=⎣⎢⎢⎢⎡​y1​y2​⋮ym​​​⎦⎥⎥⎥⎤​,对一个输入向量x=[x1x2⋮xm]\mathbf{x}=\left[\begin{aligned}\begin{matrix}x_1\\x_2\\\vdots\\x_m\end{matrix}\end{aligned}\right]x=⎣⎢⎢⎢⎡​x1​x2​⋮xm​​​⎦⎥⎥⎥⎤​求导(使用分子布局),可以写成:
∂y∂x=[∂y1∂x1∂y1∂x2⋯∂y1∂xn∂y2∂x1∂y2∂x2⋯∂y2∂xn⋮⋮⋱⋮∂ym∂x1∂ym∂x2⋯∂ym∂xn]\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}= \left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_1}}{\partial{x_1}}&\dfrac{\partial{y_1}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_1}}{\partial{x_n}}\\ \dfrac{\partial{y_2}}{\partial{x_1}}&\dfrac{\partial{y_2}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_2}}{\partial{x_n}}\\ \vdots&\vdots&\ddots&\vdots\\ \dfrac{\partial{y_m}}{\partial{x_1}}&\dfrac{\partial{y_m}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_m}}{\partial{x_n}}\\ \end{matrix} \end{aligned} \right]∂x∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x1​∂y1​​∂x1​∂y2​​⋮∂x1​∂ym​​​∂x2​∂y1​​∂x2​∂y2​​⋮∂x2​∂ym​​​⋯⋯⋱⋯​∂xn​∂y1​​∂xn​∂y2​​⋮∂xn​∂ym​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
在向量微积分中,向量函数y\mathbf{y}y相对于其分量表示空间的向量x\mathbf{x}x的导数被称为前推(或微分)或雅可比矩阵。
对于Rn\mathbf{R}^nRn中的向量v\mathbf{v}v其对于函数向量的前推可以表示为df(v)=∂f∂xv\mathbb{d}\mathbf{f}(\mathbf{v})=\dfrac{\partial\mathbf{f}}{\partial\mathbf{x}}\mathbf{v}df(v)=∂x∂f​v
#对矩阵求导
对于矩阵导数有两种类型可以最终整理成相同的大小的矩阵,它们是矩阵对向量求导,还有就是向量对矩阵求导。这些可以用于最小化在应用数学的许多领域中发现的问题,并且已经分别在其向量的类比之后采用名称切线矩阵和梯度矩阵。
注:本部分的讨论假设分子布局约定。一些作者使用不同的约定。关于布局约定的部分更详细地讨论了这个问题。
##矩阵对标量求导
函数矩阵Y\mathbf{Y}Y对标量xxx的求导结果就是切矩阵,使用(分子布局)可以表示为:
∂Y∂x=[∂y11∂x∂y12∂x⋯∂y1n∂x∂y21∂x∂y22∂x⋯∂y2n∂x⋮⋮⋱⋮∂ym1∂x∂ym2∂x⋯∂ymn∂x]\dfrac{\partial\mathbf{Y}}{\partial{x}}= \left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_{11}}}{\partial{x}}&\dfrac{\partial{y_{12}}}{\partial{x}}&\cdots&\dfrac{\partial{y_{1n}}}{\partial{x}}\\ \dfrac{\partial{y_{21}}}{\partial{x}}&\dfrac{\partial{y_{22}}}{\partial{x}}&\cdots&\dfrac{\partial{y_{2n}}}{\partial{x}}\\ \vdots&\vdots&\ddots&\vdots\\ \dfrac{\partial{y_{m1}}}{\partial{x}}&\dfrac{\partial{y_{m2}}}{\partial{x}}&\cdots&\dfrac{\partial{y_{mn}}}{\partial{x}}\\ \end{matrix} \end{aligned} \right]∂x∂Y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x∂y11​​∂x∂y21​​⋮∂x∂ym1​​​∂x∂y12​​∂x∂y22​​⋮∂x∂ym2​​​⋯⋯⋱⋯​∂x∂y1n​​∂x∂y2n​​⋮∂x∂ymn​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
##标量对矩阵求导
一个标量函数yyy对于一个p×q\mathbb{p}\times\mathbb{q}p×q的自变量矩阵的求导,使用(分子布局)可以表示为:
∂y∂X=[∂y∂x11∂y∂x21⋯∂y∂xp1∂y∂x12∂y∂x22⋯∂y∂xp2⋮⋮⋱⋮∂y∂x1q∂y∂x2q⋯∂y∂xpq]\dfrac{\partial{y}}{\partial{\mathbf{X}}}= \left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y}}{\partial{x_{11}}}&\dfrac{\partial{y}}{\partial{x_{21}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{p1}}}\\ \dfrac{\partial{y}}{\partial{x_{12}}}&\dfrac{\partial{y}}{\partial{x_{22}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{p2}}}\\ \vdots&\vdots&\ddots&\vdots\\ \dfrac{\partial{y}}{\partial{x_{1q}}}&\dfrac{\partial{y}}{\partial{x_{2q}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{pq}}}\\ \end{matrix} \end{aligned} \right]∂X∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x11​∂y​∂x12​∂y​⋮∂x1q​∂y​​∂x21​∂y​∂x22​∂y​⋮∂x2q​∂y​​⋯⋯⋱⋯​∂xp1​∂y​∂xp2​∂y​⋮∂xpq​∂y​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​
矩阵的迹tr(X)tr(\mathbf{X})tr(X)和其行列式是矩阵的标量函数的重要的例子。
和向量的微积分类似,这个微分通常被写成如下的形式:
∇xy(X)=∂y(X)∂X\nabla_{\mathbf{x}}y(\mathbf{X})=\dfrac{\partial{y(\mathbf{X})}}{\partial\mathbf{X}}∇x​y(X)=∂X∂y(X)​
另外,与向量微积分类似,矩阵X\mathbf{X}X的标量f(X)\mathbb{f}(\mathbf{X})f(X)在矩阵Y的方向上的方向导数由下式给出在矩阵YYY方向上的导数为:
∇Yf=tr(∂f∂XY)\nabla_{\mathbf{Y}}f=\mathop{\mathbb{tr}}\left(\dfrac{\partial{f}}{\partial\mathbf{X}}\mathbf{Y}\right)∇Y​f=tr(∂X∂f​Y)
特别是梯度矩阵,它在估计理论的最小化问题中找到了许多用途,特别是在该领域中非常重要的卡尔曼滤波器算法的推导中。

##其他矩阵求导(存在争议)
有三种矩阵的导数我们目前没有看到,他们是向量对矩阵求导,矩阵对向量求导,矩阵对矩阵求导。他们没有统一的符号,也没有统一的应用。对于和向量相关的矩阵两种矩阵导数,可以被看作是一个只有一列的矩阵和另一个矩阵做相互运算。鉴于这个原因,本节我们只考虑如何写出一个矩阵对另一个矩阵求导的导数结果。
假设F(X)\mathbf{F}(\mathbf{X})F(X)是一个矩阵函数,它表示从n×mn\times mn×m矩阵到p×qp\times qp×q矩阵的映射表示为:F:M(n×m)→M(p×q)F: M(n\times m)\rightarrow M(p\times q)F:M(n×m)→M(p×q)。那么F(X)\mathbf{F}(\mathbf{X})F(X)就是一个M(n×m)⊗M(p×q)M(n\times m)\otimes M(p\times q)M(n×m)⊗M(p×q)的元素,M(n×m)⊗M(p×q)M(n\times m)\otimes M(p\times q)M(n×m)⊗M(p×q)是一个四阶张量(在这里mmm和nnn代表M(n×m)M(n\times m)M(n×m)对偶空间),简而言之,一个m×nm\times nm×n的每一个实体都是一个p×qp\times qp×q的矩阵。
∂F∂X=[∂F∂X1,1⋯∂F∂X1,n⋮⋱⋮∂F∂Xm,1⋯∂F∂Xm,n]\dfrac{\partial\mathbf{F}}{\partial\mathbf{X}}=\left[\begin{aligned} \begin{matrix} \dfrac{\partial\mathbf{F}}{\partial\mathbf{X}_{1,1}}&\cdots&\dfrac{\partial\mathbf{F}}{\partial\mathbf{X}_{1,n}}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial\mathbf{F}}{\partial\mathbf{X}_{m,1}}&\cdots&\dfrac{\partial\mathbf{F}}{\partial\mathbf{X}_{m,n}}\\ \end{matrix} \end{aligned}\right] ∂X∂F​=⎣⎢⎢⎢⎢⎢⎡​∂X1,1​∂F​⋮∂Xm,1​∂F​​⋯⋱⋯​∂X1,n​∂F​⋮∂Xm,n​∂F​​​⎦⎥⎥⎥⎥⎥⎤​
在这里∂F∂Xij\dfrac{\partial\mathbf{F}}{\partial\mathbf{X}_{ij}}∂Xij​∂F​是一个p×qp\times qp×q的矩阵。还有就是矩阵被转置了,成了mmm行nnn列。
Y\mathbf{Y}Y在矩阵M(n,m)M(n,m)M(n,m)中沿着F\mathbf{F}F的前推是:
dF(Y)=tr(∂F∂XY)\mathbb{d}\mathbf{F}(\mathbf{Y})=\mathbb{tr}\left(\dfrac{\partial\mathbf{F}}{\partial\mathbf{X}}\mathbf{Y}\right) dF(Y)=tr(∂X∂F​Y)
对于给定的一个可微分的n×mn\times mn×m的矩阵X=(xi,j)\mathbf{X}=(x_{i,j})X=(xi,j​)的矩阵方程ϕ\phiϕ,
∂ϕ(X)∂X=[∂ϕ∂x1,1⋯∂ϕ∂x1,n⋮⋱⋮∂xm,1⋯∂ϕ∂xm,n]\dfrac{\partial\phi(\mathbf{X})}{\partial\mathbf{X}}=\left[\begin{aligned} \begin{matrix} \dfrac{\partial\phi}{\partial{x_{1,1}}}&\cdots&\dfrac{\partial\phi}{\partial{x_{1,n}}}\\ \vdots&\ddots&\vdots\\ {\partial{x_{m,1}}}&\cdots&\dfrac{\partial\phi}{\partial{x_{m,n}}}\\ \end{matrix}\end{aligned}\right] ∂X∂ϕ(X)​=⎣⎢⎢⎢⎢⎢⎡​∂x1,1​∂ϕ​⋮∂xm,1​​⋯⋱⋯​∂x1,n​∂ϕ​⋮∂xm,n​∂ϕ​​​⎦⎥⎥⎥⎥⎥⎤​

对于给定的一个可微分的n×mn\times mn×m的矩阵X\mathbf{X}X的m×nm\times nm×n的矩阵方程F=(fs,t)\mathbf{F}=(f_{s,t})F=(fs,t​),
∂F(X)∂X=[∂f1,1∂X⋯∂f1,n∂X⋮⋱⋮∂fm,1∂X⋯∂fm,n∂X]\dfrac{\partial{\mathbf{F}(\mathbf{X})}}{\partial\mathbf{X}}=\left[\begin{aligned}\begin{matrix} \dfrac{\partial{f_{1,1}}}{\partial{\mathbf{X}}}&\cdots&\dfrac{\partial{f_{1,n}}}{\partial{\mathbf{X}}}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial{f_{m,1}}}{\partial{\mathbf{X}}}&\cdots&\dfrac{\partial{f_{m,n}}}{\partial{\mathbf{X}}}\\ \end{matrix}\end{aligned}\right] ∂X∂F(X)​=⎣⎢⎢⎢⎢⎡​∂X∂f1,1​​⋮∂X∂fm,1​​​⋯⋱⋯​∂X∂f1,n​​⋮∂X∂fm,n​​​​⎦⎥⎥⎥⎥⎤​
雅各布矩阵:
DF(X)=∂vecF(X)∂(vecX)′D\mathbf{F}(\mathbf{X})=\dfrac{\partial\mathbb{vec}\mathbf{F}(\mathbf{X})}{\partial(\mathbb{vec}\mathbf{X})'} DF(X)=∂(vecX)′∂vecF(X)​
#布局约定
本节我们使用矩阵微积分来讨论一些关于在众多领域都官方应用的不同符号约定的异同点。可以大致分出两大类的约定,一些作者喜欢把这两种约定混合使用,就像是我们下面讨论的。下面的章节我们将要把这两种对立的形式分开讨论。
最基本的问题是向量对向量求导的表示,也就是∂y∂x\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}∂x∂y​,但是就是这个简单的表示形式也有两种对立的写法。如果分子y\mathbf{y}y的大小是mmm,并且分母x\mathbf{x}x的大小是nnn,那么求导的结果可能是m×nm\times nm×n或者是n×mn\times mn×m,也就是说y\mathbf{y}y使用列向量表示,x\mathbf{x}x使用行向量表示,或者反过来,x\mathbf{x}x使用列向量表示,y\mathbf{y}y使用行向量表示,这两种形式将会导致三种结果:

  • 分子布局:∂y∂xT\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}^T}∂xT∂y​,分子是列向量,分母是行向量。这也被称为雅各布方程
  • 分母布局:∂yT∂x\dfrac{\partial\mathbf{y}^T}{\partial\mathbf{x}}∂x∂yT​,分母是列向量,分子是行向量。这也被称为海森方程。一些作者把这里的形式称为梯度,为了可以方便和它的转置也就是雅各布方程区分(但是,“梯度”这个词更多的时候是表示∂y∂x\dfrac{\partial{y}}{\partial\mathbf{x}}∂x∂y​,并且忽略向量的布局)
  • 第三中可能就是坚持将导数形式写成∂y∂x′\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}'}∂x′∂y​,(也就是说,即导数是相对于x的转置)并遵循分子布局。这使得有可能声称矩阵是根据分子和分母来布局的。实际上,这将产生与分子布局相同的结果。

当处理梯度∂y∂x\dfrac{\partial{y}}{\partial\mathbf{x}}∂x∂y​,或者是其相反的情况∂y∂x\dfrac{\partial\mathbf{y}}{\partial{x}}∂x∂y​,不失一般性,我们将做以下处理:

  • 如果为∂y∂x\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}∂x∂y​选择分子布局,我们将把梯度∂y∂x\dfrac{\partial{y}}{\partial\mathbf{x}}∂x∂y​写成行向量,∂y∂x\dfrac{\partial{y}}{\partial\mathbf{x}}∂x∂y​写成列向量
  • 如果为∂y∂x\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}∂x∂y​选择分母布局,我们将把梯度∂y∂x\dfrac{\partial{y}}{\partial\mathbf{x}}∂x∂y​写成列向量,∂y∂x\dfrac{\partial{y}}{\partial\mathbf{x}}∂x∂y​写成行向量
  • 如果是第三种可能,则参考分子布局

并不是所有的数学课本或者是论文都通篇采用同一种布局,因为在不同的上下文环境中可以使用不同的布局。比如对于∂y∂x\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}∂x∂y​,在求解梯度的时候我们采用分母布局(结果写成列向量),但是在求解向量和向量的导数的时候我们使用分母布局。
类似的,当处理标量对矩阵求导∂y∂X\dfrac{\partial y}{\partial\mathbf{X}}∂X∂y​或者是矩阵对标量求导∂Y∂x\dfrac{\partial\mathbf{Y}}{\partial x}∂x∂Y​的结果,如果使用分子布局则布局结构参考Y\mathbf{Y}Y和XT\mathbf{X}^TXT,如果是分母布局则参考YT\mathbf{Y}^TYT和X\mathbf{X}X。然而在实际应用中,∂Y∂x\dfrac{\partial\mathbf{Y}}{\partial x}∂x∂Y​的结果更多参考YT\mathbf{Y}^TYT,而且它非常少见,因为他的形式不好,且找不到对应的标量方程,因此有下面的布局:

  • 分子布局:∂Y∂x\dfrac{\partial\mathbf{Y}}{\partial x}∂x∂Y​参考Y\mathbf{Y}Y,∂y∂X\dfrac{\partial{y}}{\partial \mathbf{X}}∂X∂y​参考XT\mathbf{X}^TXT.
  • 混合布局:∂Y∂x\dfrac{\partial\mathbf{Y}}{\partial x}∂x∂Y​参考Y\mathbf{Y}Y,∂y∂X\dfrac{\partial{y}}{\partial \mathbf{X}}∂X∂y​参考X\mathbf{X}X.
  • 使用符号Y\mathbf{Y}Y,∂y∂X′\dfrac{\partial{y}}{\partial \mathbf{X}'}∂X′∂y​,结果同分子布局

在下面的公式中,我们将分别处理不同的五种可能的组合方式∂y∂x\dfrac{\partial{y}}{\partial{\mathbf{x}}}∂x∂y​,∂y∂x\dfrac{\partial{\mathbf{y}}}{\partial{x}}∂x∂y​,∂y∂x\dfrac{\partial{\mathbf{y}}}{\partial{\mathbf{x}}}∂x∂y​,∂y∂X\dfrac{\partial{y}}{\partial{\mathbf{X}}}∂X∂y​,∂Y∂x\dfrac{\partial{\mathbf{Y}}}{\partial{x}}∂x∂Y​.
我们还处理涉及中间向量或矩阵的标量与标量导数的情况。(例如,如果根据标量变量定义多维参数曲线,并且然后相对于参数化曲线的标量取曲线的标量函数的导数,则会出现这种情况。)对于每个我们给出分子布局和分母布局结果,除了分母布局很少出现的情况。在涉及矩阵的情况下,我们给分子布局和混合布局结果。如上所述,矢量和矩阵分母写入转置符号的情况相当于分子没有转置写入分母的情况。
请记住,不同的作者使用分子和分母布局的不同组合,以适应不同类型的求导,并且不能保证作者将始终如一地使用分子或分母布局。将以下公式与源代码中引用的公式进行匹配,以确定用于该特定类型求导的布局,但要小心,不要假设其他类型的求导必须遵循同一种布局。
当使用聚集体(向量或矩阵)分母的求导工具来查找聚集体的最大值或最小值时,应该记住,使用分子布局会产生相对于总计转置的结果。例如,在尝试使用矩阵演算找到多元正态分布的最大似然估计值的情况下,如果该区域是k×1k\times 1k×1 列向量,则使用分子布局的结果将以1×k1\times k1×k行向量的形式出现。因此,结果应该在最后转换,或者应该使用分母布局(或混合布局)。

标量$y$ 向量$\mathbf{y}($大小$m$) 矩阵$\mathbf{Y}($大小$m\times n$)
符号 类型 符号 类型 符号 类型
标量$x$ $\dfrac{\partial{y}}{\partial{x}}$ 标量 $\dfrac{\partial\mathbf{y}}{\partial{x}}$ (分子布局)大小$m$的列向量; (分母布局)大小$m$的列向量 $\dfrac{\partial\mathbf{Y}}{\partial{x}}$ (分子布局)大小$m\times n$的矩阵
向量$\mathbf{x}($大小$n$) $\dfrac{\partial{y}}{\partial\mathbf{x}}$ (分子布局)大小$n$的行向量; (分母布局)大小$n$的行向量 $\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}$ (分子布局)大小$m\times n$的矩阵; (分母布局)大小$n\times m$的矩阵 $\dfrac{\partial\mathbf{Y}}{\partial\mathbf{x}}$
矩阵$\mathbf{Y}($大小$p\times q$) $\dfrac{\partial{y}}{\partial\mathbf{X}}$ (分子布局)大小$q\times p$的矩阵; (分母布局)大小$p\times q$的矩阵 $\dfrac{\partial\mathbf{y}}{\partial\mathbf{X}}$ $\dfrac{\partial\mathbf{Y}}{\partial\mathbf{X}}$

在分子和分母布局切换的时候需要对结果进行转置操作。

##分子布局:
使用分子布局,我们将得到:
∂y∂x=[∂y∂x1∂y∂x2⋯∂y∂xn]\dfrac{\partial{y}}{\partial\mathbf{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y}}{\partial{x_1}}&\dfrac{\partial{y}}{\partial{x_2}}\cdots&\dfrac{\partial{y}}{\partial{x_n}}\\ \end{matrix} \end{aligned} \right] ∂x∂y​=[∂x1​∂y​​∂x2​∂y​⋯​∂xn​∂y​​​]
∂y∂x=[∂y1∂x∂y2∂x⋮∂ym∂x]\dfrac{\partial\mathbf{y}}{\partial{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_1}}{\partial{x}}\\ \dfrac{\partial{y_2}}{\partial{x}}\\ \vdots\\ \dfrac{\partial{y_m}}{\partial{x}}\\ \end{matrix} \end{aligned} \right] ∂x∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x∂y1​​∂x∂y2​​⋮∂x∂ym​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
∂y∂x=[∂y1∂x1∂y1∂x2⋯∂y1∂xn∂y2∂x1∂y2∂x2⋯∂y2∂xn⋮⋮⋱⋮∂ym∂x1∂ym∂x2⋯∂ym∂xn]\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_1}}{\partial{x_1}}&\dfrac{\partial{y_1}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_1}}{\partial{x_n}}\\ \dfrac{\partial{y_2}}{\partial{x_1}}&\dfrac{\partial{y_2}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_2}}{\partial{x_n}}\\ \vdots&\vdots&\ddots&\vdots&\\ \dfrac{\partial{y_m}}{\partial{x_1}}&\dfrac{\partial{y_m}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_m}}{\partial{x_n}}\\ \end{matrix} \end{aligned} \right] ∂x∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x1​∂y1​​∂x1​∂y2​​⋮∂x1​∂ym​​​∂x2​∂y1​​∂x2​∂y2​​⋮∂x2​∂ym​​​⋯⋯⋱⋯​∂xn​∂y1​​∂xn​∂y2​​⋮∂xn​∂ym​​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
∂y∂X=[∂y∂x11∂y∂x21⋯∂y∂xp1∂y∂x12∂y∂x22⋯∂y∂xp2⋮⋮⋱⋮∂y∂x1q∂y∂x2q⋯∂y∂xpq]\dfrac{\partial{y}}{\partial\mathbf{X}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y}}{\partial{x_{11}}}&\dfrac{\partial{y}}{\partial{x_{21}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{p1}}}\\ \dfrac{\partial{y}}{\partial{x_{12}}}&\dfrac{\partial{y}}{\partial{x_{22}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{p2}}}\\ \vdots&\vdots&\ddots&\vdots&\\ \dfrac{\partial{y}}{\partial{x_{1q}}}&\dfrac{\partial{y}}{\partial{x_{2q}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{pq}}}\\ \end{matrix} \end{aligned} \right] ∂X∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x11​∂y​∂x12​∂y​⋮∂x1q​∂y​​∂x21​∂y​∂x22​∂y​⋮∂x2q​∂y​​⋯⋯⋱⋯​∂xp1​∂y​∂xp2​∂y​⋮∂xpq​∂y​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​
下面的定义只在分子布局下适用:
∂Y∂x=[∂y11∂x∂y12∂x⋯∂y1n∂x∂y21∂x∂y22∂x⋯∂y2n∂x⋮⋮⋱⋮∂ym1∂x∂ym2∂x⋯∂ymn∂x]\dfrac{\partial\mathbf{Y}}{\partial{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_{11}}}{\partial{x}}&\dfrac{\partial{y_{12}}}{\partial{x}}&\cdots&\dfrac{\partial{y_{1n}}}{\partial{x}}\\ \dfrac{\partial{y_{21}}}{\partial{x}}&\dfrac{\partial{y_{22}}}{\partial{x}}&\cdots&\dfrac{\partial{y_{2n}}}{\partial{x}}\\ \vdots&\vdots&\ddots&\vdots&\\ \dfrac{\partial{y_{m1}}}{\partial{x}}&\dfrac{\partial{y_{m2}}}{\partial{x}}&\cdots&\dfrac{\partial{y_{mn}}}{\partial{x}}\\ \end{matrix} \end{aligned} \right] ∂x∂Y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x∂y11​​∂x∂y21​​⋮∂x∂ym1​​​∂x∂y12​​∂x∂y22​​⋮∂x∂ym2​​​⋯⋯⋱⋯​∂x∂y1n​​∂x∂y2n​​⋮∂x∂ymn​​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
dX=[dx11dx12⋯dx1ndx21dx22⋯dx2n⋮⋮⋱⋮dxm1dxm2⋯dxmn]\mathbb{d}\mathbf{X}=\left[ \begin{aligned} \begin{matrix} \mathbb{d}x_{11}&\mathbb{d}x_{12}&\cdots&\mathbb{d}x_{1n}\\ \mathbb{d}x_{21}&\mathbb{d}x_{22}&\cdots&\mathbb{d}x_{2n}\\ \vdots&\vdots&\ddots&\vdots&\\ \mathbb{d}x_{m1}&\mathbb{d}x_{m2}&\cdots&\mathbb{d}x_{mn}\\ \end{matrix} \end{aligned} \right] dX=⎣⎢⎢⎢⎡​dx11​dx21​⋮dxm1​​dx12​dx22​⋮dxm2​​⋯⋯⋱⋯​dx1n​dx2n​⋮dxmn​​​​⎦⎥⎥⎥⎤​

##分母布局:
使用分子布局,我们将得到:
∂y∂x=[∂y∂x1∂y∂x2⋮∂y∂xn]\dfrac{\partial{y}}{\partial\mathbf{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y}}{\partial{x_1}}\\ \dfrac{\partial{y}}{\partial{x_2}}\\ \vdots\\ \dfrac{\partial{y}}{\partial{x_n}}\\ \end{matrix} \end{aligned} \right] ∂x∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x1​∂y​∂x2​∂y​⋮∂xn​∂y​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
∂y∂x=[∂y1∂x∂y2∂x⋯∂ym∂x]\dfrac{\partial\mathbf{y}}{\partial{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_1}}{\partial{x}}&\dfrac{\partial{y_2}}{\partial{x}}\cdots&\dfrac{\partial{y_m}}{\partial{x}}\\ \end{matrix} \end{aligned} \right] ∂x∂y​=[∂x∂y1​​​∂x∂y2​​⋯​∂x∂ym​​​​]
∂y∂x=[∂y1∂x1∂y2∂x1⋯∂ym∂x1∂y2∂x2∂y2∂x2⋯∂y2∂x2⋮⋮⋱⋮∂y1∂xn∂y2∂xn⋯∂ym∂xn]\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y_1}}{\partial{x_1}}&\dfrac{\partial{y_2}}{\partial{x_1}}&\cdots&\dfrac{\partial{y_m}}{\partial{x_1}}\\ \dfrac{\partial{y_2}}{\partial{x_2}}&\dfrac{\partial{y_2}}{\partial{x_2}}&\cdots&\dfrac{\partial{y_2}}{\partial{x_2}}\\ \vdots&\vdots&\ddots&\vdots&\\ \dfrac{\partial{y_1}}{\partial{x_n}}&\dfrac{\partial{y_2}}{\partial{x_n}}&\cdots&\dfrac{\partial{y_m}}{\partial{x_n}}\\ \end{matrix} \end{aligned} \right] ∂x∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x1​∂y1​​∂x2​∂y2​​⋮∂xn​∂y1​​​∂x1​∂y2​​∂x2​∂y2​​⋮∂xn​∂y2​​​⋯⋯⋱⋯​∂x1​∂ym​​∂x2​∂y2​​⋮∂xn​∂ym​​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
∂y∂X=[∂y∂x11∂y∂x12⋯∂y∂x1p∂y∂x21∂y∂x22⋯∂y∂x2p⋮⋮⋱⋮∂y∂xq1∂y∂xq2⋯∂y∂xqp]\dfrac{\partial{y}}{\partial\mathbf{X}}=\left[ \begin{aligned} \begin{matrix} \dfrac{\partial{y}}{\partial{x_{11}}}&\dfrac{\partial{y}}{\partial{x_{12}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{1p}}}\\ \dfrac{\partial{y}}{\partial{x_{21}}}&\dfrac{\partial{y}}{\partial{x_{22}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{2p}}}\\ \vdots&\vdots&\ddots&\vdots&\\ \dfrac{\partial{y}}{\partial{x_{q1}}}&\dfrac{\partial{y}}{\partial{x_{q2}}}&\cdots&\dfrac{\partial{y}}{\partial{x_{qp}}}\\ \end{matrix} \end{aligned} \right] ∂X∂y​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​∂x11​∂y​∂x21​∂y​⋮∂xq1​∂y​​∂x12​∂y​∂x22​∂y​⋮∂xq2​∂y​​⋯⋯⋱⋯​∂x1p​∂y​∂x2p​∂y​⋮∂xqp​∂y​​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​
#恒等式
综上所述,如果涉及到分子布局和分母布局的切换,则运算结果会发生转置。
为了搞懂下面的一些等式,应该记得下面的一些规则:链式法则,乘积法则,总体法则。总和规则通用,乘积规则适用于以下大多数情况,条件是维持矩阵乘积的秩序,因为矩阵乘积是不可交换的。链式规则适用于某些情况,但不幸的是,不适用于矩阵对向量求导或向量对矩阵求导(后者主要涉及应用于矩阵的跟踪算子)。在后一种情况下,乘积规则也不能直接应用,但是使用微分恒等式可以做更多的工作。

##向量对向量求导恒等式
首先介绍这一点,因为所有适用于向量对向量微分的操作都直接适用于向量对标量,或者是标量对向量的微分,只需将分子或分母中的的向量简化为标量即可。
恒等式:向量对向量求导∂y∂x\dfrac{\partial\mathbf{y}}{\partial\mathbf{x}}∂x∂y​

情况 表达式 分子布局 分母布局
$\mathbf{a}$不是$\mathbf{x}$的函数 $\dfrac{\partial\mathbf{a}}{\partial\mathbf{x}}=$ $\mathbf{0}$
$\dfrac{\partial\mathbf{x}}{\partial\mathbf{x}}=$ $\mathbf{I}$
$\mathbf{A}$不是$\mathbf{x}$的函数 $\dfrac{\partial\mathbf{Ax}}{\partial\mathbf{x}}=$ $\mathbf{A}$ $\mathbf{A}^T$
$\dfrac{\partial\mathbf{x}^T\mathbf{A}}{\partial\mathbf{x}}=$ $\mathbf{A}^T$ $\mathbf{A}$
$a$不是$\mathbf{x}$的函数,$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial a\mathbf{u}}{\partial\mathbf{x}}=$ $a\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$
$a=a(\mathbf{x})$,$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial a\mathbf{u}}{\partial\mathbf{x}}=$ $a\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}+\mathbf{u}\dfrac{\partial a}{\partial\mathbf{x}}$ $a\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}+\dfrac{\partial a}{\partial\mathbf{x}}\mathbf{u}^T$
$\mathbf{A}$不是$\mathbf{x}$的函数,$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial \mathbf{A}\mathbf{u}}{\partial\mathbf{x}}=$ $\mathbf{A}\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$ $\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}\mathbf{A}^T$
$\mathbf{u}=\mathbf{u}(\mathbf{x})$,$\mathbf{v}=\mathbf{v}(\mathbf{x})$ $\dfrac{\partial(\mathbf{u}+\mathbf{v})}{\partial\mathbf{x}}=$ $\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}+\dfrac{\partial \mathbf{v}}{\partial\mathbf{x}}$
$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial\mathbf{g(u)}}{\partial\mathbf{x}}=$ $\dfrac{\partial\mathbf{g(u)}}{\partial\mathbf{u}}\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$ $\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}\dfrac{\partial\mathbf{g(u)}}{\partial\mathbf{u}}$
$\dfrac{\partial\mathbf{f(g(u))}}{\partial\mathbf{x}}=$ $\dfrac{\partial\mathbf{f(g)}}{\partial\mathbf{g}}\dfrac{\partial\mathbf{g(u)}}{\partial\mathbf{u}}\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$ $\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}\dfrac{\partial\mathbf{g(u)}}{\partial\mathbf{u}}\dfrac{\partial\mathbf{f(g)}}{\partial\mathbf{g}}$

##标量对向量求导恒等式
基本的恒等式在黑线的上方

情况 表达式 分子布局 分母布局
第一部分
$a$不是向量$\mathbf{x}$的方程 $\dfrac{\partial a}{\partial\mathbf{x}}=$ $\mathbf{0}^T$ $\mathbf{0}$
$a$不是向量$\mathbf{x}$的方程,$u=u(\mathbf{x})$ $\dfrac{\partial au}{\partial\mathbf{x}}=$ $a\dfrac{\partial u}{\partial\mathbf{x}}$
$u=u(\mathbf{x})$,$v=v(\mathbf{x})$ $\dfrac{\partial(u+v)}{\partial\mathbf{x}}=$ $\dfrac{\partial{u}}{\partial\mathbf{x}}+\dfrac{\partial{v}}{\partial\mathbf{x}}$
$\dfrac{\partial(uv)}{\partial\mathbf{x}}=$ $u\dfrac{\partial{v}}{\partial\mathbf{x}}+v\dfrac{\partial{u}}{\partial\mathbf{x}}$
$u=u(\mathbf{x})$ $\dfrac{\partial{g(u)}}{\partial\mathbf{x}}=$ $\dfrac{\partial{g(u)}}{\partial{u}}\dfrac{\partial{u}}{\partial\mathbf{x}}$

$\dfrac{\partial{f(g(u))}}{\partial\mathbf{x}}=$ $\dfrac{\partial{f(g)}}{\partial{g}}\dfrac{\partial{g(u)}}{\partial{u}}\dfrac{\partial{u}}{\partial\mathbf{x}}$ $\mathbf{u} = \mathbf{u}(\mathbf{x}), \mathbf{v} = \mathbf{v}(\mathbf{x})$ $\dfrac{\partial(\mathbf{u}\cdot\mathbf{v})}{\partial\mathbf{x}}=\dfrac{\partial\mathbf{u}^T\mathbf{v}}{\partial\mathbf{x}}=$ $\mathbf{u}^T\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}+\mathbf{v}^T\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$此处假定$\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$和$\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}$为分子布局 $\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}\mathbf{v}+\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}\mathbf{u}$此处假定$\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$和$\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}$为分母布局 $\mathbf{u} = \mathbf{u}(\mathbf{x}), \mathbf{v} = \mathbf{v}(\mathbf{x})$$\mathbf{A}$不是关于向量$\mathbf{x}$的函数 $\dfrac{\partial(\mathbf{u}\cdot\mathbf{A}\mathbf{v})}{\partial\mathbf{x}}=\dfrac{\partial\mathbf{u}^T\mathbf{A}\mathbf{v}}{\partial\mathbf{x}}=$ $\mathbf{u}^T\mathbf{A}\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}+\mathbf{v}^T\mathbf{A}^T\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$此处假定$\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$和$\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}$为分子布局 $\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}\mathbf{A}\mathbf{v}+\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}\mathbf{A}^T\mathbf{u}$此处假定$\dfrac{\partial\mathbf{u}}{\partial\mathbf{x}}$和$\dfrac{\partial\mathbf{v}}{\partial\mathbf{x}}$为分母布局 $\dfrac{\partial^2}{\partial\mathbf{x}\partial\mathbf{x}^T}=$ $\mathbf{H}$,海森矩阵 第二部分 $\mathbf{a}$不是关于向量$\mathbf{x}$的方程 $\dfrac{\partial{(\mathbf{a}\cdot\mathbf{x}})}{\partial{\mathbf{x}}}=\dfrac{\partial{(\mathbf{x}\cdot\mathbf{a}})}{\partial{\mathbf{x}}}=\dfrac{\partial{\mathbf{a}^T\mathbf{x}}}{\partial{\mathbf{x}}}=\dfrac{\partial{\mathbf{x}^T\mathbf{a}}}{\partial{\mathbf{x}}}=$ $\mathbf{a}^T$ $\mathbf{a}$ $\mathbf{A}$不是关于向量$\mathbf{x}$的方程,$\mathbf{a}$不是关于向量$\mathbf{x}$的方程 $\dfrac{\partial{\mathbf{b}^T\mathbf{Ax}}}{\partial{\mathbf{x}}}=$ $\mathbf{b}^T\mathbf{A}$ $\mathbf{A}^T\mathbf{b}$ $\mathbf{A}$不是关于向量$\mathbf{x}$的方程 $\dfrac{\partial{\mathbf{x}^T\mathbf{Ax}}}{\partial{\mathbf{x}}}=$ $\mathbf{x}^T(\mathbf{A}+\mathbf{A}^T)$ $(\mathbf{A}+\mathbf{A}^T)\mathbf{x}$ $\mathbf{A}$不是关于向量$\mathbf{x}$的方程,$\mathbf{A}$是对称矩阵 $\dfrac{\partial{\mathbf{x}^T\mathbf{Ax}}}{\partial{\mathbf{x}}}=$ $2\mathbf{x}^T\mathbf{A}$ $2\mathbf{A}\mathbf{x}$ $\mathbf{A}$不是关于向量$\mathbf{x}$的方程 $\dfrac{\partial^2{\mathbf{x}^T\mathbf{Ax}}}{\partial{\mathbf{x}}}=$ $\mathbf{A}+\mathbf{A}^T$ $\mathbf{A}$不是关于向量$\mathbf{x}$的方程,$\mathbf{A}$是对称矩阵 $\dfrac{\partial^2{\mathbf{x}^T\mathbf{Ax}}}{\partial{\mathbf{x}}}=$ $2\mathbf{A}$ $\dfrac{\partial{(\mathbf{x}\cdot\mathbf{x}})}{\partial{\mathbf{x}}}=\dfrac{\partial{\mathbf{x}^T\mathbf{x}}}{\partial{\mathbf{x}}}=$ $2\mathbf{x}^T$ $2\mathbf{x}$ 续表:

情况 表达式 分子布局 分母布局
$\mathbf{a}$不是关于$\mathbf{x}$的函数,$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial{(\mathbf{a}\cdot\mathbf{u}})}{\partial{\mathbf{x}}}=\dfrac{\partial{\mathbf{a}^T\mathbf{u}}}{\partial{\mathbf{x}}}=$ $\mathbf{a}^T\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}$这里假设$\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}$采用分子布局 $\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}\mathbf{a}$这里假设$\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}$采用分母布局
$\mathbf{a}$和$\mathbf{b}$都不是关于$\mathbf{x}$的函数 $\dfrac{\partial{\mathbf{a}^T\mathbf{x}\mathbf{x}^T\mathbf{b}}}{\partial{\mathbf{x}}}=$ $\mathbf{x}^T(\mathbf{a}\mathbf{b}^T+\mathbf{b}\mathbf{a}^T)$ $(\mathbf{a}\mathbf{b}^T+\mathbf{b}\mathbf{a}^T)\mathbf{x}^T$
$\mathbf{A}$和$\mathbf{b}$,$\mathbf{C}$,$\mathbf{D}$都不是关于$\mathbf{x}$的函数 $\dfrac{\partial{({\mathbf{Ax}+\mathbf{b}})^T\mathbf{C}({\mathbf{Dx}+\mathbf{e}})}}{\partial{\mathbf{x}}}=$ $({\mathbf{Dx}+\mathbf{e}})^T\mathbf{C}^T\mathbf{A}+({\mathbf{Ax}+\mathbf{b}})^T\mathbf{C}\mathbf{D}$ $\mathbf{D}^T\mathbf{C}^T({\mathbf{Ax}+\mathbf{b}})^T+\mathbf{A}^T\mathbf{C}({\mathbf{Dx}+\mathbf{e}})^T$
$\mathbf{a}$不是关于$\mathbf{x}$的函 $\dfrac{\partial{(\mathbf{a}\cdot\mathbf{u}})}{\partial{\mathbf{x}}}=\dfrac{\partial{\mathbf{a}^T\mathbf{u}}}{\partial{\mathbf{x}}}=$ $\mathbf{a}^T\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}$这里假设$\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}$采用分子布局 $\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}\mathbf{a}$这里假设$\dfrac{\partial{\mathbf{u}}}{\partial{\mathbf{x}}}$采用分母布局
$\mathbf{a}$不是关于$\mathbf{x}$的函数 $\dfrac{\partial{||\mathbf{x}-\mathbf{a}||}}{\partial{\mathbf{x}}}=$ $\dfrac{(\mathbf{x}-\mathbf{a})^T}{||\mathbf{x}-\mathbf{a}||}$ $\dfrac{\mathbf{x}-\mathbf{a}}{||\mathbf{x}-\mathbf{a}||}$

#向量对标量求导恒等式

情况 表达式 分子布局 分母布局
$\mathbf{a}$不是关于$x$的函数 $\dfrac{\partial{\mathbf{a}}}{x}=$ $\mathbf{0}$
$a$不是关于$x$的函数,$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial{a\mathbf{u}}}{x}=$ $a\dfrac{\partial{\mathbf{u}}}{x}$
$\mathbf{A}$不是关于$x$的函数,$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial{\mathbf{A}\mathbf{u}}}{x}=$ $\mathbf{A}\dfrac{\partial{\mathbf{u}}}{x}$ $\dfrac{\partial{\mathbf{u}}}{x}\mathbf{A}^T$
$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial{\mathbf{u}^T}}{x}=$ $\left(\dfrac{\partial{\mathbf{u}}}{x}\right)^T$
$\mathbf{u}=\mathbf{u}(\mathbf{x}),\mathbf{v}=\mathbf{v}(\mathbf{x})$ $\dfrac{\partial{(\mathbf{u}+\mathbf{v})}}{x}=$ $\dfrac{\partial{\mathbf{u}}}{x}+\dfrac{\partial{\mathbf{v}}}{x}$
$\mathbf{u}=\mathbf{u}(\mathbf{x}),\mathbf{v}=\mathbf{v}(\mathbf{x})$ $\dfrac{\partial{(\mathbf{u}^T\times\mathbf{v})}}{x}=$ $\left(\dfrac{\partial{\mathbf{u}}}{x}\right)^T\times\mathbf{v}+\mathbf{u}^T\times\dfrac{\partial{\mathbf{v}}}{x}$ $\dfrac{\partial{\mathbf{u}}}{x}\times\mathbf{v}+\mathbf{u}^T\times\left(\dfrac{\partial{\mathbf{v}}}{x}\right)$
$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial{\mathbf{g(u)}}}{x}=$ $\dfrac{\partial{\mathbf{g(u)}}}{\mathbf{u}}\dfrac{\partial{\mathbf{u}}}{x}注$ $\dfrac{\partial{\mathbf{u}}}{x}\dfrac{\partial{\mathbf{g(u)}}}{\mathbf{u}}注$
$\mathbf{u}=\mathbf{u}(\mathbf{x})$ $\dfrac{\partial{\mathbf{f(g(u))}}}{x}=$ $\dfrac{\partial{\mathbf{f(g)}}}{\mathbf{g}}\dfrac{\partial{\mathbf{g(u)}}}{\mathbf{u}}\dfrac{\partial{\mathbf{u(x)}}}{\mathbf{x}}注$ $\dfrac{\partial{\mathbf{u(x)}}}{\mathbf{x}}\dfrac{\partial{\mathbf{g(u)}}}{\mathbf{u}}\dfrac{\partial{\mathbf{f(g)}}}{\mathbf{g}}注$
$\mathbf{U}=\mathbf{U}(\mathbf{x}),\mathbf{v}=\mathbf{v}(\mathbf{x})$ $\dfrac{\partial{(\mathbf{U}\times\mathbf{v})}}{x}=$ $\dfrac{\partial{\mathbf{U}}}{x}\times\mathbf{v}+\mathbf{U}\times\dfrac{\partial{\mathbf{v}}}{x}$ $\mathbf{v}^T\times\left(\dfrac{\partial{\mathbf{U}}}{x}\right)+\dfrac{\partial{\mathbf{v}}}{x}\times\mathbf{U}^T$

注:在涉及了向量对向量($\dfrac{\partial\mathbf{g(u)}}{\partial{\mathbf{u}}}$和$\dfrac{\partial\mathbf{f(g)}}{\partial{\mathbf{g}}}$)求导的公式中,我们都假设矩阵和向量采用同一种布局方式。 #标量对矩阵求导 **部分:**

情形 表达式 分子布局 分母布局
$a$不是关于$\mathbf{X}$的函数 $\dfrac{\partial a}{\partial \mathbf{X}}=$ $\mathbf{0}^T$ $\mathbf{0}$
$a$不是关于$\mathbf{X}$的函数$,u=u(x)$ $\dfrac{\partial{au}}{\partial \mathbf{X}}$ $a\dfrac{\partial{u}}{\partial \mathbf{X}}$
$u=u(\mathbf{X}),v=v(\mathbf{X})$ $\dfrac{\partial{(u+v)}}{\partial \mathbf{X}}$ $\dfrac{\partial{u}}{\partial \mathbf{X}}+\dfrac{\partial{v}}{\partial \mathbf{X}}$
$u=u(\mathbf{X}),v=v(\mathbf{X})$ $\dfrac{\partial{(uv)}}{\partial \mathbf{X}}$ $u\dfrac{\partial{v}}{\partial \mathbf{X}}+v\dfrac{\partial{u}}{\partial \mathbf{X}}$
$u=u(\mathbf{X})$ $\dfrac{\partial{g(u)}}{\partial \mathbf{X}}$ $\dfrac{\partial{g(u)}}{\partial \mathbf{u}}\dfrac{\partial{u}}{\partial \mathbf{X}}$
$u=u(\mathbf{X})$ $\dfrac{\partial{f(g(u))}}{\partial \mathbf{X}}$ $\dfrac{\partial{f(g)}}{\partial \mathbf{g}}\dfrac{\partial{g(u)}}{\partial \mathbf{u}}\dfrac{\partial{u}}{\partial \mathbf{X}}$

#矩阵对标量 **部分:**

情形 表达式 分子布局 分母布局
$\mathbf U=\mathbf U(x)$ $\dfrac{\partial{a\mathbf U}}{\partial x}$ $a\dfrac{\partial{\mathbf U}}{\partial x}$
$A$,$B$不是关于$x$的函数,$\mathbf U=\mathbf U(x)$ $\dfrac{\partial{\mathbf {AUB}}}{\partial x}$ $\mathbf{A}\dfrac{\partial{\mathbf U}}{\partial x}\mathbf{B}$
$\mathbf U=\mathbf U(x),\mathbf V=\mathbf V(x)$ $\dfrac{\partial{(\mathbf U+\mathbf V) }}{\partial x}$ $\dfrac{\partial{\mathbf U}}{\partial x}+\dfrac{\partial{\mathbf V} }{\partial x}$
$\mathbf U=\mathbf U(x),\mathbf V=\mathbf V(x)$ $\dfrac{\partial{(\mathbf U\mathbf V) }}{\partial x}$ $\mathbf U\dfrac{\partial{\mathbf V}}{\partial x}+\mathbf V\dfrac{\partial{\mathbf U} }{\partial x}$
$\mathbf U=\mathbf U(x),\mathbf V=\mathbf V(x)$ $\dfrac{\partial{(\mathbf U\otimes\mathbf V) }}{\partial x}$ $\mathbf U\otimes\dfrac{\partial{\mathbf V}}{\partial x}+\mathbf V\otimes\dfrac{\partial{\mathbf U} }{\partial x}$
$\mathbf U=\mathbf U(x),\mathbf V=\mathbf V(x)$ $\dfrac{\partial{(\mathbf U\circ\mathbf V) }}{\partial x}$ $\mathbf U\circ\dfrac{\partial{\mathbf V}}{\partial x}+\mathbf V\circ\dfrac{\partial{\mathbf U} }{\partial x}$

都是以前辛苦翻译的不想删除 #翻译: ##part1: http://blog.csdn.net/uncle_gy/article/details/78861467 ##part2: http://blog.csdn.net/uncle_gy/article/details/78871515 ##part3: http://blog.csdn.net/uncle_gy/article/details/78877594 ##part4: http://blog.csdn.net/uncle_gy/article/details/78878301 ##part5: http://blog.csdn.net/uncle_gy/article/details/78893519

矩阵向量求导(Matrix calculus)相关推荐

  1. 机器学习中的矩阵向量求导(一) 求导定义与求导布局

    在之前写的上百篇机器学习博客中,不时会使用矩阵向量求导的方法来简化公式推演,但是并没有系统性的进行过讲解,因此让很多朋友迷惑矩阵向量求导的具体过程为什么会是这样的.这里准备用几篇博文来讨论下机器学习中 ...

  2. 机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则

    在机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法中,我们讨论了使用微分法来求解矩阵向量求导的方法.但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦. ...

  3. 机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法

    在机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法中,我们讨论了定义法求解矩阵向量求导的方法,但是这个方法对于比较复杂的求导式子,中间运算会很复杂,同时排列求导出的结果也很麻烦.因此我们需要其他的 ...

  4. 机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法

    在机器学习中的矩阵向量求导(一) 求导定义与求导布局中,我们讨论了向量矩阵求导的9种定义与求导布局的概念.今天我们就讨论下其中的标量对向量求导,标量对矩阵求导, 以及向量对向量求导这三种场景的基本求解 ...

  5. 机器学习中矩阵向量求导

    以下内容是根据刘建平的求导博客做的相关笔记 一.导数的定义与布局 1. 相关说明 2.导数布局 导数部分有分子布局和分母布局两种情况. 分子布局和分母布局相差一个转置. 标量对向量求导布局 向量对向量 ...

  6. 机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导

    在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导.本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,向量对矩阵求导这几种形式的求导方法. 本文所有求 ...

  7. 矩阵向量求导 (转载与整理)

    矩阵向量求导 (转载与整理) 矩阵向量求导 (转载与整理) 1.[刘建平Pinard老师](https://www.cnblogs.com/pinard/)的博客文章(机器学习中的矩阵向量求导) 2. ...

  8. 矩阵向量求导-刘建平Pinard|笔记

    矩阵向量求导-刘建平Pinard|笔记 矩阵向量求导(刘建平Pinard) 笔记 原文链接声明 一.求导定义与求导布局 原文图片 个人笔记 二.矩阵向量求导之定义法 原文图片 个人笔记 三.矩阵向量求 ...

  9. 矩阵向量求导(Vector derivation)

    原文:http://www.cnblogs.com/huashiyiqike/p/3568922.html https://blog.csdn.net/hongqiang200/article/det ...

最新文章

  1. Django web框架-----Django连接现有mysql数据库
  2. spring与springBoot不同之处
  3. mysqlhotcopy 热备工具体验与总结
  4. linux select 异步,Linux上用select()实现异步的Echo服务器
  5. 解决chrome和firefox flash不透明的方法
  6. 利用互斥体阻断想哭蠕虫,实现联网升级
  7. 去医院看病如何开开心心出来? | 今日最佳
  8. stm32f401 边沿捕获_STM32_capture 基于 设计的输入捕获实验,通过对边沿跳变的采集,得到外部接口 据。 SCM 单片机开发 261万源代码下载- www.pudn.com...
  9. 数据标准化 - scale() - Python代码
  10. 阿里巴巴自研代码管理平台技术解密
  11. LeetCode 496. Next Greater Element I
  12. BCGControlBar MFC对话框换肤 续
  13. 本地算术验证码识别教程
  14. 北方民族大学计算机考研专业课,2021北方民族大学专业课考研真题资料汇总!!...
  15. 传送的谷歌应用程序打不开_如何使用Google Home将内容传送到您的Chromecast
  16. mysql实验一:图书管理系统之建库建表
  17. 如何在计算机查找类型文件类型,怎样在电脑中查找某一类型文件?比如查 txt...
  18. Android 微信支付加密
  19. 解决运行js代码报错—Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs
  20. python网络爬虫从入门到实践第2版pdf-Python网络爬虫从入门到实践 第2版

热门文章

  1. 个人博客接入 github 登陆功能详细过程
  2. 你的名字经典语录(1)
  3. 生活随笔(5.31)
  4. uni-app浏览器、iPhone手机显示轮播图,微信、支付宝小程序中不显示的错误原因及解决办法
  5. Java对接Zebra斑马打印机打印条形码相关
  6. java反射无法获取_Java反射'无法设置'错误
  7. java中INTEGER的取值范围
  8. altium如何制作mark点_PCB MARK 点制作方法-参考,附AD格式库文件
  9. atoi、atol、strtod、strtol、strtoul、gcvt、ecvt、fcvt、sprintf、toascii、tolower类型转换
  10. UDP 单播、广播和多播