1. 矩阵向量求导引入 在高等数学里面,我们已经学过了标量对标量的求导,比如标量y对标量x的求导,可以表示为∂y∂x。 有些时候,我们会有一组标量yi,i=1,2,...,m来对一个标量x的求导,那么我们会得到一组标量求导的结果: ∂yi∂x,i=1,2.,,,m 如果我们把这组标量写成向量的形式,即得到维度为m的一个向量y对一个标量x的求导,那么结果也是一个m维的向量:∂y∂x 可见,所谓向量对标量的求导,其实就是向量里的每个分量分别对标量求导,最后把求导的结果排列在一起,按一个向量表示而已。类似的结论也存在于标量对向量的求导,向量对向量的求导,向量对矩阵的求导,矩阵对向量的求导,以及矩阵对矩阵的求导等。 总而言之,所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,方便表达与计算,更加简洁而已。 为了便于描述,后面如果没有指明,则求导的自变量用x表示标量,x表示n维向量,X表示p×q维度的矩阵,求导的因变量用y表示标量,y表示m维向量,Y表示m×n维度的矩阵。
为了解决矩阵向量求导的结果不唯一,我们引入求导布局。最基本的求导布局有两个:分子布局(numerator layout)和分母布局(denominator layout )。 对于分子布局来说,我们求导结果的维度以分子为主,比如对于我们上面对标量求导的例子,结果的维度和分子的维度是一致的。也就是说,如果向量y是一个m维的列向量,那么求导结果∂y∂x也是一个m维列向量。如果如果向量y是一个m维的行向量,那么求导结果∂y∂x也是一个m维行向量。 对于分母布局来说,我们求导结果的维度以分母为主,比如对于我们上面对标量求导的例子,如果向量y是一个m维的列向量,那么求导结果∂y∂x是一个m维行向量。如果如果向量y是一个m维的行向量,那么求导结果∂y∂x是一个m维的列向量向量。 可见,对于分子布局和分母布局的结果来说,两者相差一个转置。 再举一个例子,标量y对矩阵X求导,那么如果按分母布局,则求导结果的维度和矩阵X的维度m×n是一致的。如果是分子布局,则求导结果的维度为n×m。 这样,对于标量对向量或者矩阵求导,向量或者矩阵对标量求导这4种情况,对于的分子布局和分母布局的排列方式已经确定了。 稍微麻烦点的是向量对向量的求导,本文只讨论列向量对列向量的求导,其他的行向量求导只是差一个转置而已。比如m维列向量y对n维列向量x求导。它的求导结果在分子布局和分母布局各是什么呢?对于这2个向量求导,那么一共有mn个标量对标量的求导。求导的结果一般是排列为一个矩阵。如果是分子布局,则矩阵的第一个维度以分子为准,即结果是一个m×n的矩阵,如下:
|