关于标量,向量,矩阵求导

参考文章:https://blog.csdn.net/u010976453/article/details/54381248

关于layout

在求导的时候有,因为分子和分母可能的维度不太一样,所以两种不同的布局,分别是分子布局和分母布局
假设y(向量)对x(标量)求导:

  • 分子布局,即和原来的y相同
  • 分母布局,为分子布局的tranpose

对标量的导数

scalar对scalar求导

即最简单的求导

vector对scalar求导

比如一个列向量y,对x求导,结果是y里面的每个值都对x求导

matrix对scalr求导

矩阵里面的每个值都对x求导

对向量的导数

scalar对vector

  • 标量y和向量x,求出来的结果是y对每个x(x1,x2 ….xn)求导
  • 结果为梯度向量,是标量y在空间Rn的梯度,空间以x为基
  • 注意,x是列向量的话,最后求出来的是行的结果

vector对vector

y = [y1,y2 …. ym]
x = [x1,x2 …. xn]
最后求出来的结果是一个m行n列的矩阵,jacobian矩阵

matrix对vector

矩阵y =
[[y11,y12…y1n],
[y21,y22 …y2n],

[yn1,yn2 …ynn]
]
向量x = [x1,x2…xn]T
最终的结果是每一行分别对这个x的向量求导,所以矩阵的列数和向量的行数应该先通

对于矩阵

一般只考虑标量对矩阵(剩下的情况和上面类似)
最终结果是这个标量对所有的矩阵内容求导,求出来的是梯度矩阵