就是一个简单的note,有比没有好
考虑向量对向量求导∂x∂y。现在,这个记号的意义有两种可能:
⎝⎜⎜⎛∂x1∂y1⋮∂x1∂ym⋯⋯∂xn∂y1∂xn∂yn⎠⎟⎟⎞
或者
⎝⎜⎜⎛∂x1∂y1⋮∂xn∂y1⋯⋯∂x1∂ym∂xn∂yn⎠⎟⎟⎞
前者是numerator layout,即分子的y保持为列向量的样子;后者是denominator layout,即分母的x保持为列向量的样子。我们使用numerator layout。
现在考虑式子∂x∂u⊤v。从直觉上说,我们至少希望结果保持为行向量的样子。如果不是向量,我们会写u∂xv+v∂xu。但是这回对应的v∂xu⊤dimension对不上。为了对上,我们改写为
∂x∂u⊤v=u⊤∂x∂v+v⊤∂x∂u
这个思路可以解决基本上所有的情况。例子:我们有矩阵D,向量a,v,令E=(Da−v)⊤(Da−v),那么
∂aE=∂a(a⊤D⊤Da−a⊤D⊤v−v⊤Da+v⊤v)=2a⊤D⊤D−2v⊤D
如果我们使用denominator layout,那么所有的结果就要取转置。注意,使用chain rule得到的结果在顺序上也要反过来。例如,∂f(g(u))/∂x,其中u和x都是向量,就变成了∂xu⋅∂ug⋅∂gf,而在numerator layout下是我们习惯的∂gf⋅∂ug⋅∂xu。这也是我们偏好后者的缘由之一。