0


一文详解向量导数与矩阵导数

目录

向量导数与矩阵导数是机器学习的数学基础,认真读完本文,相信你会有不少收获~

     提
    
    
     及
    
    
     向
    
    
     量
    
    
     时
    
    
     ,
    
    
     若
    
    
     无
    
    
     特
    
    
     殊
    
    
     说
    
    
     明
    
    
     ,
    
    
     我
    
    
     们
    
    
     默
    
    
     认
    
    
     为
    
    
     
      列
     
     
      向
     
     
      量
     
    
   
  
  
   \textcolor{red}{提及向量时,若无特殊说明,我们默认为{\bf 列向量}}
  
 
提及向量时,若无特殊说明,我们默认为列向量

一、分子布局与分母布局

我们知道,标量(Scalar)、向量(Vector)和矩阵(Matrix)它们三者满足如下关系:

     标
    
    
     量
    
    
     ⊂
    
    
     向
    
    
     量
    
    
     ⊂
    
    
     矩
    
    
     阵
    
   
   
     标量 \subset 向量 \subset 矩阵 
   
  
 标量⊂向量⊂矩阵

即向量可以理解为一种特殊的矩阵(列数为

    1
   
  
  
   1
  
 
1 的矩阵),标量可以理解为一种特殊的向量(维度为 

 
  
   
    1
   
  
  
   1
  
 
1 的向量),也可以理解为一个 

 
  
   
    1
   
   
    ×
   
   
    1
   
  
  
   1\times 1
  
 
1×1 的矩阵,所以今天我们讨论的向量导数和矩阵导数可以统称为 “**矩阵导数**”.

常见的矩阵导数有以下六种:

在这里插入图片描述

标量对标量求导相信大家再熟悉不过了(

     f
    
    
     ′
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f'(x)
  
 
f′(x) 就是一个很典型的例子), 这里我们不再讨论. 事实上我们还可以讨论矩阵与向量之间的导数,矩阵与矩阵之间的导数,即表格中空着的地方,但因为这些导数的结果涉及到维数大于 

 
  
   
    2
   
  
  
   2
  
 
2 的张量(tensor),我们无法再用矩阵的形式去表示,因此也不再讨论.

接下来我们会把重心放在剩余的五个矩阵导数上,即:

  • 向量对标量求导
  • 标量对向量求导
  • 向量对向量求导
  • 矩阵对标量求导
  • 标量对矩阵求导

假设我们有

    x
   
   
    =
   
   
    (
   
   
    
     x
    
    
     1
    
   
   
    ,
   
   
    ⋯
    
   
    ,
   
   
    
     x
    
    
     n
    
   
   
    
     )
    
    
     T
    
   
  
  
   \boldsymbol{x}=(x_1,\cdots,x_n)^{\mathrm T}
  
 
x=(x1​,⋯,xn​)T 和 

 
  
   
    y
   
   
    =
   
   
    (
   
   
    
     y
    
    
     1
    
   
   
    ,
   
   
    ⋯
    
   
    ,
   
   
    
     y
    
    
     m
    
   
   
    
     )
    
    
     T
    
   
  
  
   \boldsymbol{y}=(y_1,\cdots,y_m)^{\mathrm T}
  
 
y=(y1​,⋯,ym​)T 两个向量,则 

 
  
   
    
     
      
       ∂
      
      
       y
      
     
     
      
       ∂
      
      
       x
      
     
    
   
  
  
   \displaystyle \frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}
  
 
∂x∂y​ 共有 

 
  
   
    m
   
   
    n
   
  
  
   mn
  
 
mn 个分量:

 
  
   
    
     
      
       ∂
      
      
       
        y
       
       
        i
       
      
     
     
      
       ∂
      
      
       
        x
       
       
        j
       
      
     
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     ⋯
     
    
     ,
    
    
     m
    
    
    
     j
    
    
     =
    
    
     1
    
    
     ,
    
    
     ⋯
     
    
     ,
    
    
     n
    
   
   
     \frac{\partial y_i}{\partial x_j},\quad i=1,\cdots,m\quad j=1,\cdots,n 
   
  
 ∂xj​∂yi​​,i=1,⋯,mj=1,⋯,n

我们该如何去排列这

    m
   
   
    n
   
  
  
   mn
  
 
mn 个分量呢?这就要用到我们的**分子布局**(Numerator Layout)和**分母布局**(Denominator Layout)了. 所谓布局,无非就是对上面结果的一种排列,若不对排列方式加以规定,则很有可能导致数学运算过程中出现错误(例如因矩阵维数原因导致不能相乘).

在谈向量导数时,我们有两个很重要的前提:

① 分子和分母都是向量,且其中一个是行向量,另外一个是列向量
② 分子和分母其中一个是标量,另外一个是行/列向量

当 ① 或 ② 满足时,我们接下来的讨论才有意义.

我们先看 ①

  • 若分母是列向量,分子是行向量,则称之为分母布局
  • 若分子是列向量,分母是行向量,则称之为分子布局

用一句话概括就是:谁是列向量就是什么布局.

对于 ②,我们可以依然采用 “谁是列向量就是什么布局” 来判断,但如果分子分母都不是列向量时,该如何判断呢?

这种情形下也是一句话概括:谁是标量就是什么布局.

我们可以将这些讨论汇总在下表中:

在这里插入图片描述

对于矩阵导数,情况就有些不一样了:

在这里插入图片描述

此外,我们还有以下重要等式

     分
    
    
     子
    
    
     布
    
    
     局
    
    
     的
    
    
     结
    
    
     果
    
    
     =
    
    
     分
    
    
     母
    
    
     布
    
    
     局
    
    
     的
    
    
     结
    
    
     
      果
     
     
      T
     
    
    
     ,
    
    
    
     分
    
    
     母
    
    
     布
    
    
     局
    
    
     的
    
    
     结
    
    
     果
    
    
     =
    
    
     分
    
    
     子
    
    
     布
    
    
     局
    
    
     的
    
    
     结
    
    
     
      果
     
     
      T
     
    
   
   
     分子布局的结果=分母布局的结果^{\mathrm{T}},\qquad 分母布局的结果=分子布局的结果^{\mathrm{T}} 
   
  
 分子布局的结果=分母布局的结果T,分母布局的结果=分子布局的结果T

以上所有结果都可以汇总成下面三张图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

更为直观的表示:

在这里插入图片描述

接下来我们的讨论都将基于分子布局.

二、向量导数

2.1 向量对标量求导

向量对标量求导的一些法则:

在这里插入图片描述

2.2 标量对向量求导

标量对向量求导的一些法则:

在这里插入图片描述

标量对向量求导的一些重要结论

          ∂
         
         
          a
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        
         0
        
        
         T
        
       
      
     
     
     
      
       (2.2.A)
      
     
    
   
   
     \frac{\partial a }{\partial \boldsymbol x}={\bf 0}^{\mathrm T}\tag{2.2.A} 
   
  
 ∂x∂a​=0T(2.2.A)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           a
          
          
           T
          
         
         
          x
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        
         
          ∂
         
         
          
           x
          
          
           T
          
         
         
          a
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        
         a
        
        
         T
        
       
      
     
     
     
      
       (2.2.B)
      
     
    
   
   
     \frac{\partial \boldsymbol a^{\mathrm T}\boldsymbol x }{\partial \boldsymbol x}=\frac{\partial \boldsymbol x^{\mathrm T}\boldsymbol a }{\partial \boldsymbol x}=\boldsymbol a^{\mathrm T} \tag{2.2.B} 
   
  
 ∂x∂aTx​=∂x∂xTa​=aT(2.2.B)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           x
          
          
           T
          
         
         
          x
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        2
       
       
        
         x
        
        
         T
        
       
      
     
     
     
      
       (2.2.C)
      
     
    
   
   
     \frac{\partial \boldsymbol x^{\mathrm T}\boldsymbol x }{\partial \boldsymbol x}=2\boldsymbol x^{\mathrm T} \tag{2.2.C} 
   
  
 ∂x∂xTx​=2xT(2.2.C)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           x
          
          
           T
          
         
         
          A
         
         
          x
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        
         x
        
        
         T
        
       
       
        (
       
       
        A
       
       
        +
       
       
        
         A
        
        
         T
        
       
       
        )
       
      
     
     
     
      
       (2.2.D)
      
     
    
   
   
     \frac{\partial \boldsymbol x^{\mathrm T}{\bf A}\boldsymbol x }{\partial \boldsymbol x}=\boldsymbol x^{\mathrm T}({\bf A}+{\bf A}^{\mathrm T}) \tag{2.2.D} 
   
  
 ∂x∂xTAx​=xT(A+AT)(2.2.D)

2.3 向量对向量求导

向量对向量求导的一些法则:

在这里插入图片描述
向量对向量求导的一些重要结论

          ∂
         
         
          a
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        O
       
      
     
     
     
      
       (2.3.A)
      
     
    
   
   
     \frac{\partial \boldsymbol a }{\partial \boldsymbol x}={\bf O}\tag{2.3.A} 
   
  
 ∂x∂a​=O(2.3.A)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          x
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        I
       
      
     
     
     
      
       (2.3.B)
      
     
    
   
   
     \frac{\partial \boldsymbol x }{\partial \boldsymbol x}={\bf I}\tag{2.3.B} 
   
  
 ∂x∂x​=I(2.3.B)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          A
         
         
          x
         
        
        
         
          ∂
         
         
          x
         
        
       
       
        =
       
       
        A
       
      
     
     
     
      
       (2.3.C)
      
     
    
   
   
     \frac{\partial {\bf A}\boldsymbol x }{\partial \boldsymbol x}={\bf A}\tag{2.3.C} 
   
  
 ∂x∂Ax​=A(2.3.C)

三、矩阵导数

3.1 矩阵对标量求导

矩阵对标量求导的一些法则:

在这里插入图片描述

3.2 标量对矩阵求导

标量对矩阵求导的一些法则:

在这里插入图片描述

标量对矩阵求导的一些重要结论

          ∂
         
         
          a
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        O
       
      
     
     
     
      
       (3.2.A)
      
     
    
   
   
     \frac{\partial a }{\partial {\bf X}}={\bf O}\tag{3.2.A} 
   
  
 ∂X∂a​=O(3.2.A)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           a
          
          
           T
          
         
         
          X
         
         
          b
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         
          b
         
         
          a
         
        
        
         T
        
       
      
     
     
     
      
       (3.2.B)
      
     
    
   
   
     \frac{\partial \boldsymbol a^{\mathrm T}{\bf X}\boldsymbol b }{\partial {\bf X}}=\boldsymbol{ba}^{\mathrm T}\tag{3.2.B} 
   
  
 ∂X∂aTXb​=baT(3.2.B)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           a
          
          
           T
          
         
         
          
           X
          
          
           T
          
         
         
          b
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         
          a
         
         
          b
         
        
        
         T
        
       
      
     
     
     
      
       (3.2.C)
      
     
    
   
   
     \frac{\partial \boldsymbol a^{\mathrm T}{\bf X}^{\mathrm T}\boldsymbol b }{\partial {\bf X}}=\boldsymbol{ab}^{\mathrm T}\tag{3.2.C} 
   
  
 ∂X∂aTXTb​=abT(3.2.C)

此外,我们经常会遇到迹对矩阵求导的情形,相关结论如下:

          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          X
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        I
       
      
     
     
     
      
       (3.2.D)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf X})}{\partial {\bf X}}={\bf I}\tag{3.2.D} 
   
  
 ∂X∂tr(X)​=I(3.2.D)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           X
          
          
           k
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        k
       
       
        
         X
        
        
         
          k
         
         
          −
         
         
          1
         
        
       
      
     
     
     
      
       (3.2.E)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf X}^{k})}{\partial {\bf X}}=k{\bf X}^{k-1}\tag{3.2.E} 
   
  
 ∂X∂tr(Xk)​=kXk−1(3.2.E)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           A
          
          
           X
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           X
          
          
           A
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        A
       
      
     
     
     
      
       (3.2.F)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf AX})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf XA})}{\partial {\bf X}}={\bf A}\tag{3.2.F} 
   
  
 ∂X∂tr(AX)​=∂X∂tr(XA)​=A(3.2.F)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           
            A
           
           
            X
           
          
          
           T
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           X
          
          
           T
          
         
         
          A
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         A
        
        
         T
        
       
      
     
     
     
      
       (3.2.G)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf AX}^{\mathrm T})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf X}^{\mathrm T}{\bf A})}{\partial {\bf X}}={\bf A}^{\mathrm T}\tag{3.2.G} 
   
  
 ∂X∂tr(AXT)​=∂X∂tr(XTA)​=AT(3.2.G)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           X
          
          
           T
          
         
         
          
           A
          
          
           X
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         X
        
        
         T
        
       
       
        (
       
       
        A
       
       
        +
       
       
        
         A
        
        
         T
        
       
       
        )
       
      
     
     
     
      
       (3.2.H)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf X}^{\mathrm T}{\bf AX})}{\partial {\bf X}}={\bf X}^{\mathrm T}({\bf A}+{\bf A}^{\mathrm T})\tag{3.2.H} 
   
  
 ∂X∂tr(XTAX)​=XT(A+AT)(3.2.H)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           X
          
          
           
            −
           
           
            1
           
          
         
         
          A
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        −
       
       
        
         X
        
        
         
          −
         
         
          1
         
        
       
       
        
         
          A
         
         
          X
         
        
        
         
          −
         
         
          1
         
        
       
      
     
     
     
      
       (3.2.I)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf X}^{-1}{\bf A})}{\partial {\bf X}}=-{\bf X}^{-1}{\bf AX}^{-1}\tag{3.2.I} 
   
  
 ∂X∂tr(X−1A)​=−X−1AX−1(3.2.I)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           A
          
          
           X
          
          
           B
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           B
          
          
           A
          
          
           X
          
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         B
        
        
         A
        
       
      
     
     
     
      
       (3.2.J)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf AXB})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf BAX})}{\partial {\bf X}}={\bf BA}\tag{3.2.J} 
   
  
 ∂X∂tr(AXB)​=∂X∂tr(BAX)​=BA(3.2.J)

 
  
   
    
     
     
      
       
        
         
          ∂
         
         
          
           t
          
          
           r
          
         
         
          (
         
         
          
           
            A
           
           
            X
           
           
            B
           
           
            X
           
          
          
           T
          
         
         
          C
         
         
          )
         
        
        
         
          ∂
         
         
          X
         
        
       
       
        =
       
       
        
         
          B
         
         
          X
         
        
        
         T
        
       
       
        
         C
        
        
         A
        
       
       
        +
       
       
        
         B
        
        
         T
        
       
       
        
         X
        
        
         T
        
       
       
        
         A
        
        
         T
        
       
       
        
         C
        
        
         T
        
       
      
     
     
     
      
       (3.2.K)
      
     
    
   
   
     \frac{\partial \mathrm{tr}({\bf AXBX}^{\mathrm T}{\bf C})}{\partial {\bf X}}={\bf BX}^{\mathrm T}{\bf CA}+{\bf B}^{\mathrm T}{\bf X}^{\mathrm T}{\bf A}^{\mathrm T}{\bf C}^{\mathrm T} \tag{3.2.K} 
   
  
 ∂X∂tr(AXBXTC)​=BXTCA+BTXTATCT(3.2.K)

参考

[1] https://zhuanlan.zhihu.com/p/263777564
[2] https://www.zhihu.com/question/352174717
[3] https://cloud.tencent.com/developer/article/1551901
[4] https://en.wikipedia.org/wiki/Matrix_calculus
[5] https://www.comp.nus.edu.sg/~cs5240/lecture/matrix-diff.pdf


本文转载自: https://blog.csdn.net/weixin_44022472/article/details/122737908
版权归原作者 serity 所有, 如有侵权,请联系我们删除。

“一文详解向量导数与矩阵导数”的评论:

还没有评论