-
2020-12-21 17:54:24
1. 矩阵Y对标量x求导:
相当于每个元素求导数后转置一下,注意M×N矩阵求导后变成N×M了
Y = [y(ij)]
--> dY/dx = [dy(ji)/dx]
2. 标量y对列向量X求导:
注意与上面不同,这次括号内是求偏导,不转置,对N×1向量求导后还是N×1向量
y = f(x1,x2,..,xn)
--> dy/dX = (Dy/Dx1,Dy/Dx2,..,Dy/Dxn)'
3. 行向量Y'对列向量X求导:
注意1×M向量对N×1向量求导后是N×M矩阵。
将Y的每一列对X求偏导,将各列构成一个矩阵。
重要结论:
dX'/dX = I
d(AX)'/dX = A'
4. 列向量Y对行向量X’求导:
转化为行向量Y’对列向量X的导数,然后转置。
注意M×1向量对1×N向量求导结果为M×N矩阵。
dY/dX' = (dY'/dX)'
5. 向量积对列向量X求导运算法则:
注意与标量求导有点不同。
d(UV')/dX = (dU/dX)V' +
U(dV'/dX)
d(U'V)/dX = (dU'/dX)V +
(dV'/dX)U'
重要结论:
d(X'A)/dX = (dX'/dX)A +
(dA/dX)X' = IA + 0X' = A
d(AX)/dX' = (d(X'A')/dX)' =
(A')' = A
d(X'AX)/dX = (dX'/dX)AX +
(d(AX)'/dX)X = AX + A'X
6. 矩阵Y对列向量X求导:
将Y对X的每一个分量求偏导,构成一个超向量。
注意该向量的每一个元素都是一个矩阵。
7. 矩阵积对列向量求导法则:
d(uV)/dX = (du/dX)V +
u(dV/dX)
d(UV)/dX = (dU/dX)V +
U(dV/dX)
重要结论:
d(X'A)/dX = (dX'/dX)A +
X'(dA/dX) = IA + X'0 = A
8. 标量y对矩阵X的导数:
类似标量y对列向量X的导数,
把y对每个X的元素求偏导,不用转置。
dy/dX = [ Dy/Dx(ij) ]
重要结论:
y = U'XV = ΣΣu(i)x(ij)v(j)
于是 dy/dX = = UV'
y = U'X'XU 则 dy/dX =
2XUU'
y = (XU-V)'(XU-V) 则 dy/dX =
d(U'X'XU - 2V'XU + V'V)/dX = 2XUU' - 2VU' + 0 = 2(XU-V)U'
9. 矩阵Y对矩阵X的导数:
将Y的每个元素对X求导,然后排在一起形成超级矩阵。
更多相关内容 -
向量转置怎么求导(多元线性回归原理推导用)
2018-05-28 16:22:49转自:http://www.mathchina.net/dvbbs/dispbbs.asp?boardid=4&Id=1732展开全文 -
机器学习中的向量求导和矩阵求导
2020-12-30 20:24:39在机器学习的各种关于向量或者矩阵的求导中,经常会出现各种需要转置或者不需要转置的地方,经常会看得人晕头转向。今天我对机器学习中关于这部分的常识性处理方法进行整理并记录下来方便大家参考。一些约定首先,在...在机器学习的各种关于向量或者矩阵的求导中,经常会出现各种需要转置或者不需要转置的地方,经常会看得人晕头转向。今天我对机器学习中关于这部分的常识性处理方法进行整理并记录下来方便大家参考。
一些约定
首先,在机器学习中,对于研究经常需要用到的标量、向量、矩阵的求导,我们约定分子使用
表示, 分母使用
表示。其中,分子的标量形式为
,分子的向量形式表示为
,分子的矩阵形式表示为
;类似的,分母的标量形式为
,分母的向量形式表示为
,分母的矩阵形式表示为
。
根据上面的约定,我们研究一下五个分类(标号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列。因此最终结果为一个
的矩阵。
具体如下:
其中,每一个元素(标量)对分母上列向量的求导仍然是分母布局,即仍然是列向量,对分子的列向量进行翻转并横向堆叠,这样,每一行将包含长度为
的行向量。最终结果将是一个
大小的矩阵如下所示:
数学上将这种矩阵称之为梯度矩阵,有些资料会用符号
进行表示。
机器学习中的约定俗成
但是我们在机器学习中,很少见到所谓的“分子布局”和“分母布局”,这是因为在运算中,大多秉承着一些约定俗成的运算规则。如下所示:
- 向量对标量求导,默认使用分子布局
- 矩阵对标量求导,默认使用分子布局
- 标量对向量求导,默认使用分母布局
- 向量对向量求导,常使用分母布局
几个公式
下面几个公式也是经常使用的,其证明下一篇会给出:
-
向量函数的求导问题?
2021-01-30 18:23:20首先矩阵求导(向量是其中一个特例而已)的东西很多都会有让人产生错觉的,如果要想要好好深入研究就要从矩阵代数(matrix alegbra)下手, 比如不过作为应用来讲的话,其实你需要只是一个cookbook,比如说说个人的想法1...首先矩阵求导(向量是其中一个特例而已)的东西很多都会有让人产生错觉的,如果要想要好好深入研究就要从矩阵代数(matrix alegbra)下手, 比如
不过作为应用来讲的话,其实你需要只是一个cookbook,比如
说说个人的想法
1。矩阵求导比较麻烦,所以尽量不要使用最基本的公式,要找公式就找具体的,形式完全一致的公式,直接带入(比如cookbook中就有各种具体形式的求导公式),除非你熟悉从头开始的各种的推倒原理以及各种符号意义。
2。d(UV) = d(U)V + Ud(V),这种公式不是没有用,只是相对来讲在矩阵代数中,更重要的是看清对谁求导,所以
或者
这一类的公式更实用,而且不容易带入出错,若是要用d(UV) = d(U)V + Ud(V)的也必须要带着dx啊。另外,这里之所以说要明确分母部分的内容,不光是为了确定这个变量是x,而不是y,更重要的是明确求导的变量的类型,因为各种情况差别巨大对标量求导
1)向量对标量求导,结果是个向量
事实上就是向量的每一个元素对标量求导。举个例子,对于
,其中
是个标量,
.
2)矩阵对标量求导,结果是个矩阵
事实上也就是矩阵的每一个元素对标量求导。对于矩阵
,
对向量求导
1) 标量对向量求导,结果是向量
事实上这就是所谓的Gradient,即对于一般标量函数
,其中
,
,有时候也记为为
.
2) 向量对向量求导,结果是矩阵
这个当然也是gradient,当然这准确的说应该叫matrix gradient. 即对于向量值函数
,其中
,
另外在实际运算中还会出现
,这个也被叫做是f的Jacobian.
3) 矩阵对向量求导,结果是个三维的object,先来个gradient,然后其中每个元素都是个matrix.
对矩阵求导
1) 标量对矩阵求导,结果还是矩阵。
事实上这一类,主要是考虑一类标量函数对矩阵的导数,一般是det,trace,log(det)等等
回到题主的问题哈,其实已经有不少人有了解答,这里就不重复了。这里就举个广为使用的例子,就是linear least square的多维情况,所考虑的最优化问题的对应函数
,事实上其实也就是题主那个式子,只不过变量看的不一样,其中y是n*1的向量,X是n*m的矩阵,b是m*1的参数向量, 则
这里需要用到的是上面说的cookbook中的公式:
这里观察这个size,我们可以发现最后求导的结果是(m*n) *(n*1) + (m*n)*(n*m)*(m*1)还是 m*1的哦!但是倘若对此再求一次导数,则相当于一个向量对向量求导数,即结果是一个矩阵,
观察size,(m*n)*(n*m) = m*m,即这是一个矩阵。
-
矩阵和矩阵转置求导公式
2019-01-15 10:39:38向量求导 1.向量求标量的导 Y = ⎡⎣⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥[y1y2⋮ym]\left[ \begin{matrix} y_1 \\ y_2 \\ \vdots\\ y_m \\ \end{matrix} \right] ,x是标量 那么: ∂Y∂x=⎡⎣⎢⎢⎢⎢⎢∂... -
机器学习中,矩阵转置的求导运算
2019-09-04 22:31:342.标量y 对 列向量 x 求导 结果 依旧列向量 大小即为 x 大小 3.行向量y.T 对 列向量 x 的求导 将 y 的每一列(看成标量yi)对 列向量x 求导,最后得到一个 矩阵 4.列向量y 对行向量 x.T 求导 转化为3,得到的最后结果... -
各种矩阵(向量)求导
2020-04-15 10:31:38今天早上遇到@tornadomeet在deep learning高质量群里问:一个列向量对一个列向量求导的结果,也就是下面的第一个公式:Y = A * X --> DY/DX = A’。我这才意识到矩阵里的很多知道又忘了,这些东西一旦不用,忘了... -
向量求导方法与技巧
2020-07-29 19:11:26ps:向量是矩阵的特殊形式,当强调行(列)矩阵时,将其写作为向量。 求解规律如下: 标量/矩阵形式的求导: 将分母中的所有元素对标量依次求导,排列顺序与分母排列顺序一致。 矩阵/矩阵形式的求导: 将分子中的元素... -
矩阵向量求导-定义法,矩阵微分+迹函数,矩阵向量链式求导法则
2020-05-21 11:48:16文章目录矩阵向量求导说明1说明21.定义法1. 用定义法求解标量对向量求导举个例子2.用定义法求解标量对矩阵求导举个例子3.用定义法求解向量对向量的求导举个例子小结2. 微分法1.矩阵微分1.单变量2.多变量3.矩阵微分迹... -
向量求导(转)
2017-02-10 00:09:02向量求导 (2012-04-23 22:40:37) 转载▼ ...向量 ...求导 ...1. 矩阵Y对标量x求导: ... 相当于每个元素求导数后转置一下,注意M×N矩阵求导后变成N×M了 Y = [y(ij)] --> dY/dx = [dy(ji)/dx] -
矩阵向量求导
2021-01-31 00:00:00矩阵向量的求导在深度学习中要用到。有必要对矩阵向量求导做一个介绍。在微积分里面,我们学过标量y对标量x的求导:我们做一个延申,如果y是一个向量:里面每个yi都对同一个x求导,那么我们称为... -
矩阵求导与转置运算
2018-10-20 16:02:31线性代数补充矩阵转置矩阵求导 前言:在推导算法过程中遇到一些数学运算,遇到了就记录下,方便回忆 矩阵转置 (A+B)T=AT+BT(AB)T=BTAT (A+B)^T = A^T+B^T \\ (AB)^T = B^TA^T (A+B)T=AT+BT(AB)T=BTAT 矩阵求导 ∂Ax... -
机器学习:矩阵、向量求导理解
2020-03-04 17:58:08讲解机器学习中常用到的矩阵和向量求解公式,虽然代码都有封装好的计算库,但还是需要知道本身计算过程。 -
矩阵、向量求导的一些技巧
2020-12-21 17:54:22声明:由于敲公式比较慢,主要归纳一些技巧,用于加深对矩阵、向量求导的技巧;矩阵/向量求导,本质上是多元函数求导;推导过程中万能的验证方法:即对矩阵/向量的每个分量逐元素求导,再合成矩阵/向量;但往往比较... -
标量/向量/矩阵求导方法
2022-01-08 14:10:41这篇博客源于在看论文时遇到了一个误差向量欧氏距离的求导,如下: 在看了一堆资料后得出以下结论: 这个结论是怎么来的呢?这就涉及标量/向量/矩阵的求导了。由于标量、向量都可以看做特殊的矩阵,因此就... -
数学基础:向量求导整理
2020-04-20 22:36:021标量对向量求导 标量(分子)分别对行/列向量(分母)各元素求导,结果仍为行/列向量(维度与分母一致)。 定义行向量:yT=(y1,y2,y3){{y}^{T}}=({{y}_{1}},{{y}_{2}},{{y}_{3}})yT=(y1,y2,y3) ;列向量:x=... -
矩阵理论(三)向量矩阵的求导
2019-09-29 14:33:41在各类机器学习和深度学习算法的推导过程中,尤其是通过损失函数求解参数最优解过程中,经常用到向量矩阵的求导。从本质上讲,向量矩阵求导就是将多元标量函数求导按照一定的布局排列为向量或矩阵。 按照求导中自... -
向量求导公式
2016-12-15 16:00:01最近在看吴恩达的视频啊、LDA啊、PCA啊,觉得很有必要将向量求导公式复习一下,要不感觉算的时候怪怪的~ -
数学:关于对向量、矩阵求导常见公式
2020-04-13 22:51:25对向量、矩阵求导,和对标量求导还是有点区别,特别是转置和不转置,在网上参考了其他资料整理一下。 介绍: 在矩阵求导中,分为两种布局:分别是分子布局(Numerator Layout)和分母布局(Denominator Layout)。 ... -
矩阵、向量的求导
2017-02-07 21:01:48在网上看到有人贴了如下求导公式: Y = A * X --> DY/DX = A' Y = X * A --> DY/DX = A Y = A' * X * B --> DY/DX = A * B' Y = A' * X' * B --> DY/DX = B * A' 于是把以前学过的矩阵求导部分整理... -
向量对向量求导,麻烦看一下,我是哪一步错了?
2018-07-30 23:04:52这是我在一份文档看到的一个数学结论,由于大学不是数学系,没怎么接触过向量对向量求导方面的知识,还请各位大大不吝赐教。如下图一,其中,X是一个矩阵,是一个列向量。 ... -
矩阵向量求导术
2018-12-26 20:13:00最基础最重要的,标量对向量求导和向量对标量求导,有两种方式,分子布局和分母布局,不同的方式都是对的,只是结果缺一个转置 1、矩阵乘以列向量,对列向量求导,形如 $\boldsymbol{z} = \boldsymbol{Wx},$, 求$... -
矩阵论:向量求导/微分和矩阵微分
2017-04-03 16:51:05著名的matrix cookbook为广大的研究者们提供了一本大字典,里面有着各种简单到复杂矩阵和向量的求导法则。 布局(Layout) 矩阵求导有两种布局,分子布局(numerator layout)和分母布局(denominator layout)。 ... -
矩阵向量求导(Matrix calculus)
2017-12-23 11:54:18注意到我们也可以讨论向量对矩阵求导,或者是上表中的任何没有填写的部分。然而这些求导的结果的维度太高,所以不能被写成2维矩阵形式。在接下来的三个章节中我们将定义每一种求导形式和与他们相关的一系列的数学... -
机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法
2020-08-12 13:49:08在机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法中,我们讨论了定义法求解矩阵向量求导的方法,但是这个方法对于比较复杂的求导式子,中间运算会很复杂,同时排列求导出的结果也很麻烦。因此我们需要其他的... -
向量二范数求导
2021-08-27 18:02:04整个国内网站上竟然搜不到向量二范式求导公式。 发帖的国内 学者全部都搞混了,把二范数平方求导当做了二范数求导。竟然还被无数转载,悲伤~ -
机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导
2020-08-12 15:14:27在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导。本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,向量对矩阵求导这几种形式的求导方法。 本文所有求导... -
机器学习向量矩阵求导(一)——定义与布局
2022-01-21 14:35:45如果我们把这组标量写成向量的形式,即得到维度为m的一个向量y对一个标量x的求导,那么结果也是一个m维的向量:∂y∂x\frac{\partial{y}}{\partial{x}}∂x∂y。 可见,所谓向量对标量的