当前位置: 首页 > news >正文

ML@矩阵微积分基础

文章目录

  • 矩阵微积分@Matrix calculus
    • 记法
      • 简单Jacobi Matrix
        • 分子记法
        • 分母记法
        • 一般形式的Jacobi Matrix
    • Types of matrix derivative
    • 向量求导
      • 向量对标量求导
      • 标量对向量求导
      • 向量对向量求导
    • 矩阵求导
      • 矩阵对标量求导(切矩阵)
      • 标量对矩阵求导

  • 记法
  • 向量求导
    • 向量对标量求导
    • 标量对向量求导
    • 向量对向量求导
  • 矩阵求导
    • 矩阵对标量求导
    • 标量对矩阵求导

矩阵微积分@Matrix calculus

  • 深度学习中的矩阵微积分学 - Dezeming Family https://dezeming.top › uploads › 2022/02 › 深度…
  • 矩阵论 第2版_图书搜索 (superlib.net)
    • **作者:**方保镕,周继东,李医民编著 **页数:**401 **出版社:**北京:清华大学出版社 **出版日期:**2013.12
    • 简介:本书比较全面、系统地介绍了矩阵的基本理论、方法及其应用。
    • 全书分上、下两篇,上篇为基础篇,下篇为应用篇。
  • Matrix calculus - Wikipedia
  • 矩阵微积分 (wikipedia.org)

记法

  • 在表示向量和矩阵时,通过用单个变量(字母)来表示许多变量的方式,把矩阵记法的效用发挥到最大。
  • 可以用不同字体来区分标量、向量和矩阵。
  • 我们使用M(n,m)M(n,m)M(n,m)来表示包含n行m列n×mn×mn×m实矩阵的空间
    • 该空间中的一般矩阵大写字母表示,例如A,X,Y等。
  • 而若该矩阵属于M(n,1)M(n,1)M(n,1),即列向量,则用粗体小写字母表示,如a,x,y等。(但有时为例放便,不以粗体书写)
  • 特别地,M(1,1)中的元素为标量,用小写斜体字母表示,如a,t,x等。
  • XTX^TXT 表示矩阵转置,tr(X)tr(X)tr(X)表示矩阵的迹,而 det⁡(X)\det(X)det(X)∣X∣|X|X表示行列式。
  • 除非专门注明,所有函数都默认属于光滑函数。
  • 通常字母表前半部分的字母(a,b,c,…)(a, b, c, …)(a,b,c,)用于表示常量
  • 而后半部分的字母(t,x,y,…)(t, x, y, …)(t,x,y,)用于表示变量
    • 变量可以是标量,也可以是向量
    • 标量可能是常数,也可能是变量

简单Jacobi Matrix

分子记法

  • 这个矩阵我们称为雅克比矩阵 (Jacobian matrix),一下是分子记法(分子布局 (numerator layout))

    • J=[∇f(x,y)∇g(x,y)]=[∂f(x,y)∂x∂f(x,y)∂y∂g(x,y)∂x∂g(x,y)∂y]\mathcal{J}=\left[\begin{array}{l} \nabla f(x, y) \\ \nabla g(x, y) \end{array}\right]=\left[\begin{array}{ll} \frac{\partial f(x, y)}{\partial x} & \frac{\partial f(x, y)}{\partial y} \\ \frac{\partial g(x, y)}{\partial x} & \frac{\partial g(x, y)}{\partial y} \end{array}\right] J=[f(x,y)g(x,y)]=[xf(x,y)xg(x,y)yf(x,y)yg(x,y)]

      分母记法

  • 有许多著作和软件会使用分母布局 (denominator layout),其实这就是分子布局的矩阵转置:

    • [∂f(x,y)∂x∂f(x,y)∂y∂g(x,y)∂x∂g(x,y)∂y]T=[∂f(x,y)∂x∂g(x,y)∂x∂f(x,y)∂y∂g(x,y)∂y]\left[\begin{array}{ll} \frac{\partial f(x, y)}{\partial x} & \frac{\partial f(x, y)}{\partial y} \\ \frac{\partial g(x, y)}{\partial x} & \frac{\partial g(x, y)}{\partial y} \end{array}\right]^{T}=\left[\begin{array}{ll} \frac{\partial f(x, y)}{\partial x} & \frac{\partial g(x, y)}{\partial x} \\ \frac{\partial f(x, y)}{\partial y} & \frac{\partial g(x, y)}{\partial y} \end{array}\right] [xf(x,y)xg(x,y)yf(x,y)yg(x,y)]T=[xf(x,y)yf(x,y)xg(x,y)yg(x,y)]

一般形式的Jacobi Matrix

  • 对于多个标量函数,讲它们组合到一个向量中:

    • y=f(x)\mathbf{y}=\mathbf{f(x)}y=f(x)是一个由若干(设为m个)多元(设为n元)标量函数构成的向量

    • 把n维向量x\mathbf{x}x作为输入,fi(x)f_i(\mathbf{x})fi(x)返回一个标量值(Rn→RR^n\to{R}RnR)

    • y=(y1y2⋮ym)=f(x)=(f1(x)f2(x)⋮fm(x))\mathbf{y}=\begin{pmatrix} y_{1}\\ y_{2}\\ \vdots\\ y_{m}\\ \end{pmatrix} =\mathbf{f(x)} =\begin{pmatrix} f_{1}(\mathbf{x})\\ f_{2}(\mathbf{x})\\ \vdots\\ f_{m}(\mathbf{x})\\ \end{pmatrix} y=y1y2ym=f(x)=f1(x)f2(x)fm(x)

    • m=nm=nm=n的情况是很常见的

    • Jacobi矩阵就是与x\mathbf{x}x函数相关的的m个梯度

    • ∂y∂x=(∇f1(x)∇f2(x)⋮∇fm(x))=(∂∂xf1(x)∂∂xf2(x)⋮∂∂xfm(x))=(∂∂x1f1(x)∂∂x2f1(x)⋯∂∂xnf1(x)∂∂x1f2(x)∂∂x2f2(x)⋯∂∂xnf2(x)⋮∂∂x1fm(x)∂∂x2fm(x)⋯∂∂xnfm(x))m×nX∈Rn∇fi(x)=∂∂xfi(x)=[∂∂x1fi(x),∂∂x2fi(x),⋯,∂∂xnfi(x)]\frac{\partial\mathbf{y}}{\partial{\mathbf{x}}} =\begin{pmatrix} \nabla f_{1}{(\mathbf{x})}\\ \nabla f_{2}{(\mathbf{x})}\\ \vdots\\ \nabla f_{m}{(\mathbf{x})}\\ \end{pmatrix} =\begin{pmatrix} \frac{\partial}{\partial{\mathbf{x}}}f_{1}(\mathbf{x})\\ \frac{\partial}{\partial{\mathbf{x}}}f_{2}(\mathbf{x})\\ \vdots\\ \frac{\partial}{\partial{\mathbf{x}}}f_{m}(\mathbf{x})\\ \end{pmatrix}\\ =\begin{pmatrix} \frac{\partial}{\partial{{x_1}}}f_{1}(\mathbf{x})& \frac{\partial}{\partial{{x_2}}}f_{1}(\mathbf{x})& \cdots& \frac{\partial}{\partial{{x_n}}}f_{1}(\mathbf{x})\\ \frac{\partial}{\partial{{x_1}}}f_{2}(\mathbf{x})& \frac{\partial}{\partial{{x_2}}}f_{2}(\mathbf{x})& \cdots& \frac{\partial}{\partial{{x_n}}}f_{2}(\mathbf{x})\\ \vdots\\ \frac{\partial}{\partial{{x_1}}}f_{m}(\mathbf{x})& \frac{\partial}{\partial{{x_2}}}f_{m}(\mathbf{x})& \cdots& \frac{\partial}{\partial{{x_n}}}f_{m}(\mathbf{x})\\ \end{pmatrix}_{m\times{n}} \\ \mathbf{X}\in{R^n} \\ \nabla f_{i}{(\mathbf{x})}=\frac{\partial}{\partial{\mathbf{x}}}f_{i}(\mathbf{x}) = [\frac{\partial}{\partial{{x_1}}}f_{i}(\mathbf{x}), \frac{\partial}{\partial{{x_2}}}f_{i}(\mathbf{x}), \cdots, \frac{\partial}{\partial{{x_n}}}f_{i}(\mathbf{x})] xy=f1(x)f2(x)fm(x)=xf1(x)xf2(x)xfm(x)=x1f1(x)x1f2(x)x1fm(x)x2f1(x)x2f2(x)x2fm(x)xnf1(x)xnf2(x)xnfm(x)m×nXRnfi(x)=xfi(x)=[x1fi(x),x2fi(x),,xnfi(x)]

  • 对于 fi(x)=fi([x1,x2,⋯,xn])=xif_i(\mathbf{x})=f_i([x_1,x_2,\cdots,x_n])= x_ifi(x)=fi([x1,x2,,xn])=xi (构成的)的恒等函数 f(x)=x\mathbf{f(x)} = \mathbf{x}f(x)=x,我们可以计算得到它的雅克比矩阵(这里的 m 等于 n)

    • y=f(x)=(f1(x),f2(x),⋯,fn(x))=x\mathbf{y=f(x)}=(f_1(\mathbf{x}),f_2(\mathbf{x}),\cdots,f_n(\mathbf{x}))=\mathbf{x} y=f(x)=(f1(x),f2(x),,fn(x))=x

    • 注意这里的函数f\mathbf{f}f是向量输入x\mathbf{x}x,同时向量输出y\mathbf{y}y

      • 假设它么的维数分别是n,mn,mn,m,且有m=nm=nm=n
      • 对上述恒等函数求jacobi matrix
    • ∂y∂x=(∂∂x1f1(x)∂∂x2f1(x)⋯∂∂xnf1(x)∂∂x1f2(x)∂∂x2f2(x)⋯∂∂xnf2(x)⋮∂∂x1fm(x)∂∂x2fm(x)⋯∂∂xnfm(x))m×n=(∂∂x1x1∂∂x2x1⋯∂∂xnx1∂∂x1x2∂∂x2x2⋯∂∂xnx2⋮∂∂x1xm∂∂x2xm⋯∂∂xnxm)m×n=n2=(10⋯001⋯0⋮⋮⋱⋮00⋯1)n×n\frac{\partial\mathbf{y}}{\partial{\mathbf{x}}} =\begin{pmatrix} \frac{\partial}{\partial{{x_1}}}f_{1}(\mathbf{x})& \frac{\partial}{\partial{{x_2}}}f_{1}(\mathbf{x})& \cdots& \frac{\partial}{\partial{{x_n}}}f_{1}(\mathbf{x})\\ \frac{\partial}{\partial{{x_1}}}f_{2}(\mathbf{x})& \frac{\partial}{\partial{{x_2}}}f_{2}(\mathbf{x})& \cdots& \frac{\partial}{\partial{{x_n}}}f_{2}(\mathbf{x})\\ \vdots\\ \frac{\partial}{\partial{{x_1}}}f_{m}(\mathbf{x})& \frac{\partial}{\partial{{x_2}}}f_{m}(\mathbf{x})& \cdots& \frac{\partial}{\partial{{x_n}}}f_{m}(\mathbf{x})\\ \end{pmatrix}_{m\times{n}} \\ =\begin{pmatrix} \frac{\partial}{\partial{{x_1}}}x_1& \frac{\partial}{\partial{{x_2}}}x_1& \cdots& \frac{\partial}{\partial{{x_n}}}x_1\\ \frac{\partial}{\partial{{x_1}}}x_2& \frac{\partial}{\partial{{x_2}}}x_2& \cdots& \frac{\partial}{\partial{{x_n}}}x_2\\ \vdots\\ \frac{\partial}{\partial{{x_1}}}x_m& \frac{\partial}{\partial{{x_2}}}x_m& \cdots& \frac{\partial}{\partial{{x_n}}}x_m\\ \end{pmatrix}_{m\times{n}=n^2} =\begin{pmatrix} 1 &0 &\cdots&0 \\ 0 &1 &\cdots&0 \\ \vdots&\vdots&\ddots&\vdots\\ 0 &0 &\cdots&1 \\ \end{pmatrix}_{n\times{n}} xy=x1f1(x)x1f2(x)x1fm(x)x2f1(x)x2f2(x)x2fm(x)xnf1(x)xnf2(x)xnfm(x)m×n=x1x1x1x2x1xmx2x1x2x2x2xmxnx1xnx2xnxmm×n=n2=100010001n×n

Types of matrix derivative

TypesScalarVectorMatrix
Scalar∂y∂x\frac{\partial y}{\partial x}xy∂y∂x\frac{\partial \mathbf{y}}{\partial x}xy∂Y∂x\frac{\partial \mathbf{Y}}{\partial x}xY
vector∂y∂x\frac{\partial y}{\partial \mathbf{x}}xy∂y∂x\frac{\partial \mathbf{y}}{\partial \mathbf{x}}xy
Matrix∂y∂X\frac{\partial y}{\partial \mathbf{X}}Xy

向量求导

向量对标量求导

  • 由于向量可看成仅有一列的矩阵,最简单的矩阵求导向量求导

  • 通过如下方式表达大部分向量微积分:

    • n维向量构成的空间M(n,1)等同为欧氏空间 RnR^nRn, 标量M(1,1)M(1,1)M(1,1)等同于R
  • 向量y=[y1y2⋯ym]T{\displaystyle \mathbf {y} ={\begin{bmatrix}y_{1}&y_{2}&\cdots &y_{m}\end{bmatrix}}^{\mathsf {T}}}y=[y1y2ym]T关于标量 xxx的导数可以(用分子记法)写成

    • yi=yi(x)y_i=y_i(\mathbf{x})yi=yi(x)多元(输入)标量(输出)函数

      • i=1,2,⋯,mi=1,2,\cdots,mi=1,2,,m
      • 对标量xxx进行广播,再分别求导
    • ∂y∂x=[∂y1∂x∂y2∂x⋮∂ym∂x]{\displaystyle {\frac {\partial \mathbf {y} }{\partial x}}={\begin{bmatrix}{\frac {\partial y_{1}}{\partial x}}\\{\frac {\partial y_{2}}{\partial x}}\\\vdots \\{\frac {\partial y_{m}}{\partial x}}\\\end{bmatrix}}} xy=xy1xy2xym

  • 在向量微积分中,向量y\mathbf {y}y关于标量变量xxx的导数也被称为向量y\mathbf {y}y的切向量(在xxx方向的),∂y∂x{\displaystyle {\frac {\partial \mathbf {y} }{\partial x}}}xy

  • 例子

    • 简单的样例包括欧式空间中的速度向量,它是位移向量(看作关于时间的函数)的切向量。
    • 更进一步而言, 加速度是速度的切向量。

标量对向量求导

  • 标量y对向量x=[x1x2⋯xn]T{\displaystyle \mathbf {x} ={\begin{bmatrix}x_{1}&x_{2}&\cdots &x_{n}\end{bmatrix}}^{\mathsf {T}}}x=[x1x2xn]T的导数可以(用分子记法)写成

    • ∂y∂x=[∂y∂x1∂y∂x2⋯∂y∂xn]{\displaystyle {\frac {\partial y}{\partial \mathbf {x} }}={\begin{bmatrix}{\frac {\partial y}{\partial x_{1}}}&{\frac {\partial y}{\partial x_{2}}}&\cdots &{\frac {\partial y}{\partial x_{n}}}\end{bmatrix}}}xy=[x1yx2yxny]

      • 对被求导的多元函数y=y(x)y=y(\mathbf{x})y=y(x)进行广播(broadcasting),再进行求导
    • (∂y∂x)T=(∂y∂x1∂y∂x2∂y∂x3)(\frac{\partial{y}}{\partial{\mathbf{x}}})^T =\begin{pmatrix} \frac {\partial y}{\partial \mathbf {x_1} }\\ \frac {\partial y}{\partial \mathbf {x_2} }\\ \frac {\partial y}{\partial \mathbf {x_3}} \end{pmatrix} (xy)T=x1yx2yx3y

  • 在向量微积分中,标量y在的空间RnR^nRn(其独立坐标是x的分量)中的梯度是标量y对向量x的导数的转置。

  • 在物理学中,电场是电势的负梯度向量。

  • 标量函数f(x)对空间向量x在单位向量u(在这里表示为列向量)方向上的方向导数可以用梯度定义

    • ∇uf(x)=∇f(x)⋅u\displaystyle \nabla _{\mathbf {u} }{f}(\mathbf {x} )=\nabla f(\mathbf {x} )\cdot \mathbf {u}uf(x)=f(x)u

      • u=(cos⁡α,cos⁡β,cos⁡γ)u=(\cos\alpha,\cos\beta,\cos\gamma)u=(cosα,cosβ,cosγ),即该单位向量是由u方向的方向余弦构成的

      • ∇f(x)u=(∂y∂x1,∂y∂x2,∂y∂x3)⋅(cos⁡α,cos⁡β,cos⁡γ)=(∂y∂x1∂y∂x2∂y∂x3)(cos⁡α,cos⁡β,cos⁡γ)=(∂y∂x)Tu\nabla{f(x)}u=(\frac {\partial y}{\partial \mathbf {x_1} },\frac {\partial y}{\partial \mathbf {x_2} },\frac {\partial y}{\partial \mathbf {x_3} }) \cdot(\cos\alpha,\cos\beta,\cos\gamma) \\=\begin{pmatrix} \frac {\partial y}{\partial \mathbf {x_1} }\\ \frac {\partial y}{\partial \mathbf {x_2} }\\ \frac {\partial y}{\partial \mathbf {x_3}} \end{pmatrix}(\cos\alpha,\cos\beta,\cos\gamma) =(\frac{\partial{y}}{\partial{\mathbf{x}}})^T\mathbf{u} f(x)u=(x1y,x2y,x3y)(cosα,cosβ,cosγ)=x1yx2yx3y(cosα,cosβ,cosγ)=(xy)Tu

        • x=(x1,x2,x3)\mathbf x=(x_1,x_2,x_3)x=(x1,x2,x3)
  • 使用刚才定义的标量对向量的导数的记法,可以把方向导数写作 ∇uf=(∂f∂x)⊤u\displaystyle \nabla _{\mathbf {u} }f=\left({\frac {\partial f}{\partial \mathbf {x} }}\right)^{\top }\mathbf {u}uf=(xf)u 这类记法在证明乘法法则和链式法则的时候非常直观,因为它们与我们熟悉的标量导数的形式较为相似。

向量对向量求导

  • 前面两种情况可以看作是向量对向量求导在其中一个是一维向量情况下的特例

  • 类似地我们将会发现有关矩阵的求导可被以一种类似的方式化归为向量求导

  • 分量为函数的向量 y=[y1y2⋯ym]T{\displaystyle \mathbf {y} ={\begin{bmatrix}y_{1}&y_{2}&\cdots &y_{m}\end{bmatrix}}^{\mathsf {T}}}y=[y1y2ym]T对输入向量x=[x1x2⋯xn]T{\displaystyle \mathbf {x} ={\begin{bmatrix}x_{1}&x_{2}&\cdots &x_{n}\end{bmatrix}}^{\mathsf {T}}}x=[x1x2xn]T的导数x→yi(x)\mathbf{x}\to{y_i(\mathbf{x})}xyi(x),可以(用分子记法) 写作

    • Note:yi=yi(x)y_i=y_i(\mathbf{x})yi=yi(x),i=1,2,⋯,mi=1,2,\cdots,mi=1,2,,m

    • 这部分在开头做过展示(Jacobi Matrix)

    • ∂y∂x=[∂y1∂x1∂y1∂x2⋯∂y1∂xn∂y2∂x1∂y2∂x2⋯∂y2∂xn⋮⋮⋱⋮∂ym∂x1∂ym∂x2⋯∂ym∂xn]{\displaystyle {\frac {\partial \mathbf {y} }{\partial \mathbf {x} }}={\begin{bmatrix}{\frac {\partial y_{1}}{\partial x_{1}}}&{\frac {\partial y_{1}}{\partial x_{2}}}&\cdots &{\frac {\partial y_{1}}{\partial x_{n}}}\\{\frac {\partial y_{2}}{\partial x_{1}}}&{\frac {\partial y_{2}}{\partial x_{2}}}&\cdots &{\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}}}&\cdots &{\frac {\partial y_{m}}{\partial x_{n}}}\\\end{bmatrix}}} xy=x1y1x1y2x1ymx2y1x2y2x2ymxny1xny2xnym

      • 每一行相当于函数yiy_iyi对向量x\mathbf{x}x求导
      • y\mathbf{y}y中包含了n个向量,所以y\mathbf{y}yx\mathbf{x}x会产生n行,它们构成矩阵∂y∂x\frac{\partial{\mathbf{y}}}{\partial{\mathbf{x}}}xy
    • 向量函数

      • 向量值函数,有时也称为向量函数,是一个单变量或多变量的、值域是多维向量或者无穷维向量的集合的函数。向量值函数的输入可以是一个标量或者一个向量(定义域的维度可以是1或大于1);定义域的维度不取决于值域的维度。
      • A vector-valued function, also referred to as a vector function, is a mathematical function of one or more variables whose range is a set of multidimensional vectors or infinite-dimensional vectors.
      • The input of a vector-valued function could be a scalar or a vector (that is, the dimension of the domain could be 1 or greater than 1);
      • the dimension of the function’s domain has no relation to the dimension of its range.
  • 在向量微积分中,向量函数y对分量表示一个空间的向量x\mathbf{x}x的导数也被称为前推 (微分),或雅可比矩阵

    • In vector calculus, the derivative of a vector function y with respect to a vector x whose components(分量) represent a space is known as the pushforward (or differential), or the Jacobian matrix.
    • 在向量微积分中,向量函数y关于向量x的导数(其分量表示空间)被称为推进(或微分),或称为雅克比矩阵。
  • 向量函数f\mathbf{f}fRnR^nRn空间中向量v的前推df(v)=∂f∂vdv\displaystyle d\,\mathbf {f} (\mathbf {v} )={\frac {\partial \mathbf {f} }{\partial \mathbf {v} }}d\,\mathbf {v}df(v)=vfdv

矩阵求导

  • 有两种类型的矩阵求导可以被写成相同大小的矩阵:矩阵对标量求导和标量对矩阵求导。
  • 它们在解决应用数学的许多领域常见的最小化问题中十分有用。
  • 类比于向量求导,相应的概念有切矩阵梯度矩阵

矩阵对标量求导(切矩阵)

  • 矩阵函数Y对标量x的导数被称为切矩阵,(用分子记法)可写成:

    • ∂Y∂x=[∂y11∂x∂y12∂x⋯∂y1n∂x∂y21∂x∂y22∂x⋯∂y2n∂x⋮⋮⋱⋮∂ym1∂x∂ym2∂x⋯∂ymn∂x]{\displaystyle {\frac {\partial \mathbf {Y} }{\partial x}}={\begin{bmatrix}{\frac {\partial y_{11}}{\partial x}}&{\frac {\partial y_{12}}{\partial x}}&\cdots &{\frac {\partial y_{1n}}{\partial x}}\\{\frac {\partial y_{21}}{\partial x}}&{\frac {\partial y_{22}}{\partial x}}&\cdots &{\frac {\partial y_{2n}}{\partial x}}\\\vdots &\vdots &\ddots &\vdots \\{\frac {\partial y_{m1}}{\partial x}}&{\frac {\partial y_{m2}}{\partial x}}&\cdots &{\frac {\partial y_{mn}}{\partial x}}\\\end{bmatrix}}} xY=xy11xy21xym1xy12xy22xym2xy1nxy2nxymn

标量对矩阵求导

  • 定义在元素是独立变量的p×qp×qp×q矩阵X∈RnX\in{\mathbb{R}^n}XRn上的标量函数yyyXXX的导数可以(用分子记法)写作

    • ∂y∂X=[∂y∂x11∂y∂x21⋯∂y∂xp1∂y∂x12∂y∂x22⋯∂y∂xp2⋮⋮⋱⋮∂y∂x1q∂y∂x2q⋯∂y∂xpq]{\displaystyle {\frac {\partial y}{\partial \mathbf {X} }}={\begin{bmatrix}{\frac {\partial y}{\partial x_{11}}}&{\frac {\partial y}{\partial x_{21}}}&\cdots &{\frac {\partial y}{\partial x_{p1}}}\\{\frac {\partial y}{\partial x_{12}}}&{\frac {\partial y}{\partial x_{22}}}&\cdots &{\frac {\partial y}{\partial x_{p2}}}\\\vdots &\vdots &\ddots &\vdots \\{\frac {\partial y}{\partial x_{1q}}}&{\frac {\partial y}{\partial x_{2q}}}&\cdots &{\frac {\partial y}{\partial x_{pq}}}\\\end{bmatrix}}} Xy=x11yx12yx1qyx21yx22yx2qyxp1yxp2yxpqy
  • 定义矩阵上的重要的标量函数包括矩阵的行列式

    • y(X)=∣X∣y(X)=|X|y(X)=X
    • y(X)=Tr(X)y(X)=Tr(X)y(X)=Tr(X)
  • 类比于向量微积分,这个导数常被写成如下形式:

    • ∇Xy(X)=∂y(X)∂X\displaystyle \nabla _{\mathbf {X} }y(\mathbf {X} )={\frac {\partial y(\mathbf {X} )}{\partial \mathbf {X} }} Xy(X)=Xy(X)
  • 类似地,标量函数f(X)f(X)f(X)关于矩阵X在方向Y的方向导数可写成

    • ∇Yf=tr⁡(∂f∂XY)\displaystyle \nabla _{\mathbf {Y} }f=\operatorname {tr} \left({\frac {\partial f}{\partial \mathbf {X} }}\mathbf {Y} \right) Yf=tr(XfY)
  • 梯度矩阵经常被应用在估计理论的最小化问题中,比如卡尔曼滤波算法的推导,因此在这些领域中有着重要的地位。

相关文章:

ML@矩阵微积分基础

文章目录矩阵微积分Matrix calculus记法简单Jacobi Matrix分子记法分母记法一般形式的Jacobi MatrixTypes of matrix derivative向量求导向量对标量求导标量对向量求导向量对向量求导矩阵求导矩阵对标量求导(切矩阵)标量对矩阵求导记法向量求导 向量对标量求导标量对向量求导向…...

华为OD机试真题Python实现【优秀学员统计】真题+解题思路+代码(20222023)

优秀学员统计 题目 公司某部门软件教导团正在组织新员工每日打卡学习活动,他们开展这项学习活动已经一个月了,所以想统计下这个月优秀的打卡员工。每个员工会对应一个 id,每天的打卡记录记录当天打卡员工的 id 集合,一共 30 天。 请你实现代码帮助统计出打卡次数 top5 的…...

docsify在线文档支持pdf查看

目录 步骤一:添加插件 步骤二:添加pdf地址 步骤三:成果展示 docsify是一个在github上很好用的文档转换网页的工具,但是大部分情况我们都是使用的markdown文件。最近想把pdf文档也能支持在这上面展示,研究后总结一下…...

ES6中Set类型的基本使用

在ES6之前,存储数据的结构主要有两种:数组、对象。 在ES6中新增了另外两种数据结构(存放数据的方式):Set、Map,以及他们的另外形式WeakSet、WeakMap。 Set的基本使用 Set是一个新增的数据结构&#xff0c…...

【VUE3.0_CSS功能】

CSS功能组件css作用域深度选择器(标签名空格:deep(标签名))插槽选择器(:soltted(标签名))全局选择器(:global(类名))动态CSS(v-bind)useCSSModule拓展知识:deep的写法组件…...

微机原理复习总结6:汇编语言程序设计

本篇博客主要分享几道汇编语言例题编写一完整的程序,从键盘输入一组字符,直到输入“0”为止,当输入是小写字母时,则修改为大写字母,输入的字符存放在string为首址的存储单元中。data segment ;数据段定义 st…...

计算机网络 部分原理和过程

下面是一台计算机 Ping 和不在同一 IP 网络上的另一台计算机的全过程: 该计算机首先确定要 Ping 的目标 IP 地址,并检查该 IP 地址是否与本地 IP 地址在同一 IP 网络上。如果目标 IP 地址与本地 IP 地址不在同一 IP 网络上,则需要通过路由器…...

C++实现链表

C实现链表 众所周知,C/C语言实现的链表是由一个一个的结点构成,每个结点分为数据域和指针域,指针域中存储了其后继结点的地址,通过地址来访问下一个结点。 链表是一系列节点串联形成的数据结构,链表存储有序的元素集合…...

MySQL索引篇

文章目录说明:索引篇一、索引常见面试题按数据结构按物理存储分类按字段特性分类按字段个数分类索引缺点:什么时候适用索引?什么时候不需要创建索引?常见优化索引的方法:发生索引失效的情况:二、从数据页角…...

Ardiuno-交通灯

LED交通灯实验实验器件:■ 红色LED灯:1 个■ 黄色LED灯:1 个■ 绿色LED灯:1 个■ 220欧电阻:3 个■ 面包板:1 个■ 多彩杜邦线:若干实验连线1.将3个发光二极管插入面包板,2.用杜邦线…...

Leetcode.1234 替换子串得到平衡字符串

题目链接 Leetcode.1234 替换子串得到平衡字符串 Rating : 1878 题目描述 有一个只含有 Q, W, E, R四种字符,且长度为 n 的字符串。 假如在该字符串中,这四个字符都恰好出现 n/4次,那么它就是一个「平衡字符串」。 给你一个这样…...

聚类算法之K-means算法详解

文章目录 什么是聚类k-means算法简介牧师-村民模型算法步骤伪代码流程描述手动实现优缺点优点缺点算法调优与改进数据预处理合理选择 K 值手肘法Gap Statistic(间隔统计量)轮廓系数法(Silhouette Coefficient)Canopy算法拍脑袋法采用核函数K-means++ISODATA参考文献<...

电话呼入/呼出CSFB流程介绍

MO CSFB 注册的LAI跟SYS_INFO不同会触发LU流程;LU流程结束后,判断LOCATION UPDATING ACCEPT消息中的"Follow-on proceed"参数状态。(1)如果IE消息中有"Follow-on proceed",终端直接发送CM Service Request; (2)如果IE消息中没有"Follow-on procee…...

【比赛合集】9场可报名的「创新应用」、「程序设计」大奖赛,任君挑选!

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号同时会推送最新的比赛消息&#xff0c;欢迎关注&#xff01;更多比赛信息见 CompHub主页 或 点击文末阅读原文以下信息仅供参考&#xff0c;以比赛官网为准目录创新应用赛&…...

剑指 Offer 27. 二叉树的镜像

剑指 Offer 27. 二叉树的镜像 难度&#xff1a;easy\color{Green}{easy}easy 题目描述 请完成一个函数&#xff0c;输入一个二叉树&#xff0c;该函数输出它的镜像。 例如输入&#xff1a; 镜像输出&#xff1a; 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,…...

RPC编程:RPC概述和架构演变

RPC编程系列文章第一篇一&#xff1a;引言1&#xff1a;本系列文章的目标2&#xff1a;RPC的概念二&#xff1a;架构的演变过程1&#xff1a;单体架构1)&#xff1a;概念2)&#xff1a;特点3)&#xff1a;优缺点2&#xff1a;单体架构水平扩展1)&#xff1a;水平拓展的含义2)&a…...

神经网络训练时只对指定的边更新参数

在神经网络中&#xff0c;通常采用反向传播算法来计算网络中各个参数的梯度&#xff0c;从而进行参数更新。在反向传播过程中&#xff0c;所有的参数都会被更新。因此&#xff0c;如果想要只更新指定的边&#xff0c;需要采用特殊的方法。 一种可能的方法是使用掩码&#xff0…...

Python列表list操作-遍历、查找、增加、删除、修改、排序

在使用列表的时候需要用到很多方法&#xff0c;例如遍历列表、查找元素、增加元素、删除元素、改变元素、插入元素、列表排序、逆序列表等操作。 1、遍历列表 遍历列表通常采用for循环的方式以及for循环和enumerate&#xff08;&#xff09;函数搭配的方式去实现。 1&#xff…...

Python开发-学生管理系统

文章目录1、需求分析2、系统设计3、系统开发必备4、主函数设计5、 学生信息维护模块设计6、 查询/统计模块设计7、排序模块设计8、 项目打包1、需求分析 学生管理系统应具备的功能&#xff1a; ●添加学生及成绩信息 ●将学生信息保存到文件中 ●修改和删除学生信息 ●查询学生…...

大数据处理 - Trie树/数据库/倒排索引

Trie树Trie树的介绍和实现请参考 树 - 前缀树(Trie)适用范围: 数据量大&#xff0c;重复多&#xff0c;但是数据种类小可以放入内存基本原理及要点: 实现方式&#xff0c;节点孩子的表示方式扩展: 压缩实现。一些适用场景&#xff1a;寻找热门查询: 查询串的重复度比较高&#…...

jjava企业级开发-01

一、Spring容器演示 采用Spring配置文件管理Bean 1、创建Maven项目 修改项目的Maven配置 2、添加Spring依赖 在Maven仓库里查找Spring框架&#xff08;https://mvnrepository.com&#xff09; 同上添加其他依赖 <?xml version"1.0" encoding"UTF-8…...

「事务一致性」事务afterCommit

在事务还没有执行完消息就已经发出去了, 导致后续的一些数据或逻辑上的问题产生。场景如下&#xff1a;异步-记录日志&#xff1a;当事务提交后&#xff0c;再记录日志。发送mq消息&#xff1a;只有业务数据都存入表后&#xff0c;再发mq消息。方案1. 利用TransactionSynchroni…...

【深度学习编译器系列】2. 深度学习编译器的通用设计架构

在【深度学习编译器系列】1. 为什么需要深度学习编译器&#xff1f;中我们了解到了为什么需要深度学习编译器&#xff0c;和什么是深度学习编译器&#xff0c;接下来我们把深度学习编译器这个小黑盒打开&#xff0c;看看里面有什么东西。 1. 深度学习编译器的通用设计架构 与…...

图解操作系统

硬件结构 CPU是如何执行程序的&#xff1f; 图灵机的工作方式 图灵机的基本思想&#xff1a;用机器来模拟人们用纸笔进行数学运算的过程&#xff0c;还定义了由计算机的那些部分组成&#xff0c;程序又是如何执行的。 图灵机的基本组成如下&#xff1a; 有一条「纸带」&am…...

【发版或上线项目保姆级心得】

第一步&#xff1a;先在正式环境创建数据库/新增表格或者字段 在数据库表中增加字段/表格&#xff0c;不会报错。 但是切记不要过早数据库字段/表格或者删除字段/表格 第二步&#xff1a;修改配置文件 先将正式环境需要的配置给写好&#xff0c;包括但不仅限于数据库配置、…...

Python数据分析-pandas库入门

pandas 库概述pandas 提供了快速便捷处理结构化数据的大量数据结构和函数。自从2010年出现以来&#xff0c;它助使 Python 成为强大而高效的数据分析环境。pandas使用最多的数据结构对象是 DataFrame&#xff0c;它是一个面向列&#xff08;column-oriented&#xff09;的二维表…...

MacBook Pro 恢复出厂设置

目录1.恢复出厂设置1.1 按Command-R 键1.2 macOS 实用工具1.3 从 macOS 恢复功能的实用工具窗口中选择“磁盘工具”&#xff0c;然后点按“继续”1.4 在“磁盘工具”边栏中选择您的设备或宗卷。1.5 点按“抹掉”按钮或标签页1.6 抹掉OS X HD - 数据 完成1.7 抹掉 OS X HD1.8 查…...

googletest 笔记

什么是一个好的测试 1 测试应该是独立的和可重复的。调试一个由于其他测试而成功或 失败的测试是一件痛苦的事情。googletest 通过在不同的对象上 运行测试来隔离测试。当测试失败时&#xff0c;googletest 允许您单独运 行它以快速调试。 2 测试应该很好地“组织”&#xff0c…...

MySQL修改密码的几种方式?

第一种方式&#xff1a; 最简单的方法就是借助第三方工具Navicat for MySQL来修改。方法如下&#xff1a; 1、登录mysql到指定库&#xff0c;如&#xff1a;登录到test库。 2、然后点击上方"用户"按钮。 3、选择要更改的用户名&#xff0c;然后点击上方的"编辑用…...

关于画一个句号--基于2022年终总结的反思与分享

没有平台鼓风造势&#xff0c;今年各大平台没有涌现出一批总结&#xff0c;非常清爽 正如同人发明了抽屉&#xff0c;将杂物进行整理、丢弃、收纳&#xff0c;才能对空间进行更合理地使用。我们也需要对知识、过往经历进行整理、丢弃、收纳&#xff0c;才能对大脑进行更合理地…...