前言
根据标量,向量,矩阵这三种形式,他们之间的不同的矩阵微分可以有如下表的几种表现形式。
\(\bbox[yellow]{所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,\\方便表达与计算,更加简洁而已,所以计算的结果之中是个列向量还是行向量无关紧要,他们只是按照不同的定义之下计算出的结果而已。看以下结果}\)
在求导的时候不同的文献会有不同的结果,其实这其中相差一个转置,原因是矩阵的求导可以分为分母布局(denominator layout)和分子布局(numerator layout)。分子布局下求导结果的维度以分子为主,反之亦然。所以分子布局和分母布局之间仅相差一个转置。所以为了保证计算结果的唯一性,在计算中,因该保持同一种的布局方式。
如标量\(x\)对向量\(\boldsymbol{y}=\begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}\)求导,则在分子布局之下有:
\[\frac{\partial \boldsymbol{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_1}{\partial x}\\\frac{\partial y_2}{\partial x}\\\vdots\\\frac{\partial y_n}{\partial x}\end{bmatrix} \]在分母布局下的形式为:
\[\frac{\partial \boldsymbol{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_1}{\partial x}&\frac{\partial y_2}{\partial x}&\cdots&\frac{\partial y_n}{\partial x}\end{bmatrix} \]\(\bbox[yellow]{所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,\\方便表达与计算,更加简洁而已,所以计算的结果之中是个列向量还是行向量无关紧要,他们只是按照不同的定义之下计算出的结果而已。}\)
以下的计算均按照分子布局来计算。
1.对标量的导数(分母是标量)
1.1标量对标量的求导
就是常见的形式,可以表示为\(\frac{\partial y}{\partial x}\)
1.2向量对标量的求导
向量就看成一组标量,这一组标量分别对标量\(x\)求导,然后写成矩阵的形式。则向量\(\boldsymbol{y}=\begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}\)对标量\(x\)的求导,就是向量\(\boldsymbol{y}\)的每一个元素分别对\(x\)求导。则表示为:
\[\frac{\partial \boldsymbol{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_1}{\partial x}\\\frac{\partial y_2}{\partial x}\\\vdots\\\frac{\partial y_n}{\partial x}\end{bmatrix} \]1.3矩阵对标量的求导
矩阵对标量的求导同向量对标量的求导,还是矩阵中的每个元素分别对标量求导,然后写成矩阵的形式。则矩阵\(\bf{Y}=\begin{bmatrix}y_{11}&y_{12}&\cdots&y_{1n}\\y_{21}&y_{22}&\cdots&y_{2n}\\\vdots&\vdots&\ddots&\vdots\\y_{n1}&y_{n2}&\cdots&y_{nn}\end{bmatrix}\)对标量\(x\)的求导就是元素分别求导,则表示为:
\[\frac{\partial \bf{Y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{11}}{\partial x}&\frac{\partial y_{12}}{\partial x}&\cdots&\frac{\partial y_{1n}}{\partial x}\\\frac{\partial y_{21}}{\partial x}&\frac{\partial y_{22}}{\partial x}&\cdots&\frac{\partial y_{2n}}{\partial x}\\\vdots&\vdots&\ddots&\vdots\\\frac{\partial y_{n1}}{\partial x}&\frac{\partial y_{n2}}{\partial x}&\cdots&\frac{\partial y_{nn}}{\partial x}\end{bmatrix} \]2.对向量的导数(分母是向量)
2.1标量对向量求导
标量\(y\)对向量\(\boldsymbol{x}=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}\)求导可以表示为(分子布局):
\[\frac{\partial y}{\partial \boldsymbol{x}}=\begin{bmatrix}\frac{\partial y}{\partial x_1}&\frac{\partial y}{\partial x_2}&\cdots&\frac{\partial y}{\partial x_n}\end{bmatrix} \]此时该向量被称为\(\bbox[yellow]{梯度向量}\),是标量\(y\)在以\(\boldsymbol{x}\)为基的空间的梯度,注意有的也会以列向量的形式表示。
2.2向量对向量求导
向量函数\(\boldsymbol{y}=\begin{bmatrix}y_1\\y_2\\\vdots\\y_m\end{bmatrix}\)(注意向量函数y中的各个元素是函数,不是简单的标量)对向量\(\boldsymbol{x}=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}\)的导数表示为(分子布局):
\[\frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x_1}&\frac{\partial y_{1}}{\partial x_2}&\cdots&\frac{\partial y_{1}}{\partial x_n}\\\frac{\partial y_{2}}{\partial x_1}&\frac{\partial y_{2}}{\partial x_2}&\cdots&\frac{\partial y_{2}}{\partial x_n}\\\vdots&\vdots&\ddots&\vdots\\\frac{\partial y_{m}}{\partial x_1}&\frac{\partial y_{m}}{\partial x_2}&\cdots&\frac{\partial y_{m}}{\partial x_n}\end{bmatrix} \]此时,这种函数向量函数对向量求导得到的矩阵称为\(\bbox[yellow]{雅可比矩阵}\)。有的资料会以\(\frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}^T}\)形式来定义雅可比矩阵,但意义是一样的。
上式是以分子布局的形式排列,则矩阵的第一个维度以分子为准,所以是个mxn型的矩阵。相反,若是以分母布局排列,则计算得到的矩阵为nxm型。
2.3矩阵对向量求导
矩阵\(\bf{Y}=\begin{bmatrix}y_{11}&y_{12}&\cdots&y_{1n}\\y_{21}&y_{22}&\cdots&y_{2n}\\\vdots&\vdots&\ddots&\vdots\\y_{n1}&y_{n2}&\cdots&y_{nn}\end{bmatrix}\)(注意矩阵中的元素是函数,否则求什么偏导呢?)对向量\(\boldsymbol{x}=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}\)求导可以表示为:
\[\frac{\partial \bf{Y}}{\partial \boldsymbol{x}}=\begin{bmatrix}\frac{\partial y_{11}}{\partial x_{1}}&\frac{\partial y_{12}}{\partial x_{2}}&\cdots&\frac{\partial y_{1n}}{\partial x_{n}}\\\frac{\partial y_{21}}{\partial x_{1}}&\frac{\partial y_{22}}{\partial x_{2}}&\cdots&\frac{\partial y_{2n}}{\partial x_{n}}\\\vdots&\vdots&\ddots&\vdots\\\frac{\partial y_{n1}}{\partial x_{1}}&\frac{\partial y_{n2}}{\partial x_{2}}&\cdots&\frac{\partial y_{nn}}{\partial x_{n}}\end{bmatrix} \]3.对矩阵的导数(分母是矩阵)
3.1标量对矩阵求导
标量\(y\)对矩阵\(\bf{X}=\begin{bmatrix}x_{11}&x_{12}&\cdots&x_{1n}\\x_{21}&x_{22}&\cdots&x_{2n}\\\vdots&\vdots&\ddots&\vdots\\x_{n1}&x_{n2}&\cdots&x_{nn}\end{bmatrix}\)求导可以表示为:
\[\frac{\partial {y}}{\partial \bf{X}}=\begin{bmatrix}\frac{\partial y_{}}{\partial x_{11}}&\frac{\partial y_{}}{\partial x_{21}}&\cdots&\frac{\partial y_{}}{\partial x_{n1}}\\\frac{\partial y_{}}{\partial x_{12}}&\frac{\partial y_{}}{\partial x_{22}}&\cdots&\frac{\partial y_{}}{\partial x_{n2}}\\\vdots&\vdots&\ddots&\vdots\\\frac{\partial y_{}}{\partial x_{1n}}&\frac{\partial y_{}}{\partial x_{2n}}&\cdots&\frac{\partial y_{}}{\partial x_{nn}}\end{bmatrix} \]4.用定义对向量和矩阵求导
4.1标量对向量求导(分母是向量)
其中的\(\bf{x}\)是向量,故\(y=a^T\bf{x}\)和 \(y=\bf{x^T}A\bf{x}\)就是一个标量
\(\color{red}{注意下面的计算结果均是由定义推导来的,没有前提条件A是对称阵等。}\)
标量对向量的求导,其实就是标量对向量里的每个分量分别求导,最后把求导的结果排列在一起,按一个向量表示而已。
则若求解\(\frac{\partial \bf{a^Tx}}{\partial \bf{x}}\)先看下面的计算:(也就是先对标量按照原理求解,然后排列成想要的向量结果)
\[\\ \frac{\partial \bf{a^Tx}}{\partial {x_i}}=\frac{\partial \sum_{j=1}^{n}{a_ix_i}}{\partial {x_i}}=a_i\\ \]即,向量中的第\(i\)个分量的求导结果就是向量\(\bf{a}\)的第\(i\)个分量。采用分母布局,将所有的求导结果组成一个n维的向量,也就是向量\(\bf{a}\),即有
\[\frac{\partial \bf{a^Tx}}{\partial \bf{x}}=\bf{a}\\ \]同理有:
\[\frac{\partial \bf{x^Ta}}{\partial \bf{x}}=\bf{a}\\ \]再者,还可以有:
\[\frac{\partial \bf{x^Tx}}{\partial \bf{x}}=\bf{2x}\\ \] \[因为\frac{\partial \bf{x^Tx}}{\partial x_i}=\frac{\partial \sum_{j=1}^{n}{x_i^2}}{\partial {x_i}}=2x_i\\ \]此外,对于\(\frac{\partial \bf{x^TAx}}{\partial \bf{x}}\)有如下的形式:
\[\frac{\partial \mathbf{x}^T\mathbf{A}\mathbf{x}}{\partial x_k} = \frac{\partial \sum\limits_{i=1}^n\sum\limits_{j=1}^n x_iA_{ij}x_j}{\partial x_k} \\= \frac{\partial [(x_1A_{11}x_1+x_1A_{12}x_2+\cdots+x_1A_{1k}x_k+\cdots)+\cdots+(x_kA_{k1}x_1+x_kA_{k2}x_2+\cdots+x_kA_{kk}x_k+\cdots)+ \cdots]}{\partial x_k}\\ =\sum\limits_{i=1}^n A_{ik}x_i + \sum\limits_{j=1}^n A_{kj}x_j \]故而有:
\[\frac{\partial \mathbf{x}^T\mathbf{A}\mathbf{x}}{\partial \mathbf{x}} = \mathbf{A}^T\mathbf{x} + \mathbf{A}\mathbf{x} \]4.2标量对矩阵求导(分母是矩阵)
\(y=\mathbf{a}^T\mathbf{X}\mathbf{b}\),其中的\(a,b分别是m维和n维的向量,\bf{X}为m\times n的矩阵\)
求解\(\frac{\partial \mathbf{a}^T\mathbf{X}\mathbf{b}}{\partial \mathbf{X}}\)时,同样先用分母的矩阵中的一个元素来求:
\[\frac{\partial \mathbf{a}^T\mathbf{X}\mathbf{b}}{\partial X_{ij}} = \frac{\partial \sum\limits_{p=1}^m\sum\limits_{q=1}^n a_pX_{pq}b_q}{\partial X_{ij}} = \frac{\partial a_iX_{ij}b_j}{\partial X_{ij}} = a_ib_j \]则,再将结果排成一个矩阵,则有:
\[\frac{\partial \mathbf{a}^T\mathbf{X}\mathbf{b}}{\partial \mathbf{X}} = ab^T \]