0

📝笔记:简明矩阵求导术之分子布局与分母布局

 2 years ago
source link: https://vincentqin.tech/posts/matrix-derivative/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

📝笔记:简明矩阵求导术之分子布局与分母布局

Posted on

2022-03-01

Edited on 2022-03-06

Views: 67 Comments: 0

矩阵或者向量求导时经常会被分子/分母布局搞得头大,如什么时候转置,什么时候不转置。本文将简明介绍常用的矩阵/向量求导技巧。

  1. 对向量求导,举个例子:
    令, ,则

注意,上述结果以分母布局进行排布,具体见后一节的一般形式。

  1. 对向量求导,可以举一个具体的例子对求导过程进行推导。

上述求导结果的排列方式分别展示了分母布局与分子布局。

向量一般可以被认为成一维矩阵,默认按列进行排列。
向量对向量求导,如,其中以及

于是是一个拥有元素的矩阵,那么应该如何组织这个矩阵呢?目前有两种矩阵排列方式,它们分别是:分子布局(Numerator Layout),分母布局(Denominator Layout)

一句话就是按照分子的排列方式进行排列,分子原来怎样排列,求导之后的结果就怎样排列,如:

上式结果中,分子的每个元素是是按照下标按列排布,于是,这种形式也被叫做雅可比矩阵3Jacobian matrix)。

当是标量,是向量时:

上述分子布局在标量对向量的求导的数据排布中并不常见。

上式结果中,分母的每个元素是是按照下标按列排布,于是

当是标量,是向量时:

这种标量对向量求导的情况非常常见,通常是以分母布局对求导结果进行排布

那么向量求导两种方式结果数据排布方式的图示效果如下图所示1

分子-分母布局图示

以上两种形式比较容易搞混(通常在是否使用转置之间徘徊),在使用时务必要说明使用哪种布局!但是实际读论文时很少看到作者写明到底用的哪种,此时需要结合上下文进行判断,推理出论文公式使用的何种布局。另外,值得说明的是,如果作者没有明确说明,自己又懒得看,这时候你可以认为作者使用了“混合布局”,具体地: 按照分子布局, 按照分母布局3

以分母布局为例,常用的矩阵求导公式有:

这里有个小技巧,即分母布局中要加个转置,这是为什么呢?因为分母布局中要求按照分母的排列方式进行组织(一般为列),而分子呢,则”被迫”需要进行转置,反映在求导结果上也就需要转置。

当为对称矩阵时,我们有如下公式2

小节3

  • 向量对向量求导

matrix-derivatives-v-v.png

  • 标量对向量求导

20220306002831.png

特别需要注意的是:

其中, 为标量。

最小化误差:

推导过程如下:

我们对每项进行求导:

令,我们有:

就是上述线性最小二乘问题的解。

1. Matrix Differentiation in Lecture CS5240 Theoretial Foundations in Multimedia, https://www.comp.nus.edu.sg/~cs5240/lecture/matrix-diff.pdf

2. Matrix Cookbook, http://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf

3. Matrix calculus, https://en.jinzhao.wiki/wiki/Matrix_calculus

4. Vector/Matrix Calculus More notes on matrix differentiation.

5. Matrix Differentiation (and some other stuff), Randal J. Barnes, Department of Civil Engineering, University of Minnesota.

6. Matrix Calculus(一款矩阵求导计算器), http://www.matrixcalculus.org/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK