理解三个原则,轻松掌握矩阵求导

269 阅读3分钟

矩阵求导在机器学习领域十分常见,无论在学习时,或者阅读相关论文的时候,掌握矩阵求导的方法是必要的。虽然有很多总结好的公式可以记住,但是总有忘记的时候,因此记再多也不如自己懂得如何计算。
根据矩阵微分的相关定义,可以总结出矩阵求导的三个原则:

  • 如果函数f(x)为矩阵函数或向量函数,而自变量x为标量,则最终导数是与f(x)形状相同的矩阵或向量,每个分量是f(x)的对应位置的分量对x的导数;

  • 如果函数f(x)为标量函数,而自变量x为矩阵或向量,则最终导数是与x形状相同的矩阵或向量,每个分量是f(x)对x的相应位置的分量的偏导数;

  • 如果函数f(x)与自变量x都是矩阵或向量,则先将f(x)看做标量对x求导,得到与x形状相同的中间结果,其中每个分量是f(x)对x相应位置的分量的偏导数(暂时形式化表示);然后对每个分量上的形式化导数展开。

上面的三条原则基本上包含了矩阵求导的所有情况,也很容易理解,不过还是有些抽象,下面通过几个例子更加形象地说明。

例1: f(x)是矩阵函数,自变量x是标量,f(x)表示如下:

图片

那么f(x)关于x的导数为

图片


例2: f(x)是标量函数,自变量x是向量,x表示如下:

图片

那么f(x)关于x的导数为

图片

例3: 在例2的基础上,求

ddxT(df(x)dx)\frac{\mathrm{d}}{\mathrm{d}x^T}(\frac{\mathrm{d}f(x)}{\mathrm{d}x})

首先求出f(x)关于x的导数

df(x)dx\frac{\mathrm{d}f(x)}{\mathrm{d}x}

再将其看做xTx^T的函数,进行求导。
df(x)dx\frac{\mathrm{d}f(x)}{\mathrm{d}x}关于xTx^T的导数时,先将其看做标量函数,得到

图片

然后将每个分量展开

图片

最终得到

图片

虽然根据上面的三个原则,不能包含所有矩阵求导问题,但应该足以应付机器学习当中比较常见的一些情况。
如果遇到了更复杂的情况,可以给大家推荐一本书叫做:《MatrixCookBook》,这本书里面总结了各种有关矩阵求导的实例,需要的时候可以当做工具进行查阅。

下载链接如下: pan.baidu.com/s/1DorWHcPe… 提取码: nbpx,如果链接失效,请联系我。