矩阵求导和迹运算

#数理知识
Table of Contents

求导

对与矩阵 $X$, $A$, $U$, $V$

$$ \frac{dX^T}{X}=I\\\\ \frac{dX}{X^T}=I\\\\ \frac{dX^TA}{X}=A\\\\ \frac{dAX}{X^T}=A\\\\ \frac{dAX}{X}=A^T\\\\ \frac{dXA}{X}=A^T\\\\ \frac{dX^TX}{X}=2X\\\\ \frac{dX^TAX}{X}=(A+A^T)X\\\\ \frac{dX^TAX}{XX^T}=\frac{d}{dX}(\frac{dX^TAX}{dX})=A^T+A\\\\ \frac{\partial U}{\partial X^T}=(\frac{\partial U^T}{\partial X})^T\\\\ \frac{\partial U^TV}{\partial X}=\frac{\partial U^T}{\partial X}V+\frac{\partial V^T}{\partial X}U^T\\\\ \frac{\partial UV^T}{\partial X}=\frac{\partial U}{\partial X}V^T+U\frac{\partial V^T}{\partial X}\\\\ \frac{\partial [(XU-V)^T(XU-V)]}{\partial X}=2(XU-V)U^T\\\frac{\partial U^TXV}{\partial X}=UV^T\\\\ \frac{\partial U^TX^TXU}{\partial X}=2XUU^T $$

对于一个 n 维的方程组 $f(x_1,x_2,,x_n)$,求解它的最小值需要

$$ \frac{\partial f}{\partial x_1}=0\\\\ \frac{\partial f}{\partial x_2}=0\\\\ \\\\ \frac{\partial f}{\partial x_n}=0 $$

所以可以定义一个矩阵方程,并且 $y\in R^{n\times1}$

$$ f(y)\\\\ y=\begin{bmatrix}x_1\\x_2\\\\y_n\end{bmatrix} $$

则求导为

$$ \frac{\partial f}{\partial y}=\begin{bmatrix}\frac{\partial f}{\partial x_1}\\\\ \\\\ \frac{\partial f}{\partial x_n}\end{bmatrix} $$

最终的结果的行数与分母一致,所以这种布局表达形式被称作 分母布局(Denominator Layout)

$$ \frac{\partial f}{\partial y}=\begin{bmatrix}\frac{\partial f}{\partial x_1}&&\frac{\partial f}{\partial x_n}\end{bmatrix} $$

最终的结果的行数与分子一致,所以这种布局表达形式被称作 分子布局(Numerator Layout)

上述所说的求导是函数是一个 $1\times1$ 的形式的,对于 $m\times 1$ 的函数来说,求导的结果为

$$ f(y)=\begin{bmatrix}f_1\\f_2\\\\f_m\end{bmatrix}\\y=\begin{bmatrix}x_1\\x_2\\\\y_n\end{bmatrix} $$$$ \frac{\partial f}{\partial y}=\begin{bmatrix}\frac{\partial f_1}{\partial x_1}&&\frac{\partial f_m}{\partial x_1}\\&&\\\frac{\partial f_m}{\partial x_n}&&\frac{\partial f_m}{\partial x_n}\end{bmatrix} $$

最终的结果是一个 $n\times m$ 的矩阵,行数与分母一致,所以这种布局表达形式被称作 分母布局(Denominator Layout)

$$ \frac{\partial f}{\partial y}=\begin{bmatrix}\frac{\partial f_1}{\partial x_1}&&\frac{\partial f_1}{\partial x_n}\\&&\\\frac{\partial f_m}{\partial x_1}&&\frac{\partial f_m}{\partial x_n}\end{bmatrix} $$

最终的结果是一个 $m\times n$ 的矩阵,行数与分子一致,所以这种布局表达形式被称作 分子布局(Numerator Layout)

不同的布局形式导致结果互为转置,计算中应当保持一种矩阵运算的形式

对于上述中求解最小/大值需要求导为 0,但是有些情况不能够实现,所以使用梯度下降法

定义梯度

$$ \triangledown y = \frac{\partial f}{\partial y} $$

定义一个初始的 $y=y^*$,不断迭代,直到最终值满意

$$ y^*=y^*-\alpha \triangledown y $$

其中 $\alpha$ 是学习率,也就是不断接近目标值的步长,而且可以是矩阵,对于不同的数据可以有不同的步长

矩阵的链式求导

$$ 函数f(y(u))\\\\ \frac{\partial f}{\partial u}=\frac{\partial y}{\partial u}\frac{\partial f}{\partial y} $$

迹运算

矩阵迹运算

$$ tr~ABC=trCAB=trBCA\\\\ tr~A=trA^T\\\\ tr~aA=a~trA $$

矩阵的迹对矩阵求偏导

$$ \nabla_AtrAB=B^T\\\\ \nabla_{A^T}f(A)=(\nabla_{A}f(A))^T\\\\ \nabla_AtrABA^TC=CAB+C^TAB^T\\\\ \nabla_A|A|=|A|(A^{-1})^T\\\\ \nabla_AtrA^TB=B\\\\ \nabla_AtrA^TBA=(B+B^T)A\\\\ \nabla_AtrABA^T=A(B+B^T) $$