矩阵求导
矩阵求导
我们只需定义这么几点
- 矩阵的微分(有自然的定义)
- 矩阵对标量的导数(有明确定义)
- 标量对矩阵的导数
- 标量对向量的导数
- 向量对向量的导数
对导数的定义更多的是为了形式上的考虑,所以也有各种不同的处理,但我们为了实用,先只直接定义列向量相关导数(当然,如果定义了矩阵相关导数,自然间接得到相应横向量的导数),也不定义矩阵对矩阵的导数,一是因为一般用不上,二是形式上需要较大改变(相对本文介绍的形式)。
下面为了定义的动机看起来更加舒服,按如下顺序来定义
- 定义标量对列向量的导数
- 定义列向量对列向量的
- 定义标量对矩阵的导数
下面我们定义导数的主要动机就是在形式上与微分相配合
矩阵的微分
与导数不同,矩阵微分有着很自然的定义 \[ 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) \] 注:有的书可能去掉上式中的转置来定义,于是所有导数结果均相差一个转置