矩阵运算

参考:
Wikipedia – Matrix calculus
Wikipedia 上对于矩阵的微分描述得很详细。


给定两个矩阵 A=(aij)m×nA=\begin{pmatrix} a_{ij}\end{pmatrix}_{m \times n}B=(bij)m×nB=\begin{pmatrix} b_{ij}\end{pmatrix}_{m \times n},它们的阿达马积和克罗内克积定义如下:
阿达马积(Hadamard product)AB=(aijbij)m×nA \circ B=\begin{pmatrix} a_{ij} \cdot b_{ij} \end{pmatrix}_{m \times n},又称逐元素积(elementwise product)。
克罗内克积(Kronnecker product)AB=(a11Ba1nBam1BamnB)A\bigotimes B=\begin{pmatrix}a_{11} B& \cdots & a_{1n}B \\ \vdots & \ddots & \vdots \\ a_{m1}B & \cdots & a_{mn}B \end{pmatrix}

矩阵的求导:

1. 矩阵 Y 对标量 xix_i 求导:

相当于每个元素求倒数后转置一下,注: M×NM \times N 矩阵求导后变 N×MN \times M 矩阵

Yxi=[Yijxi]T\frac{\partial Y}{\partial x_{i}}=\begin{bmatrix} \frac{\partial Y_{ij}}{\partial x_{i}}\end{bmatrix}^T

2. 标量 yiy_i 对列向量 xx 求导:

yix=[yix1yix2]\frac{\partial y_i}{\partial x}=\begin{bmatrix} \frac{\partial y_{i}}{\partial x_{1}} \\ \frac{\partial y_{i}}{\partial x_{2}} \\ \vdots \end{bmatrix}

3. 行向量 yTy^T 对列向量 xx 求导:

注: 1×M1 \times M 矩阵对 N×1N \times 1 矩阵求导后变 N×MN \times M 矩阵

yTx=[y1y2yn][x1x2xn]=[y1xy2xynx]\frac{\partial y^T}{\partial x}=\frac {\begin{bmatrix} y_1&y_2&\cdots &y_n\end{bmatrix}}{\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\x_n \end{bmatrix}}=\begin{bmatrix} \frac{\partial y_{1}}{\partial x} \\ \frac{\partial y_{2}}{\partial x} \\ \vdots \\ \frac {\partial y_{n}}{\partial x}\end{bmatrix}

有如下公式:

xTx=I\frac{\partial x^T}{x}=I; ②(Ax)Tx=AT\frac{\partial {(Ax)}^T}{\partial x}=A^T

4. 列向量 yy 对行向量 xTx^T 求导:

注: M×1M \times 1 矩阵对 1×N1 \times N 矩阵求导后变 M×NM \times N 矩阵

yxT=(yTx)T\frac{\partial y}{\partial x^T}=(\frac{\partial y^T}{\partial x})^T

5. 向量积对列向量 xx 求导:

uvTx=(ux)vT+u(vTx)\frac {\partial uv^T}{\partial x}=(\frac{\partial u}{\partial x})v^T+u(\frac{\partial v^T}{\partial x})

vuTx=(uTx)v+uT(vTx)\frac {\partial vu^T}{\partial x}=(\frac{\partial u^T}{\partial x})v+u^T(\frac{\partial v^T}{\partial x})

(xTA)x=(xTx)A+xT(Ax)=IA+0xT=A\frac {\partial (x^TA)}{\partial x}=(\frac{\partial x^T}{\partial x})A+x^T(\frac{\partial A}{\partial x})=IA+0x^T=A

(Ax)xT=[(xTAT)x]T=(AT)T=A\frac{\partial (Ax)}{\partial x^T}=[\frac{\partial (x^TA^T)}{\partial x}]^T=(A^T)^T=A

(xTAx)x=(xTx)Ax+[(Ax)Tx]x=Ax+ATx\frac{\partial (x^TAx)}{\partial x}=(\frac{\partial x^T}{\partial x})Ax+[\frac{\partial (Ax)^T}{\partial x}]x=Ax+A^Tx

6. 矩阵 YY 对列向量 xx 求导:

YYxx 的每个分量求偏导构成一个超向量(该向量每个元素都为一个矩阵)

[yij][x1x2xn]=[[yij]x1[yij]x2[yij]xn]\frac{\begin{bmatrix} \partial y_{ij} \end{bmatrix}}{\partial \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}}=\begin{bmatrix} \frac{\partial [y_{ij}]}{\partial x_1} \\ \frac{\partial [y_{ij}]}{\partial x_2}\\ \vdots \\ \frac{\partial [y_{ij}]}{\partial x_n}\end{bmatrix}

注:[yij]xn\frac{\partial [y_{ij}]}{\partial x_n} 为一个矩阵。

7. 矩阵积对列向量 xx

(uv)x=(ux)v+u(vx)\frac{\partial(uv)}{\partial x}=(\frac{\partial u}{\partial x})v+u(\frac{\partial v}{\partial x})

(xTA)x=(xTx)A+xT(Ax)=IA+xT0=A\frac{\partial(x^TA)}{\partial x}=(\frac{\partial x^T}{\partial x})A+x^T(\frac{\partial A}{\partial x})=IA+x^T0=A

8. 标量 yiy_i 对矩阵 XX 的导数:

yiy_iXX 每个元素求导

yiX=yi[xij]\frac{\partial y_i}{\partial X}=\frac{\partial y_i}{\partial [x_{ij}]}

yi=uTXTv=u(i)x(ij)v(j)yiX=uvTy_i=u^TX^Tv=\sum\sum u(i)x(ij)v(j) \Rightarrow \frac{\partial y_i}{\partial X}=uv^T

yi=uTXTXuy_i=u^TX^TXuyiX=2XuuT\frac{\partial y_i}{\partial X}=2Xuu^T

yi=(Xuv)T(Xuv)y_i=(Xu-v)^T(Xu-v)yiX=(uTXTXu2vTXu+vTv)X=2XuuT2vuT+0=2(Xuv)uT\frac{\partial y_i}{\partial X}=\frac{\partial (u^TX^TXu-2v^TXu+v^Tv)}{\partial X}=2Xuu^T-2vu^T+0=2(Xu-v)u^T

9. 矩阵 YY 对矩阵 XX 求导:

YY 的每个元素对 XX 求导,构成一个超级矩阵。

©️2020 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值