矩阵求导
函数与变元(自变量)
标量函数f
标量函数的自变量可以是标量、向量和矩阵。常见的函数形式以标量形式给出:
但仅使用标量方程不足以方便描述各种数学关系,所以拓展成向量和矩阵方程的形式:
向量形式:假设
矩阵形式:假设
向量函数
向量函数的自变量同样可以分成标量、向量和矩阵。
标量作自变量:
向量作自变量:
矩阵作自变量:
矩阵函数F
矩阵函数的自变量同样可以分成标量、向量和矩阵。
标量自变量:
向量自变量:
矩阵自变量:
分子布局与分母布局
向量、矩阵这种多维变量互相求导,元素的个数实际上是确定的,关键是如何进行元素排列,主要是讨论分子布局和分母布局。
总结了几个结论:
分母和分子布局的本质就是由谁的维度来决定行数。分母布局下,假如分母是m维向量,那么结果就是m行,假如分母是m×n矩阵,那么结果就是mn行,分子布局同理;
标量函数求导,使用的是分母布局(分母可能是向量、矩阵,维度较高);
向量、矩阵函数对标量求导,使用的是分子布局(分子为向量、矩阵,维度较高);
向量对向量求导,没有断论一定是分子还是分母布局,也不存在什么向量对什么向量求导违规情况。
- 注:参考链接1认为列向量对列向量求导是不规范写法,实际上是受到国外教材分子/分母布局定义的影响,例如分子布局被定义为
,实际上这是习惯上写法,即使是列向量对列向量写法,也可以这样表示,转置符号T不影响自变量x的身份,因为按照矩阵乘法习惯,m×1对1×n求导,得到m×n二维结果,求导上想复用这一习惯直觉而已。因为应用场景,更多文章主张统一分母、分子叫法,即列向量对列向量求导、行向量对行向量求导。
- 注:参考链接1认为列向量对列向量求导是不规范写法,实际上是受到国外教材分子/分母布局定义的影响,例如分子布局被定义为
向量、矩阵对向量、矩阵求导,实际上都是先将矩阵向量化,再按向量对向量求导的形式。
涉及矩阵的求导,按分子布局形式得到的是雅可比(Jacobian)矩阵(雅可比矩阵本身指的是向量对标量的求导),按分母布局得到梯度矩阵(标量对向量的求导)。
标量函数求导
根据结论2:标量函数对向量、矩阵求导,都按照分母布局进行。
标量对向量求导
标量函数对向量求导,相当于分别求偏导,对列向量求导得到列向量的结果,对行向量求导则是行向量的布局。
对列向量
如果对其行向量
标量对矩阵求导
分母布局按矩阵原维度得到的是梯度矩阵形式:
分子布局为雅可比行列式,等于上式转置,不常用,省略。
向量函数求导
向量对标量求导
根据结论3,采用分子布局,即列向量对标量求导还是列向量,行向量还是行向量:
向量对向量求导
本文主张采用分子布局,结果的行数完全由分子维度决定。分子为m维向量,分母为n维向量,无论因变量和自变量是列变量还是行变量,都自动转换到该形式:
其他情况
对于向量对矩阵求导、矩阵对向量、矩阵对矩阵求导而言,都可以相应地向量化成向量对向量求导的形式,本文都主张使用分子布局,得到的矩阵都是雅可比矩阵。
参考链接: