机器学习向量矩阵求导(一)——定义与布局

一、引入

  在高等数学里面,我们已经学过了标量对标量的求导,比如标量y对标量x的求导,可以表示为 ∂ y ∂ x \frac{\partial{y}}{\partial{x}} xy。有些时候,我们会有一组标量yi,i=1,2,…,m来对一个标量x的求导,那么我们会得到一组标量求导的结果:
在这里插入图片描述
  如果我们把这组标量写成向量的形式,即得到维度为m的一个向量y对一个标量x的求导,那么结果也是一个m维的向量: ∂ y ∂ x \frac{\partial{y}}{\partial{x}} xy
  可见,所谓向量对标量的求导,其实就是向量里的每个分量分别对标量求导,最后把求导的结果排列在一起,按一个向量表示而已。类似的结论也存在于标量对向量的求导,向量对向量的求导,向量对矩阵的求导,矩阵对向量的求导,以及矩阵对矩阵的求导等。
  总而言之,所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,方便表达与计算,更加简洁而已。
  为了便于描述,后面如果没有指明,则求导的自变量用 x x x表示标量, x \bold{x} x表示n维向量, X \bold{X} X表示 m × n m×n m×n维度的矩阵,求导的因变量用 y y y表示标量, y \bold{y} y表示 m m m维向量, Y \bold{Y} Y表示 p × q p×q p×q维度的矩阵。

二、矩阵向量求导定义

  根据求导的自变量和因变量是标量,向量还是矩阵,我们有9种可能的矩阵求导定义,如下:

自变量\因变量标量 y y y向量 y \bold{y} y矩阵 Y \bold{Y} Y
标量 x x x ∂ y ∂ x \frac{\partial{y}}{\partial{x}} xy ∂ y ∂ x \frac{\partial{\bold{y}}}{\partial{x}} xy ∂ Y ∂ x \frac{\partial{\bold{Y}}}{\partial{x}} xY
向量 x \bold{x} x ∂ y ∂ x \frac{\partial{y}}{\partial{\bold{x}}} xy ∂ y ∂ x \frac{\partial{\bold{y}}}{\partial{\bold{x}}} xy ∂ y ∂ x \frac{\partial{\bold{y}}}{\partial{\bold{x}}} xy
矩阵 X \bold{X} X ∂ y ∂ X \frac{\partial{y}}{\partial{\bold{X}}} Xy ∂ y ∂ X \frac{\partial{\bold{y}}}{\partial{\bold{X}}} Xy ∂ Y ∂ X \frac{\partial{\bold{Y}}}{\partial{\bold{X}}} XY

  这里有一个问题没有讲到,就是求导结果排列成的向量到底应该是列向量还是行向量?
  这个问题的答案是:行向量或者列向量皆可。毕竟我们求导的本质只是把标量求导的结果排列起来,至于是按行排列还是按列排列都是可以的。但是这样也有问题,在我们机器学习算法法优化过程中,如果行向量或者列向量随便写,那么结果就不唯一了。
  为了解决这个问题,我们引入求导布局的概念。

三、矩阵向量求导布局

  为了解决矩阵向量求导的结果不唯一,我们引入求导布局。最基本的求导布局有两个:分子布局(numerator layout)和分母布局(denominator layout)
  对于分子布局来说,我们求导结果的维度以分子为主,比如对于我们上面对标量求导的例子,结果的维度和分子的维度是一致的。也就是说,如果向量y是一个m维的列向量,那么求导结果∂y∂x也是一个m维列向量。如果如果向量y是一个m维的行向量,那么求导结果 ∂ y ∂ x \frac{\partial{y}}{\partial{x}} xy也是一个m维行向量。
  对于分母布局来说,我们求导结果的维度以分母为主,比如对于我们上面对标量求导的例如,如果向量y是一个m维的列向量,那么求导结果 ∂ y ∂ x \frac{\partial{y}}{\partial{x}} xy是一个m维行向量。如果如果向量y是一个m维的行向量,那么求导结果 ∂ y ∂ x \frac{\partial{y}}{\partial{x}} xy是一个m维的列向量向量。
  可见,对于分子布局和分母布局的结果来说,两者相差一个转置。
  再举一个例子,标量y对矩阵X求导,那么如果按分母布局,则求导结果的维度和矩阵X的维度m×n是一致的。如果是分子布局,则求导结果的维度为n×m。
  这样,对于标量对向量或者矩阵求导,向量或者矩阵对标量求导这4种情况,对应的分子布局和分母布局的排列方式已经确定了。
  稍微麻烦点的是向量对向量的求导,本文只讨论列向量对列向量的求导,其他的行向量求导只是差一个转置而已。比如m维列向量y对n维列向量x求导。它的求导结果在分子布局和分母布局各是什么呢?对于这2个向量求导,那么一共有mn个标量对标量的求导。求导的结果一般是排列为一个矩阵。如果是分子布局,则矩阵的第一个维度以分子为准,即结果是一个m×n的矩阵,如下:
在这里插入图片描述
  上面这个按分子布局的向量对向量求导的结果矩阵,我们一般叫做雅克比 (Jacobian)矩阵。有的资料上会使用 ∂ y ∂ x T \frac{\partial{y}}{\partial{x^{T}}} xTy来定义雅克比矩阵,意义是一样的。
如果是按分母布局,则求导的结果矩阵的第一维度会以分母为准,即结果是一个n×m的矩阵,如下:
在这里插入图片描述
  上面这个按分母布局的向量对向量求导的结果矩阵,我们一般叫做梯度矩阵
有了布局的概念,我们对于上面5种求导类型,可以各选择一种布局来求导。但是对于某一种求导类型,不能同时使用分子布局和分母布局求导。
  但是在机器学习算法原理的资料推导里,我们并没有看到说正在使用什么布局,也就是说布局被隐含了,这就需要自己去推演,比较麻烦。但是一般来说我们会使用一种叫混合布局的思路,即如果是向量或者矩阵对标量求导,则使用分子布局为准,如果是标量对向量或者矩阵求导,则以分母布局为准。对于向量对对向量求导,有些分歧,我的所有文章中会以分子布局的雅克比矩阵为主。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值