专栏首页机器学习算法原理与实践机器学习中的矩阵向量求导(一) 求导定义与求导布局

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

    在之前写的上百篇机器学习博客中,不时会使用矩阵向量求导的方法来简化公式推演,但是并没有系统性的进行过讲解,因此让很多朋友迷惑矩阵向量求导的具体过程为什么会是这样的。这里准备用三篇来讨论下机器学习中的矩阵向量求导,今天是第一篇。

    本系列主要参考文献为维基百科的Matrix Caculas和张贤达的《矩阵分析与应用》。

1. 矩阵向量求导引入

    在高等数学里面,我们已经学过了标量对标量的求导,比如标量$y$对标量$x$的求导,可以表示为$\frac{\partial y}{\partial x}$。

    有些时候,我们会有一组标量$y_i,i=1,2,...,m$来对一个标量$x$的求导,那么我们会得到一组标量求导的结果:$$\frac{\partial y_i}{\partial x}, i=1,2.,,,m$$

    如果我们把这组标量写成向量的形式,即得到维度为m的一个向量$\mathbf{y}$对一个标量$x$的求导,那么结果也是一个m维的向量:$\frac{\partial \mathbf{y}}{\partial x}$

    可见,所谓向量对标量的求导,其实就是向量里的每个分量分别对标量求导,最后把求导的结果排列在一起,按一个向量表示而已。类似的结论也存在于标量对向量的求导,向量对向量的求导,向量对矩阵的求导,矩阵对向量的求导,以及矩阵对矩阵的求导等。

    总而言之,所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,方便表达与计算,更加简洁而已。

    为了便于描述,后面如果没有指明,则求导的自变量用$x$表示标量,$\mathbf{x}$表示n维向量,$\mathbf{X}$表示$p \times q$维度的矩阵,求导的因变量用$y$表示标量,$\mathbf{y}$表示m维向量,$\mathbf{Y}$表示$m \times n$维度的矩阵。

2. 矩阵向量求导定义

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

自变量\因变量

标量$y$

向量$\mathbf{y}$

矩阵$\mathbf{Y}$

标量$x$

$\frac{\partial y}{\partial x}$

$\frac{\partial  \mathbf{y}}{\partial x}$

$\frac{\partial  \mathbf{Y}}{\partial x}$

向量$\mathbf{x}$

$\frac{\partial y}{\partial \mathbf{x}}$

$\frac{\partial  \mathbf{y}}{\partial \mathbf{x}}$

$\frac{\partial  \mathbf{Y}}{\partial \mathbf{x}}$

矩阵$\mathbf{X}$

$\frac{\partial y}{\partial \mathbf{X}}$

$\frac{\partial  \mathbf{y}}{\partial \mathbf{X}}$

$\frac{\partial  \mathbf{Y}}{\partial \mathbf{X}}$

    这9种里面,标量对标量的求导高数里面就有,不需要我们单独讨论,在剩下的8种情况里面,我们先讨论上图中标量对向量或矩阵求导,向量或矩阵对标量求导,以及向量对向量求导这5种情况。另外三种向量对矩阵的求导,矩阵对向量的求导,以及矩阵对矩阵的求导我们在第三篇再讲。

    现在我们回看第一节讲到的例子,维度为m的一个向量$\mathbf{y}$对一个标量$x$的求导,那么结果也是一个m维的向量:$\frac{\partial \mathbf{y}}{\partial x}$。这是我们表格里面向量对标量求导的情况。这里有一个问题没有讲到,就是这个m维的求导结果排列成的m维向量到底应该是列向量还是行向量?

    这个问题的答案是:行向量或者列向量皆可!毕竟我们求导的本质只是把标量求导的结果排列起来,至于是按行排列还是按列排列都是可以的。但是这样也有问题,在我们机器学习算法法优化过程中,如果行向量或者列向量随便写,那么结果就不唯一,乱套了。

    为了解决这个问题,我们引入求导布局的概念。

3. 矩阵向量求导布局

    为了解决矩阵向量求导的结果不唯一,我们引入求导布局。最基本的求导布局有两个:分子布局(numerator layout)和分母布局(denominator layout )。

    对于分子布局来说,我们求导结果的维度以分子为主,比如对于我们上面对标量求导的例子,结果的维度和分子的维度是一致的。也就是说,如果向量$\mathbf{y}$是一个m维的列向量,那么求导结果$\frac{\partial \mathbf{y}}{\partial x}$也是一个m维列向量。如果如果向量$\mathbf{y}$是一个m维的行向量,那么求导结果$\frac{\partial \mathbf{y}}{\partial x}$也是一个m维行向量。

    对于分母布局来说,我们求导结果的维度以分母为主,比如对于我们上面对标量求导的例子,如果向量$\mathbf{y}$是一个m维的列向量,那么求导结果$\frac{\partial \mathbf{y}}{\partial x}$是一个m维行向量。如果如果向量$\mathbf{y}$是一个m维的行向量,那么求导结果$\frac{\partial \mathbf{y}}{\partial x}$是一个m维的列向量向量。

    可见,对于分子布局和分母布局的结果来说,两者相差一个转置。

    再举一个例子,标量$y$对矩阵$ \mathbf{X}$求导,那么如果按分母布局,则求导结果的维度和矩阵$X$的维度$m \times n$是一致的。如果是分子布局,则求导结果的维度为$n \times m$。

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

    稍微麻烦点的是向量对向量的求导,本文只讨论列向量对列向量的求导,其他的行向量求导只是差一个转置而已。比如m维列向量$\mathbf{y}$对n维列向量$\mathbf{x}$求导。它的求导结果在分子布局和分母布局各是什么呢?对于这2个向量求导,那么一共有$mn$个标量对标量的求导。求导的结果一般是排列为一个矩阵。如果是分子布局,则矩阵的第一个维度以分子为准,即结果是一个$m \times n$的矩阵,如下:$$ \frac{\partial  \mathbf{y}}{\partial \mathbf{x}} = \left( \begin{array}{ccc} \frac{\partial y_1}{\partial x_1}& \frac{\partial y_1}{\partial x_2}& \ldots & \frac{\partial y_1}{\partial x_n}\\  \frac{\partial y_2}{\partial x_1}& \frac{\partial y_2}{\partial x_2} & \ldots & \frac{\partial y_2}{\partial x_n}\\   \vdots&  \vdots &  \ddots & \vdots \\ \frac{\partial y_m}{\partial x_1}& \frac{\partial y_m}{\partial x_2} & \ldots & \frac{\partial y_m}{\partial x_n}  \end{array} \right)$$

    上边这个按分子布局的向量对向量求导的结果矩阵,我们一般叫做雅克比 (Jacobian)矩阵。

    如果是按分母布局,则求导的结果矩阵的第一维度会以分母为准,即结果是一个$n \times m$的矩阵,如下:$$ \frac{\partial  \mathbf{y}}{\partial \mathbf{x}} = \left( \begin{array}{ccc} \frac{\partial y_1}{\partial x_1}& \frac{\partial y_2}{\partial x_1}& \ldots & \frac{\partial y_m}{\partial x_1}\\  \frac{\partial y_1}{\partial x_2}& \frac{\partial y_2}{\partial x_2} & \ldots & \frac{\partial y_m}{\partial x_2}\\   \vdots&  \vdots &  \ddots & \vdots \\ \frac{\partial y_1}{\partial x_n}& \frac{\partial y_2}{\partial x_n} & \ldots & \frac{\partial y_m}{\partial x_n}  \end{array} \right)$$

    上边这个按分母布局的向量对向量求导的结果矩阵,我们一般叫做梯度矩阵。

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

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

    具体总结如下:

自变量\因变量

标量$y$

列向量$\mathbf{y}$

矩阵$\mathbf{Y}$

标量$x$

/

$\frac{\partial  \mathbf{y}}{\partial x}$ 分子布局:m维列向量(默认布局) 分母布局:m维行向量

$\frac{\partial  \mathbf{Y}}{\partial x}$ 分子布局:$p \times q$矩阵(默认布局) 分母布局:$q \times p$矩阵

列向量$\mathbf{x}$

$\frac{\partial y}{\partial \mathbf{x}}$ 分子布局:n维行向量 分母布局:n维列向量(默认布局)

$\frac{\partial  \mathbf{y}}{\partial \mathbf{x}}$ 分子布局:$m \times n$雅克比矩阵(默认布局) 分母布局:$n \times m$梯度矩阵

/

矩阵$\mathbf{X}$

$\frac{\partial y}{\partial \mathbf{X}}$ 分子布局:$n \times m$矩阵 分母布局:$m \times n$矩阵(默认布局)

/

/

4. 矩阵向量求导基础总结

    有了矩阵向量求导的定义和默认布局,我们后续就可以对上表中的5种矩阵向量求导过程进行一些常见的求导推导总结求导方法,并讨论向量求导的链式法则。

(欢迎转载,转载请注明出处。欢迎沟通交流: liujianping-ok@163.com) 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法

        在机器学习中的矩阵向量求导(一) 求导定义与求导布局中,我们讨论了向量矩阵求导的9种定义与求导布局的概念。今天我们就讨论下其中的标量对向量求导,标量对矩...

    刘建平Pinard
  • 机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导

        在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导。本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,...

    刘建平Pinard
  • 机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法

        在机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法中,我们讨论了定义法求解矩阵向量求导的方法,但是这个方法对于比较复杂的求导式子,中间运算会很复杂,...

    刘建平Pinard
  • 【机器学习 基本概念】矩阵、向量求导法则

    复杂矩阵问题求导方法:可以从小到大,从scalar到vector再到matrix。

    魏晓蕾
  • 机器之心最干的文章:机器学习中的矩阵、向量求导

    机器之心
  • 机器学习与深度学习习题集答案-1

    本文是机器学习和深度学习习题集的答案-1,免费提供给大家,也是《机器学习-原理、算法与应用》一书的配套产品。此习题集可用于高校的机器学习与深度学习教学,以及在职...

    SIGAI学习与实践平台
  • 学好机器学习需要哪些数学知识?

    “ 随机过程,实分析。机器学习往深里做肯定需要用这种,高级的数学语言去对问题进行描述。我本人对随机和实分析,其实目前也还只是略懂,很难说,真正的彻底掌握这两门十...

    SIGAI学习与实践平台
  • 《机器学习》-- 第三章 线性回归

    线性模型形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想,许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层...

    fireWang
  • 机器学习的数学基础

    我们知道,机器学习的特点就是:以计算机为工具和平台,以数据为研究对象,以学习方法为中心;是概率论、线性代数、数值计算、信息论、最优化理论和计算机科学等多个领域的...

    统计学家
  • 机器学习中导数最优化方法(基础篇)

    1. 前言 熟悉机器学习的童鞋都知道,优化方法是其中一个非常重要的话题,最常见的情形就是利用目标函数的导数通过多次迭代来求解无约束最优化问题。实现简单,codi...

    IT派
  • 机器学习深度学习 笔试面试题目整理(3)

    (2)逻辑回归的基本概念    这个最好从广义线性模型的角度分析,逻辑回归是假设y服从Bernoulli分布。

  • 《统计学习方法》 ( 李航 ) 读书笔记

    因为要准备面试,本文以李航的《统计学习方法》为主,结合西瓜书等其他资料对机器学习知识做一个整理。

    石晓文
  • 怎样成为一名优秀的算法工程师

    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。

    SIGAI学习与实践平台
  • 机器学习与深度学习中的数学知识点汇总

    本文列出的数学知识点已经写成了《机器学习的数学教程》,以后有机会的话可能会出版,以帮助大家学习。

    小白学视觉
  • 机器学习与深度学习习题集答案-2

    本文是机器学习和深度学习习题集答案的第2部分,也是《机器学习-原理、算法与应用》一书的配套产品。此习题集可用于高校的机器学习与深度学习教学,以及在职人员面试准备...

    SIGAI学习与实践平台
  • 【机器学习】CS229课程笔记notes1翻译-Part I线性回归

          让我们开始谈论一些监督学习的例子。假定我们有一个数据集,给出俄勒冈州波特兰地区47套房屋的居住面积和价格:

    魏晓蕾
  • 理解凸优化

    凸优化(convex optimization)是最优化问题中非常重要的一类,也是被研究的很透彻的一类。对于机器学习来说,如果要优化的问题被证明是凸优化问题,则...

    SIGAI学习与实践平台
  • 一文看完《统计学习方法》所有知识点

    红色的是牛顿法的迭代路径,绿色的是梯度下降法的迭代路径.牛顿法起始点不能离极小点太远,否则很可能不会拟合.

    统计学家
  • 【数学应用】机器学习常用最优化算法小结

    本文主要是从通俗直观的角度对机器学习中的无约束优化算法进行对比归纳,详细的公式和算法过程可以看最后附的几个链接,都是干货。 机器学习基本概念 统计机器学...

    陆勤_数据人网

扫码关注云+社区

领取腾讯云代金券