Matrix Calculus

矩阵微积分初探

1.1 简介

       矩阵微积分就是用向量和矩阵来表示因变量中每个分量对自变量中每个分量的导数。根据变量格式可以将矩阵微分简单概括为表3-1所示的9种形式:

标量 y y y向量 y \mathbf{y} y矩阵 Y \mathbf{Y} Y
标量 x x x ∂ y ∂ x \frac{\partial y}{\partial x} xy ∂ y ∂ x \frac{\partial\mathbf{y}}{\partial x} xy ∂ Y ∂ x \frac{\partial\mathbf{Y}}{\partial x} xY
向量 x \mathbf{x} x ∂ y ∂ x \frac{\partial y}{\partial\mathbf{x}} xy ∂ y ∂ x \frac{\partial\mathbf{y}}{\partial\mathbf{x}} xy
矩阵 X \mathbf{X} X ∂ y ∂ X \frac{\partial y}{\partial\mathbf{X}} Xy

       易知,表格中有三项为空,分别为矩阵 Y \mathbf{Y} Y对向量 x \mathbf{x} x 的导数,矩阵 Y \mathbf{Y} Y对矩阵 X \mathbf{X} X的导数和向量 x \mathbf{x} x对矩阵 Y \mathbf{Y} Y的导数。这样写的原因是由于矩阵 Y \mathbf{Y} Y对向量 x \mathbf{x} x的导数可视为矩阵 Y \mathbf{Y} Y对多个标量 x i x_i xi 求导,其结果是秩超过2的张量,无法用一个二维矩阵表示。其它的类似。
       矩阵求导有两种布局,即两种求导规则,它们分别是分子布局与分母布局。这两种求导规则没有优劣之分,但需要保持在一个问题当中布局使用的一致性,否则容易导致混乱。
       本博客是对矩阵微积分的入门级总结,省略了许多复杂且重要的内容,有兴趣者可进一步参考维基百科Matrix_calculus的介绍,其它网络上的博客不看也罢,根据个人踩坑经验发现基本都是参考自维基百科或自己瞎编。

1.2 符号约定

       为了更加方便高效地说明矩阵微积分的具体形式,先对矩阵微积分中的符号制定统一的规则。在该规则中,我们通过字体来区分标量,向量和矩阵。

  1. 用粗体大写字母表示矩阵,如 X \mathbf{X} X, Y \mathbf{Y} Y 等,其中 M(n,m) 表示 n 行 m 列的矩阵。
  2. 用粗体小写字母表示向量,如 x \mathbf{x} x, y \mathbf{y} y 等,其中 M(n,1) 表示包含 n 个元素的列向量,根据《线性代数及其应用》中的定义向量其实就是指一列的矩阵。
  3. 用斜体小写字母表示标量,如 x,y等。
  4. X T \mathbf{X}^T XT表示矩阵转置, tr(X)是轨迹,det(X) 或 |X| 是行列式。
  5. 除非有特别说明。字母表中前半部分的普通的字母(a, b, c, …)用来表示常量,后半部分字母(t, x, y, …)用来表示变量。

1.3 分子布局

  1. 对标量 x 求导

    分子为标量 y : d y d x \frac{dy}{dx} dxdy

    分子为向量 y = ( y 1 , y 2 , … , y n ) \mathbf{y} = (y_1,y_2,\dots,y_n) y=(y1,y2,,yn) ∂ y ∂ x = ( ∂ y 1 ∂ x , ∂ y 2 ∂ x , … , ∂ y n ∂ x ) \frac{\partial\mathbf{y}}{\partial x} = (\frac{\partial y_1}{\partial x},\frac{\partial y_2}{\partial x},\dots,\frac{\partial y_n}{\partial x}) xy=(xy1,xy2,,xyn),这是列向量且为正切向量;

    分子为矩阵 Y = [ y 11 y 12 … y 1 m y 21 y 22 … y 2 m ⋮ ⋮ ⋱ ⋮ y n 1 y n 2 ⋯ y n m ] \mathbf{Y} = \left[ \begin{matrix} y_{11} & y_{12} & \dots & y_{1m}\\ y_{21} & y_{22} & \dots & y_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ y_{n1} & y_{n2} & \cdots & y_{nm} \end{matrix} \right] Y=y11y21yn1y12y22yn2y1my2mynm ∂ Y ∂ x = [ y 11 ∂ x y 12 ∂ x … y 1 m ∂ x y 21 ∂ x y 22 ∂ x … y 2 m ∂ x ⋮ ⋮ ⋱ ⋮ y n 1 ∂ x y n 2 ∂ x ⋯ y n m ∂ x ] \frac{\partial\mathbf{Y}}{\partial x} = \left[ \begin{matrix} \frac{y_{11}}{\partial x} & \frac{y_{12}}{\partial x} & \dots & \frac{y_{1m}}{\partial x}\\ \frac{y_{21}}{\partial x} & \frac{y_{22}}{\partial x} & \dots & \frac{y_{2m}}{\partial x} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{y_{n1}}{\partial x} & \frac{y_{n2}}{\partial x} & \cdots & \frac{y_{nm}}{\partial x} \end{matrix} \right] xY=xy11xy21xyn1xy12xy22xyn2xy1mxy2mxynm

  2. 对向量 x = ( x 1 , x 2 , … , x m ) \mathbf{x} = (x_1,x_2,\dots,x_m) x=(x1,x2,,xm)求导

    分子为标量 y : d y d x = [ ∂ y ∂ x 1 ∂ y ∂ x 2 ⋯ ∂ y ∂ x m ] \frac{dy}{d\mathbf{x}} =\left[ \begin{matrix} \frac{\partial y}{\partial x_1} & \frac{\partial y}{\partial x_2} & \cdots &\frac{\partial y}{\partial x_m}\end{matrix} \right] dxdy=[x1yx2yxmy],该矩阵为 y 在空间 R n \mathbf{R}^n Rn 的梯度,该空间以 x \mathbf{x} x 为基;

    分子为向量 y = ( y 1 , y 2 , … , y n ) \mathbf{y} = (y_1,y_2,\dots,y_n) y=(y1,y2,,yn) ∂ y ∂ x = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ⋯ ∂ y 1 ∂ x m ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ⋯ ∂ y 2 ∂ x m ⋮ ⋮ ⋱ ⋮ ∂ y n ∂ x 1 ∂ y n ∂ x 2 ⋯ ∂ y n ∂ x m ] \frac{\partial\mathbf{y}}{\partial x} = \left[ \begin{matrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_m}\\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_m}\\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y_n}{\partial x_1} & \frac{\partial y_n}{\partial x_2} & \cdots & \frac{\partial y_n}{\partial x_m} \end{matrix} \right] xy=x1y1x1y2x1ynx2y1x2y2x2ynxmy1xmy2xmyn,该矩阵被称为雅可比矩阵(Jacobian);

  3. 对矩阵 X = [ x 11 x 12 … x 1 m x 21 x 22 … x 2 m ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n m ] \mathbf{X} = \left[ \begin{matrix} x_{11} & x_{12} & \dots & x_{1m}\\ x_{21} & x_{22} & \dots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nm} \end{matrix} \right] X=x11x21xn1x12x22xn2x1mx2mxnm求导

    分子为标量 y : ∂ y ∂ X = [ ∂ y ∂ x 11 ∂ y ∂ x 21 … ∂ y ∂ x n 1 ∂ y ∂ x 12 ∂ y ∂ x 22 … ∂ y ∂ x n 2 ⋮ ⋮ ⋱ ⋮ ∂ y ∂ x 1 m ∂ y ∂ x 2 m ⋯ y ∂ x n m ] \frac{\partial y}{\partial\mathbf{X}} = \left[ \begin{matrix} \frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{21}} & \dots & \frac{\partial y}{\partial x_{n1}}\\ \frac{\partial y}{\partial x_{12}} & \frac{\partial y}{\partial x_{22}} & \dots & \frac{\partial y}{\partial x_{n2}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y}{\partial x_{1m}} & \frac{\partial y}{\partial x_{2m}} & \cdots & \frac{y}{\partial x_{nm}} \end{matrix} \right] Xy=x11yx12yx1myx21yx22yx2myxn1yxn2yxnmy

1.4 分母布局

       其实分母布局的结果就是对应分子布局结果的转置,为了方便阅读及对比,还是将分母布局的相关结果在下面表示出来。

  1. 对标量 x 求导

    分子为标量 y : d y d x \frac{dy}{dx} dxdy

    分子为向量 y = ( y 1 , y 2 , … , y n ) \mathbf{y} = (y_1,y_2,\dots,y_n) y=(y1,y2,,yn) ∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x … ∂ y m ∂ x ] \frac{\partial\mathbf{y}}{\partial x} = \left[ \begin{matrix} \frac{\partial y_1}{\partial x} & \frac{\partial y_2}{\partial x} & \dots & \frac{\partial y_m}{\partial x} \end{matrix} \right] xy=[xy1xy2xym],这是行向量;

    分子为矩阵 Y = [ y 11 y 12 … y 1 m y 21 y 22 … y 2 m ⋮ ⋮ ⋱ ⋮ y n 1 y n 2 ⋯ y n m ] \mathbf{Y} = \left[ \begin{matrix} y_{11} & y_{12} & \dots & y_{1m}\\ y_{21} & y_{22} & \dots & y_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ y_{n1} & y_{n2} & \cdots & y_{nm} \end{matrix} \right] Y=y11y21yn1y12y22yn2y1my2mynm ∂ Y ∂ x = [ y 11 ∂ x y 21 ∂ x … y n 1 ∂ x y 12 ∂ x y 22 ∂ x … y n 2 ∂ x ⋮ ⋮ ⋱ ⋮ y 1 m ∂ x y 2 m ∂ x ⋯ y n m ∂ x ] \frac{\partial\mathbf{Y}}{\partial x} = \left[ \begin{matrix} \frac{y_{11}}{\partial x} & \frac{y_{21}}{\partial x} & \dots & \frac{y_{n1}}{\partial x}\\ \frac{y_{12}}{\partial x} & \frac{y_{22}}{\partial x} & \dots & \frac{y_{n2}}{\partial x} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{y_{1m}}{\partial x} & \frac{y_{2m}}{\partial x} & \cdots & \frac{y_{nm}}{\partial x} \end{matrix} \right] xY=xy11xy12xy1mxy21xy22xy2mxyn1xyn2xynm

  2. 对向量 x = ( x 1 , x 2 , … , x m ) \mathbf{x} = (x_1,x_2,\dots,x_m) x=(x1,x2,,xm)求导

    分子为标量 y : d y d x = ( ∂ y ∂ x 1 , ∂ y ∂ x 2 , ⋯   , ∂ y ∂ x m ) \frac{dy}{d\mathbf{x}} =(\frac{\partial y}{\partial x_1}, \frac{\partial y}{\partial x_2},\cdots,\frac{\partial y}{\partial x_m}) dxdy=(x1y,x2y,,xmy)

    分子为向量 y = ( y 1 , y 2 , … , y n ) \mathbf{y} = (y_1,y_2,\dots,y_n) y=(y1,y2,,yn) ∂ y ∂ x = [ ∂ y 1 ∂ x 1 ∂ y 2 ∂ x 1 ⋯ ∂ y n ∂ x 1 ∂ y 1 ∂ x 2 ∂ y 2 ∂ x 2 ⋯ ∂ y n ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ y 1 ∂ x m ∂ y 2 ∂ x m ⋯ ∂ y n ∂ x m ] \frac{\partial\mathbf{y}}{\partial \mathbf{x}} = \left[ \begin{matrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_2}{\partial x_1} & \cdots & \frac{\partial y_n}{\partial x_1}\\ \frac{\partial y_1}{\partial x_2} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_n}{\partial x_2}\\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y_1}{\partial x_m} & \frac{\partial y_2}{\partial x_m} & \cdots & \frac{\partial y_n}{\partial x_m} \end{matrix} \right] xy=x1y1x2y1xmy1x1y2x2y2xmy2x1ynx2ynxmyn

  3. 对矩阵 X = [ x 11 x 12 … x 1 m x 21 x 22 … x 2 m ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n m ] \mathbf{X} = \left[ \begin{matrix} x_{11} & x_{12} & \dots & x_{1m}\\ x_{21} & x_{22} & \dots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nm} \end{matrix} \right] X=x11x21xn1x12x22xn2x1mx2mxnm求导

    分子为标量 y : ∂ y ∂ X = [ ∂ y ∂ x 11 ∂ y ∂ x 12 … ∂ y ∂ x 1 m ∂ y ∂ x 21 ∂ y ∂ x 22 … ∂ y ∂ x 2 m ⋮ ⋮ ⋱ ⋮ ∂ y ∂ x n 1 ∂ y ∂ x n 2 ⋯ y ∂ x n m ] \frac{\partial y}{\partial\mathbf{X}} = \left[ \begin{matrix} \frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{12}} & \dots & \frac{\partial y}{\partial x_{1m}}\\ \frac{\partial y}{\partial x_{21}} & \frac{\partial y}{\partial x_{22}} & \dots & \frac{\partial y}{\partial x_{2m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y}{\partial x_{n1}} & \frac{\partial y}{\partial x_{n2}} & \cdots & \frac{y}{\partial x_{nm}} \end{matrix} \right] Xy=x11yx21yxn1yx12yx22yxn2yx1myx2myxnmy

1.5 参考

[1] Vinicier.机器学习中的线性代数之矩阵求导
[2] Echo.矩阵求导 – 机器学习常用
[3] Veröffentlicht am.矩阵求导笔记
[4] 仙守.数学-矩阵计算(4)两种布局
[5] 维基.Matrix_calculus
[6] lx青萍之末.矩阵求导、几种重要的矩阵及常用的矩阵求导公式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值