矩阵求导

来自ENPG_Wiki

矩阵求导

我们只需定义这么几点

  • 矩阵的微分(有自然的定义)
  • 矩阵对标量的导数(有明确定义)
  • 标量对矩阵的导数
    • 标量对向量的导数
  • 向量对向量的导数


对导数的定义更多的是为了形式上的考虑,所以也有各种不同的处理,但我们为了实用,先只直接定义列向量相关导数(当然,如果定义了矩阵相关导数,自然间接得到相应横向量的导数),也不定义矩阵对矩阵的导数,一是因为一般用不上,二是形式上需要较大改变(相对本文介绍的形式)。

下面为了定义的动机看起来更加舒服,按如下顺序来定义

  • 定义标量对列向量的导数
  • 定义列向量对列向量的
  • 定义标量对矩阵的导数

下面我们定义导数的主要动机就是在形式上与微分相配合

矩阵的微分

与导数不同,矩阵微分有着很自然的定义 \[ dA = (dA_{ij})_{m\times n} \]

有着很多好用的显然的性质

标量对列向量的导数

由下式定义标量对列向量的导数

\[ df = \sum_i\frac{\partial f}{\partial X_i}dX_i=(\frac{\partial f}{\partial X_i})_{(1\times n)}(dX_i)_{(n\times 1)}=(\frac{\partial f}{\partial X_i})_{(n\times 1)}dX\equiv(\frac{\partial f}{\partial X})^TdX=tr((\frac{\partial f}{\partial X})^TdX)= tr((\frac{\partial f}{\partial X})dX^T) \]

列向量对列向量的导数

\[ dY=(\frac{\partial Y}{\partial X})^TdX \]

标量对矩阵的导数

由下式定义标量对矩阵的导数 \[ df=\sum_{ij}\frac{\partial f}{\partial A_{ij}}dA_{ij}=tr((\frac{\partial f}{\partial A})^TdA) \]

由上式启发,标量对向量和矩阵的导数都可由下式定义 \[ df=tr((\frac{\partial f}{\partial A})^TdA) \] 注:有的书可能去掉上式中的转置来定义,于是所有导数结果均相差一个转置