本文是我在阅读Erik Learned-Miller的《Vector, Matrix, and Tensor Derivatives》时的记录,点此下载。
本文的主要内容是帮助你学习如何进行向量、矩阵以及高阶张量(三维及以上的数组)的求导。并一步步引导你来进行向量、矩阵和张量的求导。
1 简化、简化,还是简化(重要的事情说三遍)
在求解涉及到数组的导数时,大部分的困难是因为试图一次性做太多事情。比如说同时求解多个组成部分的导数,在求和符号存在的情况下求解导数,或者使用链式法则。在有丰富的求导经验之前,同时执行所有的这些操作,我们就很容易出错。
1.1 将矩阵计算分解为单个标量的计算
为了简化给定的计算,我们将矩阵的求导分解为每个单独标量元素的表达式,每个表达式只包含标量变量。在写出单个标量元素与其他标量值的表达式后,就可以使用微积分来计算。这比同时进行矩阵的求和以及求导要容易一些。(看起来有点晕,没关系,看后面的案例就清晰了)。
In order to simplify a given calculation, it is often useful to write out the explicit formula for a single scalar element of the output in terms of nothing but scalar variables. Once one has an explicit formula for a single scalar element of the output in terms of other scalar values, then one can use the calculus that you used as a beginner, which is much easier than trying to do matrix math, summations, and derivatives all at the same time.
例如:假设我们有一个
假设我们计算
比如说,我们要计算
在求导之前,首先要做的就是写下计算
现在,我们将原始的矩阵方程式(1)简化成了标量方程式。此时再进行求导就简单多了。
1.2 去除求和符号
虽然可以直接在公式(2)中求导&#x