这篇文章将要解释pytorch autograd
文档中的vector-Jacobian product
。
文章由pytorch
官方文档中的这段话引出。
首先,雅各比矩阵J
计算的是向量Y
对于向量X
的导数。这里假设向量X[x1,x2,...,xn]
是某个model中的weight。而Y[y1,y2,...,yn]
进而由X
经过某个函数f
产生。那么在backpropagation
时,我们要求得就是这个雅各比矩阵J
那么为什么又要求vector-Jacobian product
呢?
首先复习一下backpropagation
在进行backpropagation
的过程,其实就是本层节点的导数与上流节点的导数的乘积。(local gradient * upstream gradient)
那么我们可以假设,在上面Y =