关于标量、向量、矩阵求导的一些

1、求导的一些基本规则:

通常来说,标量、向量以及矩阵之间的求导,可以理解维每个分量分别对分量进行求导然后进行排列。可以行排列也可以列排列,当然两者都可以。分别称之为分子布局和分母布局。

于分子布局来说,我们求导结果的维度以分子为主,求导结果的维度和分子的维度是一致的。也就是说,如果向量y是一个m维的列向量,那么求导结果 ∂ y ∂ x \frac{∂y}{∂x} xy也是一个m维列向量,即维数为m×1。如果如果向量y是一个m维的行向量,那么求导结果 ∂ y ∂ x \frac{∂y}{∂x} xy也是一个m维行向量,即1×m。

对于分母布局来说,我们求导结果的维度以分母为主,求导结果的维度和分子的结果是一致的,也就是说,如果向量y是一个m维的列向量,那么求导结果 ∂ y ∂ x \frac{∂y}{∂x} xy是一个1×m维行向量。如果如果向量y是一个m维的行向量,那么求导结 ∂ y ∂ x \frac{∂y}{∂x} xy是一个m×1维的列向量。

可见,对于分子布局和分母布局的结果来说,两者相差一个转置。一般来说在机器学习的书中,我们会使用一种叫混合布局的思路,即如果是向量或者矩阵对标量求导,则使用分子布局为准,如果是标量对向量或者矩阵求导,则以分母布局为准。而在最优化的书中,则采用的方法恰恰相反,当然这两者都是正确的,以解决问题的便捷为好。而向量和矩阵之间的求导则依据分子布局雅可比矩阵的求导规则。以下例子均使用最优化中的方法。
总结一下:在这里插入图片描述关于标量、向量以及矩阵之间求导的基本布局原理。

2、几个常见推导运算

  • ∂ A x ∂ x = A \frac{\partial\mathbf{Ax}}{\partial\mathbf{x}}=A xAx=A
    其中:
    A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] x = [ x 1 x 2 ⋮ x n ] A=\left[\begin{array}{cc} a_{11} & a_{12} \cdots a_{1 n} \\ a_{21} & a_{22} \cdots a_{2 n} \\ \vdots & \vdots \ddots \vdots \\ a_{m 1} & a_{m 2} \cdots a_{m n} \end{array}\right] \mathbf{x}=\begin{bmatrix}x_{1}\\ x_{2}\\ \vdots\\ x_{n} \end{bmatrix} A=a11a21am1a12a1na22a2nam2amnx=x1x2xn
    ∂ ( A x ) ∂ x = [ ∂ ( A x ) 1 ∂ x 1 ∂ ( A x ) 1 ∂ x 2 ⋯ ∂ ( A x ) 1 ∂ x m ∂ ( A x ) 2 ∂ x 1 ∂ ( A x ) 2 ∂ x 2 ⋯ ∂ ( A x ) 2 ∂ x m ⋮ ⋮ ⋱ ⋮ ∂ ( A x ) n ∂ x 1 ∂ ( A x ) n ∂ x 2 ⋯ ∂ ( A x ) n ∂ x m ] = [ a 11 a 12 ⋯ a 1 m a 21 a 22 ⋯ a 2 m ⋮ ⋮ ⋱ a n 1 a n 2 ⋯ a n m ] = A \frac{\partial(\mathbf{A} \mathbf{x})}{\partial \mathbf{x}}=\left[\begin{array}{cccc} \frac{\partial(\mathbf{A} \mathbf{x})_{1}}{\partial x_{1}} & \frac{\partial(\mathbf{A} \mathbf{x})_{1}}{\partial x_{2}} & \cdots & \frac{\partial(\mathbf{A} \mathbf{x})_{1}}{\partial x_{m}} \\ \frac{\partial(\mathbf{A} \mathbf{x})_{2}}{\partial x_{1}} & \frac{\partial(\mathbf{A} \mathbf{x})_{2}}{\partial x_{2}} & \cdots & \frac{\partial(\mathbf{A} \mathbf{x})_{2}}{\partial x_{m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial(\mathbf{A} \mathbf{x})_{n}}{\partial x_{1}} & \frac{\partial(\mathbf{A} \mathbf{x})_{n}}{\partial x_{2}} & \cdots & \frac{\partial(\mathbf{A} \mathbf{x})_{n}}{\partial x_{m}} \end{array}\right]=\left[\begin{array}{cc} a_{11} & a_{12} \cdots a_{1m} \\ a_{21} & a_{22} \cdots a_{2m} \\ \vdots & \vdots \ddots \\ a_{n1} & a_{n2} \cdots a_{nm} \end{array}\right]=\mathbf{A} x(Ax)=x1(Ax)1x1(Ax)2x1(Ax)nx2(Ax)1x2(Ax)2x2(Ax)nxm(Ax)1xm(Ax)2xm(Ax)n=a11a21an1a12a1ma22a2man2anm=A
    ( A x ) i = a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n (\mathbf{A} \mathbf{x})_{i}=a_{i 1} x_{1}+a_{i 2} x_{2}+\cdots+a_{i n} x_{n} (Ax)i=ai1x1+ai2x2++ainxn
    总结,对于 A , m × n A,m×n Am×n维向量, x 为 n × 1 x为n×1 xn×1维向量,直接提取 A A A
  • ∂ ( y ⊤ A x ) x = y ⊤ A \frac{\partial\left(\boldsymbol{y}^{\top} \boldsymbol{A} \boldsymbol{x}\right)}{x}=\boldsymbol{y}^{\top} \boldsymbol{A} x(yAx)=yA
    y T A x y^\mathbf{T}Ax yTAx分成 y T A y^\mathbf{T}A yTA x x x分开,例1得到结果。
  • ∂ ( x ⊤ x ) = 2 x ⊤ \partial\left(\boldsymbol{x}^{\top} \boldsymbol{x}\right)=2 \boldsymbol{x}^{\top} (xx)=2x
    运用定义法对其推导,设 x x x为n×1维的矩阵,则 x T x^\mathbf{T} xT为一个常向量,分别对 x x x进行求导,即得到结果。以下均可按照此证明。
  • ∂ ( x ⊤ Q x ) = 2 x ⊤ Q \partial\left(\boldsymbol{x}^{\top} \boldsymbol{Q} \boldsymbol{x}\right)=2 \boldsymbol{x}^{\top} \boldsymbol{Q} (xQx)=2xQ
    Q Q Q是对称矩阵

3、向量求导的链式规则

在标量的求导中,常有链式规则 ∂ z ∂ x = ∂ z ∂ y ∂ y ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}}=\frac{\partial \mathbf{z}}{\partial \mathbf{y}} \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xz=yzxy,下面论证在向量求导中应用链式规则。
3.1、 ( ∂ z ∂ x ) T = ( ∂ z ∂ y ) T ∂ y ∂ x \left(\frac{\partial z}{\partial \mathbf{x}}\right)^{T}=\left(\frac{\partial z}{\partial \mathbf{y}}\right)^{T} \frac{\partial \mathbf{y}}{\partial \mathbf{x}} (xz)T=(yz)Txy
其中z为标量,x,y为向量
3.2、 ∂ z ∂ x = ∂ z ∂ y ∂ y ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}}=\frac{\partial \mathbf{z}}{\partial \mathbf{y}} \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xz=yzxy
其中x,y,均为向量
对维度进行分析,知两边维度相容,另外根据定义法,即基本规则可证明上述规则成立。

4、更一般的形式

另外,对于更一般的形式,可以运用求导规则中的一般规则 ∂ a u ∂ x = a ∂ u ∂ x + ∂ a ∂ x u T \frac{\partial a \mathbf{u}}{\partial \mathbf{x}}=a \frac{\partial \mathbf{u}}{\partial \mathbf{x}}+\frac{\partial a}{\partial \mathbf{x}} \mathbf{u}^{\mathrm{T}} xau=axu+xauT
其中, A ∈ R m × n , u ∈ R n × 1 , x ∈ R p × 1 \mathbf{A} \in \mathbb{R}^{m \times n}, \mathbf{u} \in \mathbb{R}^{n \times 1}, \mathbf{x} \in \mathbb{R}^{p \times 1} ARm×n,uRn×1,xRp×1
举例: ∂ ( x T A ) y ∂ x \frac{\partial\left(\mathbf{x}^{\mathrm{T}} \mathbf{A}\right) \mathbf{y}}{\partial \mathbf{x}} x(xTA)y
∂ y ∂ x ∈ R m × n ∂ x T A ∂ x = A ∈ R m × n \begin{aligned}\frac{\partial \mathbf{y}}{\partial \mathbf{x}} \in \mathbb{R}^{m \times n} &\frac{\partial \mathbf{x}^{\mathrm{T}} \mathbf{A}}{\partial \mathbf{x}}=\mathbf{A} \in \mathbb{R}^{m \times n}\end{aligned} xyRm×nxxTA=ARm×n
∂ ( x T A ) y ∂ x = ∂ y ∂ x A T x + A y \frac{\partial\left(\mathbf{x}^{\mathrm{T}} \mathbf{A}\right) \mathbf{y}}{\partial \mathbf{x}}=\frac{\partial \mathbf{y}}{\partial \mathbf{x}} \mathbf{A}^{\mathrm{T}} \mathbf{x}+\mathbf{A} \mathbf{y} x(xTA)y=xyATx+Ay

5、导数和梯度以及Hessian矩阵关系

函数 f ( x ) f(x) f(x)的导数 f ′ ( x ) = [ ∂ f ( x ) x 1 , ∂ f ( x ) x 2 , . . . , ∂ f ( x ) x n ] f'(x)=[\frac{\partial f(x)}{x_1},\frac{\partial f(x)}{x_2},...,\frac{\partial f(x)}{x_n}] f(x)=[x1f(x),x2f(x),...,xnf(x)]
而梯度函数 ∇ f ( x ) = ( f ′ ( x ) ) T \nabla f(x)=(f'(x))^T f(x)=(f(x))T.
f ′ ′ ( x ) = F ( x ) = f''(x)=F(x)= f(x)=F(x)= D 2 f = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 2 ∂ x 1 ⋯ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x 1 ∂ x 2 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x n ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x n ⋯ ∂ 2 f ∂ x n 2 ] D^{2} f=\left[\begin{array}{cccc} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{2} \partial x_{1}} & \cdots & \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}} \\ \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^{2} f}{\partial x_{1} \partial x_{n}} & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}} & \cdots & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{array}\right] D2f=x122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn22f$$
参考:
1、https://www.cnblogs.com/pinard/p/10825264.html
2、https://www.jianshu.com/p/4128e5b31fb4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NXU2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值