在机器学习的各种关于向量或者矩阵的求导中,经常会出现各种需要转置或者不需要转置的地方,经常会看得人晕头转向。今天我对机器学习中关于这部分的常识性处理方法进行整理并记录下来方便大家参考。

一些约定

首先,在机器学习中,对于研究经常需要用到的标量、向量、矩阵的求导,我们约定分子使用

表示, 分母使用

表示。其中,分子的标量形式为

,分子的向量形式表示为

,分子的矩阵形式表示为

;类似的,分母的标量形式为

,分母的向量形式表示为

,分母的矩阵形式表示为

根据上面的约定,我们研究一下五个分类(标号1-标号5对应后续标题)。如下:

上面的表格表示我们主要讨论的6个种类,对于矩阵对向量的求导

、向量对矩阵的求导

、矩阵对矩阵的求导

不予考虑。

分子布局、分母布局

在机器学习中,我们默认向量用列向量表示,对于行向量的各种运算相同,只要转置一下就可以了。

对于向量和矩阵的求导,实际上依旧类似于正常的实数求导,只不过对于向量或者矩阵的每一个分量的求导结果,按照向量或者矩阵的形式进行排列罢了。

由此引出两种布局方式,一种叫做分子布局(numerator layout),另一种叫做分母布局(denominator layout)。所谓XX布局,即是指在做求导运算的时候,最终的求导结果的分布和XX部分保持一致,如果需要转置,则对YY部分进行转置。如果分子布局,且分子有m行,则求导结果也是m行;如果分母布局,且分母有n行,则求导结果也是n行。反之,对于分母布局,如果分子有m行,则求导结果将有m列;对于分子布局,如果分母有n行,则结果将包含n列。

是不是有点绕?没事,接着看看实例就明白了……

1.向量对标量求导向量对标量求导 - 分子布局

向量对标量求导,使用分子布局:则在求导过程中,求导结果按列展开,逐个进行求导运算,结果仍然是列向量。

向量对标量求导 - 分母布局

向量对标量求导,使用分母布局:则在求导过程中,求导结果按行展开,逐个进行求导运算,结果呈行向量。

2.标量对向量求导标量对向量求导 - 分子布局

标量对向量求导,使用分子布局:则在求导过程中,求导结果按行展开,逐个进行求导运算,结果呈行向量。

标量对向量求导 - 分母布局

标量对向量求导,使用分母布局:则在求导过程中,求导结果按列展开,逐个进行求导运算,结果保持列向量形式。

3. 矩阵对标量求导矩阵对标量求导 - 分子布局

矩阵对标量求导,使用分子布局:则在求导过程中,对矩阵的每个元素分别进行求导,按照矩阵的排列方式进行组合,组成导数结果矩阵。

例如对于矩阵

, 求导结果仍然是

,具体如下所示:

矩阵对标量求导 - 分母布局

矩阵对标量求导,使用分母布局:则在求导过程中,对矩阵的每个元素分别进行求导,按照矩阵的转置进行组合,组成导数结果矩阵,与原矩阵行列大小翻转。

例如对于矩阵

, 求导结果是

,具体如下所示:

4. 标量对矩阵求导标量对矩阵求导 - 分子布局

标量对矩阵求导,使用分子布局:则在求导的结果中,因为矩阵处于分母位置,结果呈现对原矩阵的翻转形式。

例如对于矩阵

, 求导结果为

,具体如下所示:

标量对矩阵求导 - 分母布局

标量对矩阵求导,使用分母布局:则在求导的结果中,因为矩阵处于分母位置,结果与分母的矩阵大小保持一致。

例如对于矩阵

, 求导结果为

,具体如下所示:

5. 向量对向量求导

前面介绍的四类相对来说比较容易理解,因为分子分母没有同时呈现向量或矩阵形式,其中之一以标量的形式出现,这样就方便理解。接下来的向量与向量之间的运算相对来说困难一丢丢。向量对向量求导 - 分子布局

向量对向量求导,使用分子布局:则分子的向量按列展开,分母的向量按行展开。最终求导运算的结果以矩阵形式出现,如何理解呢?对于分子的向量,如果我们计算其中每个元素(标量)对向量的求导结果,结果将会是一个向量。多个向量进行堆叠,结果呈现形式就会是一个矩阵。但是矩阵首先是按照分子的顺序进行运算呢还是按照分母的顺序进行运算呢?答案是都可以,两种不同的运算形式就是分子布局和分母布局的差别。如下所示:

则分子布局表示结果仍然按照分子的行进行表示,每一行的运算则是对

转置分别求导计算出来的 。具体如下:

其中,每一个元素(标量)对分母上列向量的求导仍然是分子布局(参见[标量对向量求导-分子布局]) 即对其进行翻转,这样,每一行将包含长度为

的行向量。最终结果将是一个

大小的矩阵如下所示:

数学上将这种矩阵称之为雅克比 (Jacobian)矩阵,常用符号

进行表示。向量对向量求导 - 分母布局

相反,向量对向量求导,使用分母布局:则分母列不变,分子按行展开,逐个参与运算,结果呈现

的矩阵。如下所示:

分母布局表示将分子进行逐个按列的求导(分母布局,结果呈现为列向量,参见[标量对向量求导-分母布局]),结果呈现为列向量。然后对分子上向量中的每个元素,横向进行堆叠,共堆叠m列。因此最终结果为一个

的矩阵。

具体如下:

其中,每一个元素(标量)对分母上列向量的求导仍然是分母布局,即仍然是列向量,对分子的列向量进行翻转并横向堆叠,这样,每一行将包含长度为

的行向量。最终结果将是一个

大小的矩阵如下所示:

数学上将这种矩阵称之为梯度矩阵,有些资料会用符号

进行表示。

机器学习中的约定俗成

但是我们在机器学习中,很少见到所谓的“分子布局”和“分母布局”,这是因为在运算中,大多秉承着一些约定俗成的运算规则。如下所示:

- 向量对标量求导,默认使用分子布局

- 矩阵对标量求导,默认使用分子布局

- 标量对向量求导,默认使用分母布局

- 向量对向量求导,常使用分母布局

几个公式

下面几个公式也是经常使用的,其证明下一篇会给出:

向量转置的怎么求导_机器学习中的向量求导和矩阵求导相关推荐

  1. l2范数求导_机器学习中的范数规则化之(一)L0、L1与L2范数 非常好,必看

    机器学习中的范数规则化之(一)L0.L1与L2范数 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题 ...

  2. l2范数求导_机器学习中的范数规则化之(一)L0、L1与L2范数

    source: https://blog.csdn.net/zouxy09/article/details/24971995 zouxy09@qq.com http://blog.csdn.net/z ...

  3. 机器学习线性回归学习心得_机器学习中的线性回归

    机器学习线性回归学习心得 机器学习中的线性回归 (Linear Regression in Machine Learning) There are two types of supervised ma ...

  4. c++矩阵转置_线性代数中的向量矩阵

    目录 前言 符号约定 向量的基本性质 [定义,基向量,线性相关/无关*,向量点积] 矩阵的基本性质 [转置,广播,线性变换] 矩阵基本运算 [矩阵相乘,矩阵点积] 行列式 [概念,性质,右手法则,行列 ...

  5. 【机器学习】线性回归之Normal Equation(矩阵求导与线性代数视角)

    Normal Equation 之前我们用梯度下降来求解线性回归问题的最优参数,除此之外我们还可以用正规方程法(Normal Equation)来求解其最优参数. Normal Equation方法的 ...

  6. svm c++实现_机器学习笔记——SVM向量机

    SVM支持向量机 此教程分为两个部分: 第一个部分旨在使用可视化的方式让同学们理解SVM的工作原理, SVM分割线, SVM的支持向量. 并且使用实例证明SVM的分割线只由支持向量唯一缺点, 与线性回 ...

  7. 欧几里得范数_机器学习中的范数究竟是个什么鬼?

    今天说一个深度学习和机器学习里面经常出现,但是未必人人都能 get 到直观感受的概念:范数,英文名叫 norm. 1.直观感受 本质上来讲,范数是用来衡量一个向量(vector)的规模的,我个人觉得中 ...

  8. 傅里叶描述子欧氏距离_机器学习中的各种距离

    让我们一起 改变智造 hi,大家国庆都玩的怎么样啊? 是不是很诧异我现在才问候国庆的事情? 因为我今天才刚刚上班(呵呵,怎么可能) 加班加到"秃"起~ 即使这样我也要继续伴随大家去 ...

  9. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...

    本系列文章已转至 机器学习的优化器​zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...

最新文章

  1. 费用保险单,如何失焦时自动补零
  2. R语言笔记1:数据类型(向量、数组、矩阵、 列表和数据框)
  3. Oracle 11gR2 安装 example(范例数据库)
  4. java 纯面向对象_Java到底是不是一种纯面向对象语言?
  5. 蓝桥杯练习系统,入门训练,Java版
  6. 嵌入式操作系统内核原理和开发(消息队列)
  7. 33. Implement strStr()
  8. java count rows_Java统计个人编写的Java文件个数及代码行数
  9. 软件行业正面临一场新的变革——SaaS软件
  10. 安装SqlServer2014出现(‘无法启动 Windows Management Instrumentation 服务。若要继续安装,必须找到问题并修复该服务‘)
  11. 局域网通信c语言,C语言编写的仿QQ局域网通讯程序.pdf
  12. 读书笔记 · AI产品经理的工作流程
  13. 计算机怎么接入外接键盘,无线键盘怎么连接电脑 享受无线惬意生活【图文】...
  14. 测试学习--云测试平台
  15. 两部委牵头 4央企联手设健康医疗大数据平台公司
  16. 政务云市场开启“狂飙”:一项前三,两项跃升!
  17. centos8重启网卡命令nmcli
  18. 给网页设计师和前端开发者看的前端性能优化
  19. Python opencv保存视频打不开
  20. 使用定时器完成每日发送多个邮件(发邮件,支持多人发送)

热门文章

  1. hive:常见日期函数
  2. GaN图腾柱无桥 Boost PFC(单相)一
  3. 纯CSS3文字 渐变内发光投影效果
  4. 游戏运维linux,Linux运维知识之Linux的10个游戏
  5. maven报错: previously initiated loading for a different type with name servlet/http/HttpServletReq
  6. 世界这么大 不如把OPPO R11s带回家
  7. QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)
  8. uni-app实战之社区交友APP(6)动态页开发
  9. 关于计算机书籍,你应该知道的五件事
  10. 阿贝尔分部求和法与分部积分