矩阵求导
A对B求导的关键点&核心
A中的每个元素对B中的每个元素进行求导。这里的A可以是矩阵,向量或者标量函数,B也可以是矩阵,向量或者标量。
原则1:
分母为列向量的话,则求导结果为一个列向量
分为为行向量的话,则求导结果为一个行向量
原则2:
分子为列向量或者行向量,结果写为一个行向量
补充两个证明过程:
- \(\frac{\partial A^Tx}{\partial x}=\frac{\partial x^TA}{\partial x}=A\)
\(A=(a_1, a_2, \cdots,a_p)^T,x=(x_1,x_2,\cdots,x_p)\)
证明:
注意到这里\(A^Tx\)是标量函数,\(x\)是一个vector
\(A^Tx=(a_1, a_2,\cdots, a_p)\cdot(x_1,x_2,\cdots,x_p)^T=\sum_{i=1}^{p}a_ix_i\)
\(\frac{\partial A^Tx}{\partial x}=[\frac{\partial A^Tx}{\partial x_i}]=[\frac{\partial \sum_{i=1}^{p}a_ix_i}{\partial x_i}]=(a_1, a_2,\cdots, a_p)= A\)
因为标量的转置是相同的,所以\(A^Tx =\sum_{i=1}^{p}a_ix_i=x^TA\),那么\(\frac{\mathrm{d} x^TA}{\mathrm{d} x}=A\)
- \(\frac{\partial x^TAx}{\partial x}=(A^T+A)x\)
\(A=\begin{bmatrix} a_{11}, a_{12}, \cdots, a_{1p}\\a_{21},a_{22}, \cdots,a_{2p}\\\cdots \\a_{p1},a_{p2}, \cdots,a_{pp}\end{bmatrix},x=(x_1,x_2,\cdots,x_p)\)
证明:
\(x^TA=(x_1, x_2,\cdots, x_p)\cdot\begin{bmatrix} a_{11}, a_{12}, \cdots, a_{1p}\\a_{21},a_{22}, \cdots,a_{2p}\\\cdots \\a_{p1},a_{p2}, \cdots,a_{pp}\end{bmatrix}=\begin{bmatrix}\sum_{i=1}^px_ia_{i1},\sum_{i=1}^px_ia_{i2}, \cdots, \sum_{i=1}^px_ia_{ip}\end{bmatrix}\)
\(\begin{aligned}x^TAx&=\begin{bmatrix}\sum_{i=1}^px_ia_{i1}, \sum_{i=1}^px_ia_{i2}, \cdots, \sum_{i=1}^px_ia_{ip}\end{bmatrix}\cdot(x_1, x_2, \cdots, x_p)^T\\&=x_1\sum_{i=1}^px_ia_{i1}+x_2\sum_{i=1}^px_ia_{i2}+ \cdots+x_p\sum_{i=1}^px_ia_{ip}\\&=\sum_{j=1}^px_j\sum_{i=1}^px_ia_{ij}\\&=\sum_{j=1}^p\sum_{i=1}^px_ix_ja_{ij}\end{aligned}\)
\(\begin{aligned}\frac{\partial x^TAx}{\partial x}&=\frac{\partial \sum_{j=1}^p\sum_{i=1}^px_ix_ja_{ij}}{\partial x}=\begin{bmatrix}\frac{\partial \sum_{j=1}^p\sum_{i=1}^px_ix_ja_{ij}}{\partial x_1}\\\frac{\partial \sum_{j=1}^p\sum_{i=1}^px_ix_ja_{ij}}{\partial x_2}\\\cdots\\ \frac{\partial \sum_{j=1}^p\sum_{i=1}^px_ix_ja_{ij}}{\partial x_p}\end{bmatrix} \\&= \begin{bmatrix} \sum_{i=1}^px_ia_{i1}+\sum_{j=1}^px_ja_{1j}\\ \sum_{i=1}^px_ia_{i2}+\sum_{j=1}^px_ja_{2j}\\\cdots\\ \sum_{i=1}^px_ia_{ip}+\sum_{j=1}^px_ja_{pj}\end{bmatrix}\\ &= \begin{bmatrix} \sum_{i=1}^px_ia_{i1}\\ \sum_{i=1}^px_ia_{i2}\\\cdots\\ \sum_{i=1}^px_ia_{ip}\end{bmatrix}+\begin{bmatrix} \sum_{j=1}^px_ja_{1j}\\ \sum_{j=1}^px_ja_{2j}\\\cdots\\ \sum_{j=1}^px_ja_{pj}\end{bmatrix} \\&=\begin{bmatrix} a_{11}, a_{21}, \cdots, a_{1p}\\a_{12},a_{22}, \cdots,a_{2p}\\\cdots \\a_{1p},a_{2p}, \cdots,a_{pp}\end{bmatrix}\cdot(x_1, x_2,\cdots,x_p)^T+\begin{bmatrix} a_{11}, a_{12}, \cdots, a_{1p}\\a_{21},a_{22}, \cdots,a_{2p}\\\cdots \\a_{p1},a_{p2}, \cdots,a_{pp}\end{bmatrix}\cdot(x_1, x_2,\cdots,x_p)^T\\ & = A^Tx+Ax\\&=(A^T+A)x\end{aligned}\)
常用的矩阵求导公式:
- \(\frac{\partial A^Tx}{\partial x}=\frac{\partial x^TA}{\partial x}=A\)
- \(\frac{\partial U^TV}{\partial x}=\frac{\partial U}{\partial x}V+\frac{\partial V}{\partial x}U\)
其中:\(U=\begin{bmatrix} u_1(x)\\u_2(x)\\\cdots\\u_p(x)\end{bmatrix}, V=\begin{bmatrix} v_1(x)\\v_2(x)\\\cdots\\v_p(x)\end{bmatrix}, x=\begin{bmatrix} x_1(x)\\x_2(x)\\\cdots\\x_m(x)\end{bmatrix}\) - \(\frac{\partial U+V}{\partial x}=\frac{\partial U}{\partial x}+\frac{\partial V}{\partial x}\)
说明:
- 上诉讨论的是关于分母布局的,那么还存在分子布局和混合布局的形式。
存在这么多中形式的原因是矩阵求导的排列形式可以改变,每个人可能有自己的喜好,但是总的求导结果的个数是一致的。
但是在实际使用中,最好不要混用分子布局和分母布局,统一一种形式。 - 布局没有优劣之分,合适即最好
- 判断方法:可以通过导数矩阵的维度来确认
文章参考来源:
https://www.bilibili.com/video/BV1fK411W7oh
其他参考材料:
- zdaiot博客:https://www.zdaiot.com/Math/矩阵求导法则与性质/
- 维基百科(矩阵求导):https://en.wikipedia.org/wiki/Matrix_calculus
Po-chen Wu - ppt:http://media.ee.ntu.edu.tw/personal/pcwu/tutorials/matrix_calculus.pdf
- 吴昌悫, 魏洪增. 矩阵理论与方法【J】. M]. 北京: 电子工业出版社, 2006.
浙公网安备 33010602011771号