函数与变元(自变量)

标量函数f

标量函数自变量可以是标量向量矩阵。常见的函数形式以标量形式给出:

但仅使用标量方程不足以方便描述各种数学关系,所以拓展成向量和矩阵方程的形式:

向量形式:假设(列向量),由二次型分解知

矩阵形式:假设,有:

向量函数

向量函数自变量同样可以分成标量向量矩阵

标量作自变量:

向量作自变量:

矩阵作自变量:

矩阵函数F

矩阵函数自变量同样可以分成标量向量矩阵

标量自变量:

向量自变量:

矩阵自变量:

分子布局与分母布局

向量、矩阵这种多维变量互相求导,元素的个数实际上是确定的,关键是如何进行元素排列,主要是讨论分子布局分母布局

总结了几个结论

  1. 分母分子布局的本质就是由谁的维度来决定行数。分母布局下,假如分母是m维向量,那么结果就是m行,假如分母是m×n矩阵,那么结果就是mn行,分子布局同理;

  2. 标量函数求导,使用的是分母布局(分母可能是向量、矩阵,维度较高);

  3. 向量、矩阵函数标量求导,使用的是分子布局(分子为向量、矩阵,维度较高);

  4. 向量向量求导,没有断论一定是分子还是分母布局,也不存在什么向量对什么向量求导违规情况。

    • 注:参考链接1认为列向量对列向量求导是不规范写法,实际上是受到国外教材分子/分母布局定义的影响,例如分子布局被定义为,实际上这是习惯上写法,即使是列向量对列向量写法,也可以这样表示,转置符号T不影响自变量x的身份,因为按照矩阵乘法习惯,m×1对1×n求导,得到m×n二维结果,求导上想复用这一习惯直觉而已。因为应用场景,更多文章主张统一分母、分子叫法,即列向量对列向量求导、行向量对行向量求导。
  5. 向量、矩阵向量、矩阵求导,实际上都是先将矩阵向量化,再按向量对向量求导的形式。

  6. 涉及矩阵的求导,按分子布局形式得到的是雅可比(Jacobian)矩阵(雅可比矩阵本身指的是向量对标量的求导),按分母布局得到梯度矩阵(标量对向量的求导)。

标量函数求导

根据结论2:标量函数对向量、矩阵求导,都按照分母布局进行。

标量对向量求导

标量函数对向量求导,相当于分别求偏导,对列向量求导得到列向量的结果,对行向量求导则是行向量的布局。

对列向量 求导:

如果对其行向量求导,则有:

标量对矩阵求导

分母布局按矩阵原维度得到的是梯度矩阵形式:

分子布局为雅可比行列式,等于上式转置,不常用,省略。

向量函数求导

向量对标量求导

根据结论3,采用分子布局,即列向量标量求导还是列向量行向量还是行向量

向量对向量求导

本文主张采用分子布局,结果的行数完全由分子维度决定。分子为m维向量,分母为n维向量,无论因变量和自变量是列变量还是行变量,都自动转换到该形式: 雅可比矩阵

其他情况

对于向量对矩阵求导矩阵对向量矩阵对矩阵求导而言,都可以相应地向量化成向量对向量求导的形式,本文都主张使用分子布局,得到的矩阵都是雅可比矩阵

参考链接:

  1. 矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)

  2. 线性代数笔记:标量、向量、矩阵求导

  3. [机器学习-数学] 矩阵求导(分母布局与分子布局),以及常用的矩阵求导公式