0


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

目录

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

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

一、分子布局与分母布局

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

  1. 标量 \subset 向量 \subset 矩阵
  2. 标量⊂向量⊂矩阵

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

  1. 1
  2. 1
  3. 1 的矩阵),标量可以理解为一种特殊的向量(维度为
  4. 1
  5. 1
  6. 1 的向量),也可以理解为一个
  7. 1
  8. ×
  9. 1
  10. 1\times 1
  11. 1×1 的矩阵,所以今天我们讨论的向量导数和矩阵导数可以统称为 “**矩阵导数**”.

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

在这里插入图片描述

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

  1. f
  2. (
  3. x
  4. )
  5. f'(x)
  6. f′(x) 就是一个很典型的例子), 这里我们不再讨论. 事实上我们还可以讨论矩阵与向量之间的导数,矩阵与矩阵之间的导数,即表格中空着的地方,但因为这些导数的结果涉及到维数大于
  7. 2
  8. 2
  9. 2 的张量(tensor),我们无法再用矩阵的形式去表示,因此也不再讨论.

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

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

假设我们有

  1. x
  2. =
  3. (
  4. x
  5. 1
  6. ,
  7. ,
  8. x
  9. n
  10. )
  11. T
  12. \boldsymbol{x}=(x_1,\cdots,x_n)^{\mathrm T}
  13. x=(x1​,⋯,xn​)T
  14. y
  15. =
  16. (
  17. y
  18. 1
  19. ,
  20. ,
  21. y
  22. m
  23. )
  24. T
  25. \boldsymbol{y}=(y_1,\cdots,y_m)^{\mathrm T}
  26. y=(y1​,⋯,ym​)T 两个向量,则
  27. y
  28. x
  29. \displaystyle \frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}
  30. xy 共有
  31. m
  32. n
  33. mn
  34. mn 个分量:
  35. y
  36. i
  37. x
  38. j
  39. ,
  40. i
  41. =
  42. 1
  43. ,
  44. ,
  45. m
  46. j
  47. =
  48. 1
  49. ,
  50. ,
  51. n
  52. \frac{\partial y_i}{\partial x_j},\quad i=1,\cdots,m\quad j=1,\cdots,n
  53. xj​∂yi​​,i=1,⋯,mj=1,⋯,n

我们该如何去排列这

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

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

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

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

我们先看 ①

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

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

  1. =
  2. T
  3. ,
  4. =
  5. T
  6. 分子布局的结果=分母布局的结果^{\mathrm{T}},\qquad 分母布局的结果=分子布局的结果^{\mathrm{T}}
  7. 分子布局的结果=分母布局的结果T,分母布局的结果=分子布局的结果T

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

更为直观的表示:

在这里插入图片描述

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

二、向量导数

2.1 向量对标量求导

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

在这里插入图片描述

2.2 标量对向量求导

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

在这里插入图片描述

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

  1. a
  2. x
  3. =
  4. 0
  5. T
  6. (2.2.A)
  7. \frac{\partial a }{\partial \boldsymbol x}={\bf 0}^{\mathrm T}\tag{2.2.A}
  8. xa​=0T(2.2.A)
  9. a
  10. T
  11. x
  12. x
  13. =
  14. x
  15. T
  16. a
  17. x
  18. =
  19. a
  20. T
  21. (2.2.B)
  22. \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}
  23. xaTx​=∂xxTa​=aT(2.2.B)
  24. x
  25. T
  26. x
  27. x
  28. =
  29. 2
  30. x
  31. T
  32. (2.2.C)
  33. \frac{\partial \boldsymbol x^{\mathrm T}\boldsymbol x }{\partial \boldsymbol x}=2\boldsymbol x^{\mathrm T} \tag{2.2.C}
  34. xxTx​=2xT(2.2.C)
  35. x
  36. T
  37. A
  38. x
  39. x
  40. =
  41. x
  42. T
  43. (
  44. A
  45. +
  46. A
  47. T
  48. )
  49. (2.2.D)
  50. \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}
  51. xxTAx​=xT(A+AT)(2.2.D)

2.3 向量对向量求导

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

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

  1. a
  2. x
  3. =
  4. O
  5. (2.3.A)
  6. \frac{\partial \boldsymbol a }{\partial \boldsymbol x}={\bf O}\tag{2.3.A}
  7. xa​=O(2.3.A)
  8. x
  9. x
  10. =
  11. I
  12. (2.3.B)
  13. \frac{\partial \boldsymbol x }{\partial \boldsymbol x}={\bf I}\tag{2.3.B}
  14. xx​=I(2.3.B)
  15. A
  16. x
  17. x
  18. =
  19. A
  20. (2.3.C)
  21. \frac{\partial {\bf A}\boldsymbol x }{\partial \boldsymbol x}={\bf A}\tag{2.3.C}
  22. xAx​=A(2.3.C)

三、矩阵导数

3.1 矩阵对标量求导

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

在这里插入图片描述

3.2 标量对矩阵求导

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

在这里插入图片描述

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

  1. a
  2. X
  3. =
  4. O
  5. (3.2.A)
  6. \frac{\partial a }{\partial {\bf X}}={\bf O}\tag{3.2.A}
  7. Xa​=O(3.2.A)
  8. a
  9. T
  10. X
  11. b
  12. X
  13. =
  14. b
  15. a
  16. T
  17. (3.2.B)
  18. \frac{\partial \boldsymbol a^{\mathrm T}{\bf X}\boldsymbol b }{\partial {\bf X}}=\boldsymbol{ba}^{\mathrm T}\tag{3.2.B}
  19. XaTXb​=baT(3.2.B)
  20. a
  21. T
  22. X
  23. T
  24. b
  25. X
  26. =
  27. a
  28. b
  29. T
  30. (3.2.C)
  31. \frac{\partial \boldsymbol a^{\mathrm T}{\bf X}^{\mathrm T}\boldsymbol b }{\partial {\bf X}}=\boldsymbol{ab}^{\mathrm T}\tag{3.2.C}
  32. XaTXTb​=abT(3.2.C)

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

  1. t
  2. r
  3. (
  4. X
  5. )
  6. X
  7. =
  8. I
  9. (3.2.D)
  10. \frac{\partial \mathrm{tr}({\bf X})}{\partial {\bf X}}={\bf I}\tag{3.2.D}
  11. Xtr(X)​=I(3.2.D)
  12. t
  13. r
  14. (
  15. X
  16. k
  17. )
  18. X
  19. =
  20. k
  21. X
  22. k
  23. 1
  24. (3.2.E)
  25. \frac{\partial \mathrm{tr}({\bf X}^{k})}{\partial {\bf X}}=k{\bf X}^{k-1}\tag{3.2.E}
  26. Xtr(Xk)​=kXk1(3.2.E)
  27. t
  28. r
  29. (
  30. A
  31. X
  32. )
  33. X
  34. =
  35. t
  36. r
  37. (
  38. X
  39. A
  40. )
  41. X
  42. =
  43. A
  44. (3.2.F)
  45. \frac{\partial \mathrm{tr}({\bf AX})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf XA})}{\partial {\bf X}}={\bf A}\tag{3.2.F}
  46. Xtr(AX)​=∂Xtr(XA)​=A(3.2.F)
  47. t
  48. r
  49. (
  50. A
  51. X
  52. T
  53. )
  54. X
  55. =
  56. t
  57. r
  58. (
  59. X
  60. T
  61. A
  62. )
  63. X
  64. =
  65. A
  66. T
  67. (3.2.G)
  68. \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}
  69. Xtr(AXT)​=∂Xtr(XTA)​=AT(3.2.G)
  70. t
  71. r
  72. (
  73. X
  74. T
  75. A
  76. X
  77. )
  78. X
  79. =
  80. X
  81. T
  82. (
  83. A
  84. +
  85. A
  86. T
  87. )
  88. (3.2.H)
  89. \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}
  90. Xtr(XTAX)​=XT(A+AT)(3.2.H)
  91. t
  92. r
  93. (
  94. X
  95. 1
  96. A
  97. )
  98. X
  99. =
  100. X
  101. 1
  102. A
  103. X
  104. 1
  105. (3.2.I)
  106. \frac{\partial \mathrm{tr}({\bf X}^{-1}{\bf A})}{\partial {\bf X}}=-{\bf X}^{-1}{\bf AX}^{-1}\tag{3.2.I}
  107. Xtr(X1A)​=−X1AX1(3.2.I)
  108. t
  109. r
  110. (
  111. A
  112. X
  113. B
  114. )
  115. X
  116. =
  117. t
  118. r
  119. (
  120. B
  121. A
  122. X
  123. )
  124. X
  125. =
  126. B
  127. A
  128. (3.2.J)
  129. \frac{\partial \mathrm{tr}({\bf AXB})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf BAX})}{\partial {\bf X}}={\bf BA}\tag{3.2.J}
  130. Xtr(AXB)​=∂Xtr(BAX)​=BA(3.2.J)
  131. t
  132. r
  133. (
  134. A
  135. X
  136. B
  137. X
  138. T
  139. C
  140. )
  141. X
  142. =
  143. B
  144. X
  145. T
  146. C
  147. A
  148. +
  149. B
  150. T
  151. X
  152. T
  153. A
  154. T
  155. C
  156. T
  157. (3.2.K)
  158. \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}
  159. Xtr(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 所有, 如有侵权,请联系我们删除。

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

还没有评论