【机器学习中的矩阵求导】(一)求导布局

举报
野猪佩奇996 发表于 2022/01/23 01:32:27 2022/01/23
【摘要】 学习总结 假设: x x x表示标量; ...

学习总结

假设: x x x表示标量; X X X表示m×n维的矩阵;求导的因变量用 y y y表示标量; Y Y Y表示 p × q p×q p×q维矩阵

自变量/因变量 标量 y y y 列向量 y \mathbf{y} y 矩阵 Y \mathbf{Y} Y
标量 x x x / ∂ y ∂ x \frac{\partial \mathbf{y}}{\partial x} xy
分子布局:m维列向量(默认布局)
分母布局:m维行向量
∂ Y ∂ x \frac{\partial \mathbf{Y}}{\partial x} xY
分子布局:p×q(默认布局)
分母布局:q×p
列向量 x \mathbf{x} x ∂ y ∂ x \frac{\partial {y}}{\partial \mathbf{x}} xy
分子布局:n维行向量(默认布局)
分母布局:n维列向量
∂ y ∂ x \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xy
分子布局:m×n雅克比矩阵(默认布局)
分母布局:n×m梯度矩阵
/
矩阵 X \mathbf{X} X ∂ y ∂ X \frac{\partial y}{\partial \mathbf{X}} Xy
分子布局:n×m矩阵
分母布局:m×n矩阵(默认布局)

一、符号规定

一组标量 y i y_i yi,对一个标量 x x x求导可以表示为:
∂ y i ∂ x \frac{\partial y_{i}}{\partial x} xyi然后将每个求导的值排成一个向量表示。类似的结论也存在于标量对向量的求导,向量对向量的求导,向量对矩阵的求导,矩阵对向量的求导,以及矩阵对矩阵的求导等。

  • x x x表示标量
  • X X X表示m×n维的矩阵
  • 求导的因变量用 y y y表示标量
  • Y Y Y表示 p × q p×q p×q维矩阵

 自变量  \  因变量   标量  y  向量  y  矩阵  Y  标量  x ∂ y ∂ x ∂ y ∂ x ∂ Y ∂ x  向量  x ∂ y ∂ x ∂ y ∂ x ∂ Y ∂ x  矩阵  X ∂ y ∂ X ∂ y ∂ X ∂ Y ∂ X

      x  x  X  yyxyxyX  yyxyxyX  YYxYxYX  自变量   因变量   标量  y  向量  y  矩阵  Y  标量  x y x y x Y x  向量  x y x y x Y x  矩阵  X y X y X Y X
 自变量 \ 因变量  标量 x 向量 x 矩阵 X 标量 yxyxyXy 向量 yxyxyXy 矩阵 YxYxYXY

二、矩阵向量求导布局

分子布局(numerator layout)和分母布局(denominator layout )。

2.1 分子布局:

求导的结果以分子为主,即求导的结果与分子(即 ∂ y i ∂ x \frac{\partial y_{i}}{\partial x} xyi的分子)的维度相同,如果y是一个m维的列向量,则求导的结果也是一个m维的列向量。

2.2 分母布局:

求导的结果以分母为主,如果y是一个m维的列向量,则求导的结果也是一个m维的行向量。所以分子布局和分母布局的结果是转置关系。

2.3 栗子

标量y对矩阵X求导,那么如果按分母布局,则求导结果的维度和矩阵X的维度m×n是一致的。如果是分子布局,则求导结果的维度为n×m。

对于标量对向量或者矩阵求导,向量或者矩阵对标量求导这4种情况,对应的分子布局和分母布局的排列方式已确定。

2.4 向量对向量的求导

这里讨论列向量对列向量的求导,比如m维列向量y对n维列向量x求导。
对于这2个向量求导,那么一共有mn个标量对标量的求导。求导的结果一般是排列为一个矩阵。如果是分子布局,则矩阵的第一个维度以分子为准,即结果是一个m×n的矩阵:
∂ y ∂ x = ( ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ⋯ ∂ y 1 ∂ x n ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ⋯ ∂ y 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ y m ∂ x 1 ∂ y m ∂ x 2 ⋯ ∂ y m ∂ x n ) \frac{\partial \mathbf{y}}{\partial \mathbf{x}}=\left(

y1x1y2x1ymx1y1x2y2x2ymx2y1xny2xnymxn y 1 x 1 y 1 x 2 y 1 x n y 2 x 1 y 2 x 2 y 2 x n y m x 1 y m x 2 y m x n
xy=x1y1x1y2x1ymx2y1x2y2x2ymxny1xny2xnym
∂ y ∂ x T \frac{\partial \mathbf{y}}{\partial \mathbf{x}^{\mathbf{T}}} xTy

如果按照分母布局,求导的结果矩阵第一维度以分母为准,即以n维列向量为准,所以结果矩阵为n×m矩阵:
∂ y ∂ x = ( ∂ y 1 ∂ x 1 ∂ y 2 ∂ x 1 … ∂ y m ∂ x 1 ∂ y 1 ∂ x 2 ∂ y 2 ∂ x 2 … ∂ y m ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ y 1 ∂ x n ∂ y 2 ∂ x n … ∂ y m ∂ x n ) \frac{\partial \mathbf{y}}{\partial \mathbf{x}}=\left(

y1x1y1x2y1xny2x1y2x2y2xnymx1ymx2ymxn y 1 x 1 y 2 x 1 y m x 1 y 1 x 2 y 2 x 2 y m x 2 y 1 x n y 2 x n y m x n
xy=x1y1x2y1xny1x1y2x2y2xny2x1ymx2ymxnym ∂ y T ∂ x \frac{\partial \mathbf{y}^{\mathbf{T}}}{\partial \mathbf{x}} xyT

对于上面5种求导类型,可以各选择一种布局来求导。但是对于某一种求导类型,不能同时使用分子布局和分母布局求导。

在机器学习算法原理的资料推导里,我们并没有看到说正在使用什么布局,也就是说布局被隐含了,这就需要自己去推演,比较麻烦。但是一般来说我们会使用一种叫混合布局的思路,即如果是向量或者矩阵对标量求导,则使用分子布局为准如果是标量对向量或者矩阵求导,则以分母布局为准。对于向量对对向量求导,有些分歧,后面统一以分子布局的雅克比矩阵为主。

Reference

(1)矩阵求导知识点总结:https://www.cnblogs.com/gyhhaha/p/11782212.html
(2)https://www.cnblogs.com/pinard/p/10750718.html

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/121450894

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。