矩阵求导
矩阵求导在深度学习中的应用

矩阵求导在深度学习中的应用在深度学习中,我们需要优化模型的训练过程,而优化过程离不开梯度的计算。
而矩阵求导作为一种常用的求解梯度的方法,在深度学习中也具有着非常重要的应用。
一、矩阵求导的基本原理矩阵求导是一种对矩阵中每一个元素求导的方法,它可以将高维矩阵中的每一个元素看作是单独的数,对其进行求导。
对于一个函数f(X),我们求它对矩阵X的导数可以表示为:∂f(X) / ∂X = [∂f(X) / ∂x1, ∂f(X) / ∂x2, …, ∂f(X) / ∂xn]其中xi表示矩阵X中的每一个元素。
这样,我们就将一个函数对矩阵的导数化简为对每一个元素的求导。
二、矩阵求导在神经网络中的应用在神经网络中,损失函数是我们需要最小化的目标函数,而模型的参数就是我们要优化的目标。
因此,我们需要计算损失函数对模型参数的导数,才能进行模型参数的优化。
由于神经网络中的参数通常都是矩阵形式,因此我们需要运用矩阵求导的方法来求解损失函数对参数的导数。
以简单的线性回归模型为例,我们假设输入的数据为X,输出的预测值为y,模型的参数为W和b,损失函数为L,我们需要求解L对W和b的导数。
- 对W的求导L对W的导数可以表示为:∂L / ∂W = ∂L / ∂y * ∂y / ∂W因为y = X·W + b,所以有∂y / ∂W = X,因此:∂L / ∂W = ∂L / ∂y * X- 对b的求导同样的,L对b的求导可以表示为:∂L / ∂b = ∂L / ∂y * ∂y / ∂b因为∂y / ∂b = 1,所以:∂L / ∂b = ∂L / ∂y通过这样对模型参数进行求导,我们就可以得到损失函数对参数的梯度,从而进行优化。
三、矩阵求导的实现方法矩阵求导在实现上比较困难,尤其是在高维矩阵中。
然而,深度学习框架如TensorFlow、PyTorch等已经为我们解决了这些实现问题,可以方便地计算矩阵的导数。
以PyTorch为例,我们可以通过调用backward()方法,对损失函数进行自动求导。
矩阵求导

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)T3. 行向量Y T对列向量X求导:注意1×M向量对N×1向量求导后是N×M矩阵。
将Y的每一列对X求偏导,将各列构成一个矩阵。
重要结论:dX T/dX = Id(AX)T/dX = A T4. 列向量Y对行向量X T求导:转化为行向量Y T对列向量X的导数,然后转置。
注意M×1向量对1×N向量求导结果为M×N矩阵。
dY/dX T = (dY T/dX)T5. 向量积对列向量X求导运算法则:注意与标量求导有点不同。
d(UV T)/dX = (dU/dX)V T + U(dV T/dX)d(U T V)/dX = (dU T/dX)V + (dV T/dX)U重要结论:d(X T A)/dX = (dX T/dX)A + (dA/dX)X T = IA + 0X T = Ad(AX)/dX T = (d(X T A T)/dX)T = (A T)T = Ad(X T AX)/dX = (dX T/dX)AX + (d(AX)T/dX)X = AX + A T X6. 矩阵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 T A)/dX = (dX T/dX)A + X T(dA/dX) = IA + X T0 = A8. 标量y对矩阵X的导数:类似标量y对列向量X的导数,把y对每个X的元素求偏导,不用转置。
常用的矩阵求导公式推导过程

常用的矩阵求导公式推导过程矩阵求导是矩阵微积分中的重要内容,常用于优化算法、机器学习和控制理论等领域。
下面我将从多个角度全面完整地回答你关于常用的矩阵求导公式的推导过程。
1. 标量对向量的导数:假设有标量函数 f(x) 和向量 x = [x1, x2, ..., xn],则f(x) 对 x 的导数为:∂f/∂x = [∂f/∂x1, ∂f/∂x2, ..., ∂f/∂xn]2. 向量对向量的导数:假设有向量函数 f(x) 和向量 x = [x1, x2, ..., xn],则f(x) 对 x 的导数为:∂f/∂x = [∂f/∂x1, ∂f/∂x2, ..., ∂f/∂xn],其中∂f/∂xi 是一个行向量。
3. 标量对矩阵的导数:假设有标量函数 f(X) 和矩阵 X,其中 X = [xij],则 f(X) 对 X 的导数为:∂f/∂X = [∂f/∂x11, ∂f/∂x12, ..., ∂f/∂x1m;∂f/∂x21, ∂f/∂x22, ..., ∂f/∂x2m;...∂f/∂xn1, ∂f/∂xn2, ..., ∂f/∂xnm]4. 矩阵对矩阵的导数:假设有矩阵函数 F(X) 和矩阵 X,其中 F(X) = [fij(X)],则 F(X) 对 X 的导数为:∂F/∂X = [∂f11/∂X, ∂f12/∂X, ..., ∂f1m/∂X;∂f21/∂X, ∂f22/∂X, ..., ∂f2m/∂X;...∂fn1/∂X, ∂fn2/∂X, ..., ∂fnm/∂X],其中∂fij/∂X 是一个与 X 维度相同的矩阵。
5. 矩阵对向量的导数:假设有矩阵函数 F(x) 和向量 x = [x1, x2, ..., xn],则F(x) 对 x 的导数为:∂F/∂x = [∂f11/∂x, ∂f12/∂x, ..., ∂f1n/∂x;∂f21/∂x, ∂f22/∂x, ..., ∂f2n/∂x;...∂fm1/∂x, ∂fm2/∂x, ..., ∂fmn/∂x],其中∂fij/∂x 是一个与 x 维度相同的矩阵。
矩阵求导公式

转载]矩阵求导公式【转】(2011-11-15 11:03:34)转载▼标签:转载原文地址:矩阵求导公式【转】作者:三寅今天推导公式,发现居然有对矩阵的求导,狂汗--完全不会。
不过还好网上有人总结了。
吼吼,赶紧搬过来收藏备份。
基本公式:Y = A * X --> DY/DX = A'Y = X * A --> DY/DX = AY = A' * X * B --> DY/DX = A * B'Y = A' * X' * B --> DY/DX = B * A'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 = Id(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' = Ad(AX)/dX' = (d(X'A')/dX)' = (A')' = Ad(X'AX)/dX = (dX'/dX)AX + (d(AX)'/dX)X = AX + A'X6. 矩阵Y对列向量X求导:将Y对X的每一个分量求偏导,构成一个超向量。
矩阵求导在自然中的应用

矩阵求导在自然中的应用矩阵求导在数学中是一项重要的技能,它被用于许多领域,特别是在线性代数、机器学习和最优化问题中。
但事实上,它在自然中也有广泛的应用。
一、矩阵求导在物理中的应用在物理学中,矩阵求导通常被用来描述物理系统的运动和演化。
例如,在量子力学中,施密特正交化算法可以被用于寻找特定系统的基函数。
在这个过程中,需要求取矩阵的导数来计算特定的相干态。
在电子结构理论中,Hartree-Fock方程的求解也涉及到了矩阵的求导。
二、矩阵求导在生物学中的应用在生物学中,矩阵求导可以用来分析基因表达数据。
矩阵求导可以有效地测量基因转录水平的变化,并进一步研究基因调控网络的复杂性。
此外,矩阵求导还被用于研究生物系统中的跨越性现象和非线性动力学。
例如,在生态学中,它可以用于建立物种相互作用的矩阵模型。
三、矩阵求导在经济学中的应用在经济学中,矩阵求导可以用来研究市场的供求模型和生产函数。
在最优化问题中,它可以用来确定最佳产量和最佳定价策略。
此外,矩阵求导还可用于建立多种金融模型,例如Black-Scholes模型,它是一种通用的期权定价模型。
四、矩阵求导在计算机视觉中的应用在计算机视觉中,矩阵求导可以用于图像和视频分析。
它可以用来计算一张图片或一段视频中的运动、方向、变化和形状等特征。
例如,在人脸识别和目标跟踪中,可以用矩阵求导来判断目标的位置和速度。
五、矩阵求导在机器学习中的应用矩阵求导在机器学习中也是重要的方法。
如反向传播算法,它是一种用于训练神经网络的算法。
它的基本原理就涉及到矩阵求导。
此外,在无监督学习和自适应控制中,矩阵求导也是必要的技能。
六、矩阵求导的未来发展矩阵求导在自然中的应用,正是因为其在学科领域中作为基础工具的应用于科学问题,吸引越来越多的学者进行研究,发现这个领域还存在许多未知的问题和新的挑战。
总结在自然中,矩阵求导已经被证明是一项非常有用的技能。
从物理学到生物学,从经济学到计算机视觉,无处不体现着这个技能。
矩阵的导数运算法则

矩阵的导数运算法则你有没有想过,矩阵其实就像一个庞大的数据工厂,成千上万的数据从不同的地方进进出出。
每一行、每一列,都是它的一部分,互相协作、互相配合。
这时候,问题来了:如果你要研究矩阵的变化,怎么知道它的各个部分是怎么跟随变化的?别担心,矩阵的导数运算法则就像是给你提供了一张超级详细的地图,告诉你如何“剖析”这些数据、如何在变化中寻找规律。
听起来有点复杂,但这也就像是你在厨房里做饭,配料和步骤都很简单,只要掌握了,就能轻松搞定!矩阵导数的概念,乍一看可能有点让人抓狂。
它其实就是对矩阵中的每个元素做导数,就好像你在做微积分一样,但这里不是对一个函数求导,而是对每个“数据点”做分析。
想象你正在操控一台很大的显示器,上面是一个个数据的方阵。
你要做的,就是看看这些数据如何随着某个参数的变化而变化。
是不是挺有意思的?说到矩阵的导数运算,我们最常用的运算规则有几个。
比如说,当你想求一个矩阵相对于另一个矩阵的导数时,你得记住,它们之间的关系就像是两个好朋友,互相牵着手,哪怕有点距离,它们也总是保持着某种固定的比例。
矩阵之间的加减法就很简单,像加法,直接对每个元素求导;而乘法的话,就得小心了,这时候有个“链式法则”得帮你忙。
没错,就是你常听到的链式法则,它就像是你在做连环套,先从外面开始算,再逐个递进。
很有意思是不是?例如你有两个矩阵A和B,想要求它们的乘积C的导数。
你不能直接乱来,而是得分步骤来。
首先求A的导数,再求B的导数,然后再按顺序结合,保证每一部分都没有漏掉。
这就像你做一个大拼图,得一步步拼,不能心急。
你在运算时要小心,千万别搞错了顺序,位置不同,结果也会大不同!再说说矩阵的转置,可能有些同学觉得它很简单,它背后有个很重要的“巧妙之处”。
矩阵的转置,就是把矩阵的行和列互换。
如果你要求一个转置矩阵的导数,你会发现,这个过程其实并不麻烦。
说白了,转置操作就像是给你带了一副镜子,直接在镜子里看数据,行和列一对调,你就能轻松搞定它。
矩阵求导的向量化处理
矩阵求导的向量化处理矩阵求导是一种在数学和计算机科学领域中广泛应用的技术。
它被用于处理包含多个变量和函数的复杂方程和模型,并为我们提供了一种有效的方式来求解它们的导数。
在本文中,我们将着重探讨如何将矩阵求导进行向量化处理,以提高效率和减少计算时间。
在了解矩阵求导的向量化处理之前,我们需要了解基础知识。
矩阵求导是一种关于矩阵微积分的技术,用于计算矩阵函数的导数。
矩阵函数是一种将矩阵映射到矩阵的函数,例如,向量的内积可以表示为一个函数 f(X) = X'X,其中 X 可能是二维或三维的矩阵。
矩阵求导用于计算这种函数关于 X 的导数,即∂f(X)/∂X,通常称为雅可比矩阵。
矩阵求导有多种方法,其中的一种常用的方法称为分块矩阵求导。
该方法将矩阵划分成多个子块,然后对每个子块进行求导。
但是,这种方法在计算大型矩阵时需要大量的计算和存储空间,导致计算时间很长,且容易出现内存不足的情况。
此外,当矩阵形状改变时,需要手动更改分块矩阵求导中每个子块的尺寸和坐标位置,这也增加了代码的复杂性。
为了解决这些问题,可以使用矩阵求导的向量化处理技术。
这种技术的基本思想是将矩阵转换为向量,并将矩阵函数表示为向量函数,然后使用向量求导的规则来求出雅可比矩阵。
在这种方法中,我们首先将矩阵 X 展开为一个行向量 x,通过将矩阵在行或列方向上连接来实现。
接下来,我们将矩阵函数 f(X) 变成一个标量函数 f(x),并使用向量求导规则来计算导数。
最后,我们将得到一个行向量,其每个元素表示 f(X) 的一个分量关于 x 的一个分量的导数。
然后,通过对这个向量进行重组和转置,我们就可以得到雅可比矩阵了。
相比于分块矩阵求导,矩阵求导的向量化处理具有如下的优点:1.减少计算时间:向量化技术避免了对矩阵进行分块,使得计算时间更加快速,提高了计算效率。
2.更灵活:向量化方法不要求矩阵具有特定的形状和尺寸,因此可以适用于多种不同的矩阵形式。
矩阵向量求导法则
矩阵向量求导法则
矩阵向量求导法则是一组规则,用于计算矩阵和向量之间的导数。
以下列出了常见的矩阵向量求导法则:
1. 标量对向量求导:
\frac{d}{dx}(c^{T}x) = c
其中,c是一个常数向量,x是一个列向量。
2. 向量对标量求导:
\frac{d}{dx}(x^{T}c) = c^{T}
其中,c是一个常数向量,x是一个列向量。
3. 向量对向量求导:
\frac{d}{dx}(x^{T}Ax) = (A+A^{T})x
其中,A是一个矩阵,x是一个列向量。
4. 向量对矩阵求导:
\frac{d}{dA}(x^{T}Ax) =
(x^{T}+x)(\frac{dA}{dA}+\frac{dA^{T}}{dA}) = 2x^{T}A
其中,A是一个矩阵,x是一个列向量。
5. 标量对矩阵求导:
\frac{d}{dA}(c^{T}Ax) = c^{T}x^{T}
其中,c是一个常数向量,A是一个矩阵,x是一个列向量。
6. 向量对向量求导(链式法则):
\frac{d}{dx}(f(g(x))) = (\frac{df}{dy})^{T}\frac{dg}{dx}
其中,f(\cdot)和g(\cdot)是两个函数,y=g(x),\frac{df}{dy}是
f(\cdot)对y的导数。
多元函数 矩阵 求导
多元函数矩阵求导
多元函数的矩阵求导是微积分中的一个重要内容,它涉及到矩
阵的偏导数和梯度等概念。
首先,我们来看多元函数的梯度。
对于
一个多元函数,如果其自变量是一个n维向量,因变量是一个标量,那么这个函数的梯度就是一个n维向量,其中每个分量分别是函数
对自变量的偏导数。
假设有一个多元函数f(x1, x2, ..., xn),那
么它的梯度可以表示为∇f = [∂f/∂x1, ∂f/∂x2, ...,
∂f/∂xn]。
这里∂f/∂xi表示函数f对自变量xi的偏导数。
接下来我们来看矩阵的求导。
对于一个矩阵函数F(X),其中X
是一个矩阵,我们可以对其进行求导。
如果F(X)的每个元素都是关
于X的函数,那么F(X)的导数就是一个与X同型的矩阵,其中每个
元素是对应元素的偏导数。
具体来说,如果F(X)是一个m×n的矩
阵函数,那么它的导数就是一个m×n的矩阵,其中第i行第j列的
元素是∂Fij/∂Xkl,其中k是第i行,l是第j列。
在实际应用中,多元函数的矩阵求导常常用于优化问题、机器
学习和深度学习等领域。
通过对多元函数的梯度和矩阵的导数进行
求解和分析,可以帮助我们理解函数的变化规律,并且为优化算法
的设计提供重要的数学基础。
在深度学习中,梯度下降法等优化算
法的实现也离不开对多元函数的矩阵求导。
总之,多元函数的矩阵求导是一项重要且复杂的数学工作,它在实际问题中有着广泛的应用,并且对于理解和解决实际问题具有重要意义。
希望我的回答能够帮助你更好地理解这一内容。
矩阵求导定义
矩阵求导定义矩阵求导定义矩阵求导是一种非常有用的数学工具,它可以帮助人们在各种数学问题中更加快速和方便地解决问题。
矩阵求导的定义可以简单地表示为:对于一个矩阵函数f(x),其导数矩阵df(x)/dx可以表示为:df(x)/dx = lim(h→0) [f(x+h)-f(x)]/h其中,x表示一个行向量,h表示一个标量,df(x)/dx是一个矩阵,f(x+h)和f(x)都是和x大小相同的矩阵。
矩阵求导的基本规则在矩阵求导的过程中,有一些基本规则需要遵守,这些规则包括:①线性性:若f(x)和g(x)是两个矩阵函数,a和b分别为标量,则有:d[a*f(x)+b*g(x)]/dx = a*df(x)/dx + b*dg(x)/dx②乘法规则:若f(x)和g(x)是两个矩阵函数,则有:d[f(x)*g(x)]/dx = df(x)/dx*g(x) + f(x)*dg(x)/dx③转置规则:若f(x)是一个矩阵函数,则有:d[f(x)']/dx = (df(x)/dx)'④逆矩阵规则:若f(x)是一个可逆的矩阵函数,则有:d[f(x)^-1]/dx = -f(x)^-1*(df(x)/dx)*f(x)^-1应用实例矩阵求导可以在各种数学问题中得到应用,以下是一些实例:1、矩阵优化问题:矩阵求导可以在矩阵优化问题中得到广泛应用,例如,在机器学习模型的训练过程中,使用梯度下降算法优化损失函数,需要对损失函数求导得到梯度。
2、协方差矩阵的求导:在数据分析领域中,协方差矩阵常常被用来描述不同变量之间的关系。
矩阵求导可以在计算协方差矩阵的导数时得到应用。
3、矩阵微积分学:矩阵微积分学是一门关于矩阵导数和积分的学科,矩阵求导是其中非常重要的一部分。
结语矩阵求导是一个非常有用的数学工具,它可以帮助人们在各种数学问题中更加快速和方便地解决问题。
在应用矩阵求导的过程中,需要遵守基本规则,同时还需要理解它的应用实例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
矩阵函数求导
首先要区分两个概念:矩阵函数和函数矩阵
(1) 函数矩阵,简单地说就是多个一般函数的阵列,包括单变量和多变量函数。
函数矩阵的求导和积分是作用在各个矩阵元素上,没有更多的规则。
单变量函数矩阵的微分与积分
考虑实变量t 的实函数矩阵
()()()ij m n X t x t ×=,所有分量函数()ij x t 定义域相同。
定义函数矩阵的微分与积分
0()(),()().t t ij ij t t d d X t x t X d x d dx dx ττττ⎛⎞⎛⎞⎟⎜⎟⎜⎟==⎜⎟⎜⎟⎟⎜⎜⎟⎝⎠⎝⎠∫∫ 函数矩阵的微分有以下性质:
(1) ()()()()()d d d X t Y t X t t dt dt dt
+=+; (2) ()()()()()()()d dX t dY t X t Y t t X t dt dt dt
=+; 特殊情形
(a ) 若K 是常数矩阵,则()()()d d KX t K X t dt dt
=; (b ) 若()X t 是方阵,则2()()()()()d dX t dX t X t X t X t dt dt dt
=+; (3) ()
111()()()()d dX t X t X t X t dt dt =----; (4) 对任意的方阵A 和时变量t ,恒有At At At d e Ae e A dt
==; (5) 若AB BA =,则A B B A A B e e e e e +==。
如果,A B 可交换,则许多三角不等
式可以推广到矩阵上。
如sin(),sin(2)A b A +等。
参考文献:余鄂西,矩阵论,高等教育出版社。
(2) 矩阵函数,就是自变量为矩阵的函数映射;根据函数的自变量和因变量的
形式可分为多种。
矩阵函数的导数
定义(向量导数):映射:n m f →\\,()()12(),(),,()
(), 1...T m i f f x f x f x f x i m ===",
定义映射的导数为一个m n ×的偏导数矩阵 (), 1..., 1...i ij j df x Df i m j n dx ⎡⎤===⎢⎥⎣⎦. 例如 dAx A dx
=, ⇒
()()()(),,D f x g x Df x Dg x αβαβαβ⎡⎤+=+∈∈⎢⎥⎣⎦\\
()()''()()()D f g x f g x g x ⎡⎤=⎢⎥⎣⎦
''()()()()()(),,T T T n m D f x g x g x f x f x g x f g ⎡⎤=+∈→⎢⎥⎣⎦
\\ ⇒
()()T T T T T dx Ax x A Ax x A A dx
=+=+
定义(矩阵导数):
()vec ()()vec()
d A X dA X dX d X 有
符号说明
•d/dx (y)是一个向量,其第(i)个元素是dy(i)/dx
•d/d x (y) 是一个向量,其第(i)个元素是dy/dx(i)
•d/d x (y T) 是一个矩阵,其第(i,j)个元素是dy(j)/dx(i)•d/dx (Y) 是一个矩阵,其第(i,j)个元素是dy(i,j)/dx •d/d X (y) 是一个矩阵,其第(i,j)个元素是dy/dx(i,j)
注意 Hermitian 转置不能应用,因为复共轭不可解析,x,y是向量,X,Y是矩阵,x,y是标量。
在下面的表达中 A, B, C 是不依赖于 X的矩阵,a,b是不依赖于x的向量, 线性积
•d/dx (AYB) =A * d/dx (Y) * B
o d/dx (Ay) =A * d/dx (y)
•d/d x(x T A) =A
o d/d x(x T) =I
o d/d x(x T a) = d/d x(a T x) = a
•d/d X(a T Xb) = ab T
o d/d X(a T Xa) = d/d X(a T X T a) = aa T
•d/d X(a T X T b) = ba T
•d/dx (YZ) =Y * d/dx (Z) + d/dx (Y) * Z
二次积
•d/d x (Ax+b)T C(D x+e) = A T C(Dx+e) + D T C T(Ax+b)
o d/d x (x T Cx) = (C+C T)x
[C: symmetric]: d/d x (x T Cx) = 2Cx
d/d x (x T x) = 2x
o d/d x (Ax+b)T (D x+e) = A T (Dx+e) + D T (Ax+b)
d/d x (Ax+b)T (A x+b) = 2A T (Ax+b)
o[C: symmetric]: d/d x (Ax+b)T C(A x+b) = 2A T C(Ax+b)
•d/d X(a T X T Xb) = X(ab T + ba T)
o d/d X(a T X T Xa) = 2Xaa T
•d/d X(a T X T CXb) = C T Xab T + CXba T
o d/d X(a T X T CXa) = (C + C T)Xaa T
o[C:Symmetric]d/d X(a T X T CXa) = 2CXaa T
•d/d X((Xa+b)T C(Xa+b)) = (C+C T)(Xa+b)a T
三次积
•d/d x(x T Axx T) = (A+A T)xx T+x T AxI
逆
•d/dx (Y-1) = -Y-1d/dx (Y)Y-1
迹
Note: matrix dimensions must result in an n*n argument for tr().
•d/d X(tr(X)) = I
•d/d X(tr(X k)) =k(X k-1)T
•d/d X(tr(AX k)) =SUM r=0:k-1(X r AX k-r-1)T
•d/d X(tr(AX-1B)) = -(X-1BAX-1)T
o d/d X(tr(AX-1)) =d/d X(tr(X-1A)) = -X-T A T X-T
•d/d X(tr(A T XB T)) = d/d X(tr(BX T A)) = AB
o d/d X(tr(XA T)) = d/d X(tr(A T X)) =d/d X(tr(X T A)) = d/d X(tr(AX T)) = A •d/d X(tr(AXBX T)) = A T XB T + AXB
o d/d X(tr(XAX T)) = X(A+A T)
o d/d X(tr(X T AX)) = X T(A+A T)
o d/d X(tr(AX T X)) = (A+A T)X
•d/d X(tr(AXBX)) = A T X T B T + B T X T A T
•
•[C:symmetric]d/d X(tr((X T CX)-1A) = d/d X(tr(A (X T CX)-1) =
-(CX(X T CX)-1)(A+A T)(X T CX)-1
•[B,C:symmetric]d/d X(tr((X T CX)-1(X T BX)) = d/d X(tr( (X T BX)(X T CX)-1) = -2(CX(X T CX)-1)X T BX(X T CX)-1 + 2BX(X T CX)-1
•
行列式
•d/d X(det(X)) = d/d X(det(X T)) = det(X)*X-T
o d/d X(det(AXB)) = det(AXB)*X-T
o d/d X(ln(det(AXB))) = X-T
•d/d X(det(X k)) = k*det(X k)*X-T
o d/d X(ln(det(X k))) = k X-T
•[Real] d/d X(det(X T CX)) = det(X T CX)*(C+C T)X(X T CX)-1
o[C: Real,Symmetric]d/d X(det(X T CX)) = 2det(X T CX)* CX(X T CX)-1•[C: Real,Symmetricc]d/d X(ln(det(X T CX))) = 2CX(X T CX)-1
Jacobian
如果y 是x的函数,则d y T/d x是y关于x的Jacobian 矩阵。
其行列式|d y T/d x|是表示了d y和d x的超体积比值. Jacobian行列式出现在变元积分中: Integral(f(y)d y)=Integral(f(y(x)) |d y T/d x| d x).
Hessian矩阵
如果f是x的函数,则对称矩阵d2f/d x2= d/d x T(df/d x)就是f(x)的Hessian 矩阵。
满足df/d x = 0 的x的值,当Hessian是正定、负定、不定时,就是相应的最小值、最大值、或者是鞍点。
•d2/d x2 (a T x) = 0
•d2/d x2 (Ax+b)T C(D x+e) = A T CD + D T C T A
o d2/d x2 (x T Cx) = C+C T
d2/d x2 (x T x) = 2I
o d2/d x2 (Ax+b)T (D x+e) = A T D + D T A
d2/d x2 (Ax+b)T (A x+b) = 2A T A
o[C: symmetric]: d2/d x2 (Ax+b)T C(A x+b) = 2A T CA。