矩阵求导
Kong Liangqian Lv6

行向量偏导

若自变量是$1\times m$向量,行向量偏导算子

则标量函数$f(x)$的行向量偏导为

如果自变量变为$X\in R^{m\times n}$,则需要把$X$先列向量化,然后转置变为行向量。

这里

每一个$X_i$都是一个列向量。

这里$D_{vec^T(X)}f(X)$称为$f(X)$的在$X$处的行向量偏导

Jacobian矩阵

如果直接以矩阵的形式定义$f(X)$在$X$处的偏,则

注意,如果把行向量偏导按照一行一行排列成矩阵,就是Jacobian矩阵

列向量偏导

若自变量是$m\times 1$的向量

别名:梯度算子

如果自变量变为$X\in R^{m\times n}$,则需要把$X$先列向量化,直接求导

梯度矩阵

如果直接以矩阵的形式定义$f(X)$在$X$处的偏导数的列向量形式,则

注意

梯度矩阵和Jacobian矩阵是一个互为转置

Hessian 矩阵

标量函数$f(x)$相对于$m\times 1$的$x$的二阶偏导是一个由$m^2$个二阶偏导组成的矩阵(Hessian矩阵) 。定义为

或者记为

先列向量求偏导,再行向量求偏导。

矩阵微分

向量微分

在这里,我们假设,各变量之间相互独立,并且有

因此,我们有

需要$f$在在该点是的各个变量的偏导数是存在且连续。或者简单记为

这里,$x$为列向量

矩阵微分

假设变元为$X\in R^{m\times n}$,记$\boldsymbol{x}j=[x{1j},…,.x_{mj}]^T,j=1,…,n$为列向量,则

可以把上式简写为

其中 ,$rvec(A)$表示Jacobian矩阵的行向量化,$vec(dX)$是列向量化,

并且

应用行向量化和列向量化的关系

因此可以重写

利用向量化和迹之间的关系

所以,$df(X)$可以最终表示为

命题三

这里给出了如何求实值函数求梯度矩阵$\nabla f(X)$的方法

  • 可以先把他表示为(22)右边的形式
  • $\nabla f(X)=\frac{\partial f(X)}{\partial X}=A^T$

实矩阵微分运算

通过考察$(dX)_{ij}$,可以得到实微分矩阵具有如下性质

转置:观察(17),

线性:观察(11),

迹的微分

矩阵乘积微分

特别的当$A$为常数矩阵的时候:

逆矩阵的微分

迹函数的梯度矩阵

对于$tr(X^TX)$,注意到$tr(A^TB)=tr(B^TA)$,有

根据命题三,我们可以直接得出

三条总结

  1. 实值函数总是可以写完迹的形式
  2. 总可以把dx写到后面
  3. (dx)^T也可以写到后面为dX
 Comments