矩阵求导
矩阵对标量的求导
矩阵对标量的求导可以通过矩阵的每个元素对标量的偏导数构成的矩阵来表示。这个过程被称为矩阵的分量求导(component-wise differentiation)。
假设有一个矩阵 A A A,它是一个 m × n m \times n m×n的矩阵,每个元素 a i j a_{ij} aij是关于标量变量 x x x 的函数。那么,矩阵 A A A 对标量 x x x 的求导(记为 d A d x \frac{dA}{dx} dxdA)可以表示为一个与 A A A 同型的矩阵,其每个元素是 a i j a_{ij} aij对 x x x的偏导数。
数学表达式为:
如果 A = [ a i j ] A = [a_{ij}] A=[aij],其中 a i j a_{ij} aij是关于 x x x的函数,那么 d A d x = [ ∂ a i j ∂ x ] \frac{dA}{dx} = [\frac{\partial a_{ij}}{\partial x}] dxdA=[∂x∂aij]。
换句话说,矩阵对标量的求导就是对矩阵中的每个元素分别求关于标量的偏导数,结果构成一个同型的矩阵。
举个例子,如果有矩阵 A = [ x 2 2 x 3 x sin ( x ) ] A = \begin{bmatrix} x^2 & 2x \\ 3x & \sin(x) \end{bmatrix} A=[x23x2xsin(x)],那么对 x x x的求导就是:
d A d x = [ d ( x 2 ) d x d ( 2 x ) d x d ( 3 x ) d x d ( sin ( x ) ) d x ] = [ 2 x 2 3 cos ( x ) ] \frac{dA}{dx} = \begin{bmatrix} \frac{d(x^2)}{dx} & \frac{d(2x)}{dx} \\ \frac{d(3x)}{dx} & \frac{d(\sin(x))}{dx} \end{bmatrix} = \begin{bmatrix} 2x & 2 \\ 3 & \cos(x) \end{bmatrix} dxdA=[dxd(x2)dxd(3x)dxd(2x)dxd(sin(x))]=[2x32cos(x)]
这种方式适用于矩阵中的每个元素都是关于同一个标量变量的函数的情况。
矩阵对向量的求导
当矩阵对向量求导时,我们在矩阵的每个元素与向量中的每个元素之间都进行求导,结果是一个三维数组,也称为张量。
假设有一个矩阵 A A A,它是一个 m × n m \times n m×n的矩阵,每个元素 a i j a_{ij} aij 是关于向量 x x x的函数。那么,矩阵 A A A对向量 x x x的求导(记为 d A d x \frac{dA}{dx} dxdA)是一个由若干 m × n m \times n m×n的矩阵组成的三维数组。
数学表达式为:
如果 A = [ a i j ] A = [a_{ij}] A=[aij],其中 a i j a_{ij} aij 是关于 x x x的函数,那么 d A d x \frac{dA}{dx} dxdA是一个三维数组,其每个元素是一个 m × n m \times n m×n 的矩阵,表示矩阵 A A A的每个元素对向量 x x x的偏导数矩阵。
具体地说,对于矩阵 A A A中的每个元素 a i j a_{ij} aij,我们分别对向量 x x x中的每个分量进行偏导数求导。
举个例子,如果有矩阵 A = [ x 1 2 2 x 2 3 x 1 sin ( x 2 ) ] A = \begin{bmatrix} x_1^2 & 2x_2 \\ 3x_1 & \sin(x_2) \end{bmatrix} A=[x123x12x2sin(x2)],其中 x = [ x 1 x 2 ] x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} x=[x1x2],那么对 x x x的求导就是:
d
A
d
x
=
[
d
(
x
1
2
)
d
x
1
d
(
2
x
2
)
d
x
1
d
(
3
x
1
)
d
x
1
d
(
sin
(
x
2
)
)
d
x
1
]
=
[
2
x
1
0
3
0
]
,
[
d
(
x
1
2
)
d
x
2
d
(
2
x
2
)
d
x
2
d
(
3
x
1
)
d
x
2
d
(
sin
(
x
2
)
)
d
x
2
]
=
[
0
2
0
cos
(
x
2
)
]
\frac{dA}{dx} = \begin{bmatrix} \frac{d(x_1^2)}{dx_1} & \frac{d(2x_2)}{dx_1} \\ \frac{d(3x_1)}{dx_1} & \frac{d(\sin(x_2))}{dx_1} \end{bmatrix} = \begin{bmatrix} 2x_1 & 0 \\ 3 & 0 \end{bmatrix}, \begin{bmatrix} \frac{d(x_1^2)}{dx_2} & \frac{d(2x_2)}{dx_2} \\ \frac{d(3x_1)}{dx_2} & \frac{d(\sin(x_2))}{dx_2} \end{bmatrix} = \begin{bmatrix} 0 & 2 \\ 0 & \cos(x_2) \end{bmatrix}
dxdA=[dx1d(x12)dx1d(3x1)dx1d(2x2)dx1d(sin(x2))]=[2x1300],[dx2d(x12)dx2d(3x1)dx2d(2x2)dx2d(sin(x2))]=[002cos(x2)]
这样的结果会构成一个三维数组,每个矩阵是矩阵
A
A
A 中相应元素对向量
x
x
x 的偏导数矩阵。
矩阵对矩阵求导
矩阵对矩阵的求导涉及到两个矩阵,对其中一个矩阵中的每个元素对另一个矩阵中的每个元素进行求导,结果是一个四维数组。
假设有一个矩阵 A A A,它是一个 m × n m \times n m×n的矩阵,每个元素 a i j a_{ij} aij是关于另一个矩阵 X X X中元素的函数。那么,矩阵 A A A对矩阵 X X X的求导(记为 d A d X \frac{dA}{dX} dXdA)是一个由 m × n m \times n m×n的矩阵组成的四维数组。
数学表达式为:
如果 A = [ a i j ] A = [a_{ij}] A=[aij],其中 a i j a_{ij} aij 是关于 X X X 中元素的函数,那么 d A d X \frac{dA}{dX} dXdA是一个四维数组,其每个元素是一个 m × n m \times n m×n 的矩阵,表示矩阵 A A A的每个元素对矩阵 X X X的偏导数矩阵。
具体地说,对于矩阵 A A A中的每个元素 a i j a_{ij} aij,我们分别对矩阵 X X X中的每个元素进行偏导数求导。
举个例子,如果有矩阵 A = [ x 1 x 2 x 3 x 4 ] A = \begin{bmatrix} x_1 & x_2 \\ x_3 & x_4 \end{bmatrix} A=[x1x3x2x4],其中 X = [ x 1 x 2 x 3 x 4 ] X = \begin{bmatrix} x_1 & x_2 \\ x_3 & x_4 \end{bmatrix} X=[x1x3x2x4] 是一个 2 × 2 2 \times 2 2×2的矩阵,那么对 X X X的求导就是:
d A d X = [ d ( x 1 ) d x 1 d ( x 2 ) d x 1 d ( x 3 ) d x 1 d ( x 4 ) d x 1 ] = [ 1 0 0 1 ] , [ d ( x 1 ) d x 2 d ( x 2 ) d x 2 d ( x 3 ) d x 2 d ( x 4 ) d x 2 ] = [ 0 1 0 0 ] , [ d ( x 1 ) d x 3 d ( x 2 ) d x 3 d ( x 3 ) d x 3 d ( x 4 ) d x 3 ] = [ 0 0 1 0 ] , [ d ( x 1 ) d x 4 d ( x 2 ) d x 4 d ( x 3 ) d x 4 d ( x 4 ) d x 4 ] = [ 0 0 0 1 ] \frac{dA}{dX} = \begin{bmatrix} \frac{d(x_1)}{dx_1} & \frac{d(x_2)}{dx_1} \\ \frac{d(x_3)}{dx_1} & \frac{d(x_4)}{dx_1} \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \begin{bmatrix} \frac{d(x_1)}{dx_2} & \frac{d(x_2)}{dx_2} \\ \frac{d(x_3)}{dx_2} & \frac{d(x_4)}{dx_2} \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}, \begin{bmatrix} \frac{d(x_1)}{dx_3} & \frac{d(x_2)}{dx_3} \\ \frac{d(x_3)}{dx_3} & \frac{d(x_4)}{dx_3} \end{bmatrix} = \begin{bmatrix} 0 & 0 \\ 1 & 0 \end{bmatrix}, \begin{bmatrix} \frac{d(x_1)}{dx_4} & \frac{d(x_2)}{dx_4} \\ \frac{d(x_3)}{dx_4} & \frac{d(x_4)}{dx_4} \end{bmatrix} = \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} dXdA=[dx1d(x1)dx1d(x3)dx1d(x2)dx1d(x4)]=[1001],[dx2d(x1)dx2d(x3)dx2d(x2)dx2d(x4)]=[0010],[dx3d(x1)dx3d(x3)dx3d(x2)dx3d(x4)]=[0100],[dx4d(x1)dx4d(x3)dx4d(x2)dx4d(x4)]=[0001]
这样的结果会构成一个四维数组,每个矩阵是矩阵 A A A中相应元素对矩阵 X X X的偏导数矩阵。
标量求导
标量对标量求导
标量对标量求导是求一个标量函数对另一个标量自变量的导数。
假设有一个标量函数 (f(x)),它是关于标量 (x) 的函数。那么, f ( x ) f(x) f(x) 对 x x x 的求导(记为 d f d x \frac{df}{dx} dxdf 或者 f ′ ( x ) f'(x) f′(x))就是函数 (f(x)) 关于 (x) 的导数,表示函数在某点处的斜率或变化率。
数学表达式为:
如果 f = f ( x ) f = f(x) f=f(x),其中 f f f 是关于标量 x x x 的函数,那么 d f d x \frac{df}{dx} dxdf 是 (f) 对 (x) 的导数,表示函数 f ( x ) f(x) f(x) 在某个点处的变化率。
举个例子,如果有一个标量函数 f = x 2 f = x^2 f=x2,那么对 (x) 求导就是:
d f d x = d ( x 2 ) d x = 2 x \frac{df}{dx} = \frac{d(x^2)}{dx} = 2x dxdf=dxd(x2)=2x
这样的结果是一个标量,表示函数 f ( x ) f(x) f(x)在某个点处的变化率,即斜率。
标量对向量求导
当一个标量函数对一个向量求导时,结果是一个向量,通常被称为梯度(gradient)。
假设有一个标量函数 (f),它是关于一个 (n) 维向量 x = [ x 1 , x 2 , … , x n ] \mathbf{x} = [x_1, x_2, \dots, x_n] x=[x1,x2,…,xn] 的函数,即 f = f ( x ) f = f(\mathbf{x}) f=f(x)。那么,标量 f f f 对向量 x \mathbf{x} x 的求导(记为 d f d x \frac{df}{d\mathbf{x}} dxdf 或者 ∇ f \nabla f ∇f)是一个 (n) 维列向量,表示函数 (f) 在每个变量 x i x_i xi上的偏导数。
数学表达式为:
如果 f = f ( x ) f = f(\mathbf{x}) f=f(x),其中 (f) 是关于向量 x \mathbf{x} x的函数,那么 d f d x \frac{df}{d\mathbf{x}} dxdf是一个 (n) 维列向量,其每个分量表示函数 f f f对相应变量 x i x_i xi 的偏导数。
具体地说,对于函数 f f f中的每个变量 x i x_i xi,我们分别对其求偏导数。
举个例子,如果有一个标量函数 f = x 1 2 + 2 x 2 f = x_1^2 + 2x_2 f=x12+2x2,其中 x = [ x 1 , x 2 ] \mathbf{x} = [x_1, x_2] x=[x1,x2],那么对 x \mathbf{x} x 求导就是:
d f d x = [ d ( x 1 2 + 2 x 2 ) d x 1 d ( x 1 2 + 2 x 2 ) d x 2 ] = [ 2 x 1 2 ] \frac{df}{d\mathbf{x}} = \begin{bmatrix} \frac{d(x_1^2 + 2x_2)}{dx_1} \\ \frac{d(x_1^2 + 2x_2)}{dx_2} \end{bmatrix} = \begin{bmatrix} 2x_1 \\ 2 \end{bmatrix} dxdf=[dx1d(x12+2x2)dx2d(x12+2x2)]=[2x12]
这样的结果是一个列向量,其中每个元素是函数 f f f对相应变量的偏导数。
标量对矩阵求导
标量对矩阵的求导结果是一个矩阵。这种情况下,我们将标量函数对矩阵中的每个元素进行偏导数运算,最终得到的是一个与原始矩阵同型的矩阵,其中每个元素是函数对应元素的偏导数。
假设有一个标量函数 (f),它是关于一个 m × n m \times n m×n的矩阵 X X X 中元素的函数,即 f = f ( X ) f = f(X) f=f(X)。那么, f f f对矩阵 X X X 的求导(记为 d f d X \frac{df}{dX} dXdf)是一个与 X X X 同型的矩阵,其每个元素是函数 f f f 对 X X X 中对应元素的偏导数。
数学表达式为:
如果 f = f ( X ) f = f(X) f=f(X),其中 f f f 是关于矩阵 X X X中元素的函数,那么 d f d X \frac{df}{dX} dXdf是一个与 (X) 同型的矩阵,其每个元素是函数 (f) 对 (X) 中对应元素的偏导数。
具体地说,对于函数 f f f中的每个矩阵元素 x i j x_{ij} xij,我们分别对其进行偏导数运算。
举个例子,如果有一个标量函数 f = tr ( X 2 ) f = \text{tr}(X^2) f=tr(X2),其中 (X) 是一个 2 × 2 2 \times 2 2×2 的矩阵,那么对 X X X求导就是:
d f d X = d ( tr ( X 2 ) ) d X = [ d ( tr ( X 2 ) ) d x 11 d ( tr ( X 2 ) ) d x 12 d ( tr ( X 2 ) ) d x 21 d ( tr ( X 2 ) ) d x 22 ] \frac{df}{dX} = \frac{d(\text{tr}(X^2))}{dX} = \begin{bmatrix} \frac{d(\text{tr}(X^2))}{dx_{11}} & \frac{d(\text{tr}(X^2))}{dx_{12}} \\ \frac{d(\text{tr}(X^2))}{dx_{21}} & \frac{d(\text{tr}(X^2))}{dx_{22}} \end{bmatrix} dXdf=dXd(tr(X2))=[dx11d(tr(X2))dx21d(tr(X2))dx12d(tr(X2))dx22d(tr(X2))]
f = tr ( X 2 ) = tr ( X ⋅ X ) = x 11 2 + x 12 x 21 + x 21 x 12 + x 22 2 f = \text{tr}(\mathbf{X}^2) = \text{tr}(\mathbf{X} \cdot \mathbf{X}) = x_{11}^2 + x_{12}x_{21} + x_{21}x_{12} + x_{22}^2 f=tr(X2)=tr(X⋅X)=x112+x12x21+x21x12+x222
现在我们对 f f f对 X \mathbf{X} X中每个元素求偏导数:
d f d x 11 = 2 x 11 , d f d x 12 = x 21 , d f d x 21 = x 12 , d f d x 22 = 2 x 22 \frac{df}{dx_{11}} = 2x_{11}, \quad \frac{df}{dx_{12}} = x_{21}, \quad \frac{df}{dx_{21}} = x_{12}, \quad \frac{df}{dx_{22}} = 2x_{22} dx11df=2x11,dx12df=x21,dx21df=x12,dx22df=2x22
所以, f f f 对矩阵 X \mathbf{X} X 的导数是一个与 X \mathbf{X} X 同型的矩阵:
d f d X = [ 2 x 11 x 21 x 12 2 x 22 ] \frac{df}{d\mathbf{X}} = \begin{bmatrix} 2x_{11} & x_{21} \\ x_{12} & 2x_{22} \end{bmatrix} dXdf=[2x11x12x212x22]
这样的结果是一个与矩阵 X X X 同型的矩阵,其中每个元素表示函数 f f f对应矩阵 X X X中元素的偏导数。
向量求导
向量对标量求导
当一个向量对标量求导时,结果是一个向量。这种情况下,我们求向量中每个元素对标量自变量的偏导数。
假设有一个 (n) 维向量 y = [ y 1 , y 2 , … , y n ] \mathbf{y} = [y_1, y_2, \dots, y_n] y=[y1,y2,…,yn],它是关于标量 x x x 的函数,即 y = y ( x ) \mathbf{y} = \mathbf{y}(x) y=y(x)。那么,向量 y \mathbf{y} y对标量 (x) 的求导(记为 d y d x \frac{d\mathbf{y}}{dx} dxdy 或者 d y d x = [ d y 1 d x , d y 2 d x , … , d y n d x ] \frac{d\mathbf{y}}{dx} = [\frac{dy_1}{dx}, \frac{dy_2}{dx}, \dots, \frac{dy_n}{dx}] dxdy=[dxdy1,dxdy2,…,dxdyn])是一个 n n n 维向量,其中每个分量表示向量 y \mathbf{y} y 中相应元素对 x x x 的偏导数。
数学表达式为:
如果 y = y ( x ) \mathbf{y} = \mathbf{y}(x) y=y(x),其中 y \mathbf{y} y 是关于标量 (x) 的向量函数,那么 d y d x \frac{d\mathbf{y}}{dx} dxdy是一个 n n n维向量,其每个分量表示函数 y \mathbf{y} y 中相应元素对 x x x 的偏导数。
举个例子,如果有一个向量 y = [ x 2 , 2 x , sin ( x ) ] \mathbf{y} = [x^2, 2x, \sin(x)] y=[x2,2x,sin(x)],那么对 x x x 求导就是:
d y d x = [ d ( x 2 ) d x , d ( 2 x ) d x , d ( sin ( x ) ) d x ] = [ 2 x , 2 , cos ( x ) ] \frac{d\mathbf{y}}{dx} = \left[\frac{d(x^2)}{dx}, \frac{d(2x)}{dx}, \frac{d(\sin(x))}{dx}\right] = [2x, 2, \cos(x)] dxdy=[dxd(x2),dxd(2x),dxd(sin(x))]=[2x,2,cos(x)]
这样的结果是一个向量,其中每个元素是函数 y \mathbf{y} y中相应元素对 (x) 的偏导数。
向量对向量求导
当一个向量对另一个向量求导时,结果是一个矩阵。这种情况下,我们对一个向量中的每个元素对另一个向量中的每个元素进行求导,最终得到一个矩阵,通常称为雅可比矩阵。
假设有一个 (m) 维向量 y = [ y 1 , y 2 , … , y m ] \mathbf{y} = [y_1, y_2, \dots, y_m] y=[y1,y2,…,ym],它是关于一个 (n) 维向量 x = [ x 1 , x 2 , … , x n ] \mathbf{x} = [x_1, x_2, \dots, x_n] x=[x1,x2,…,xn] 的函数,即 y = y ( x ) \mathbf{y} = \mathbf{y}(\mathbf{x}) y=y(x)。那么,向量 y \mathbf{y} y 对向量 x \mathbf{x} x 的求导(记为 d y d x \frac{d\mathbf{y}}{d\mathbf{x}} dxdy 或者 J J J)是一个 m × n m \times n m×n 的矩阵,称为雅可比矩阵,其中每个元素 J i j J_{ij} Jij表示向量 y \mathbf{y} y 中第 (i) 个元素对向量 x \mathbf{x} x 中第 (j) 个元素的偏导数。
数学表达式为:
如果 y = y ( x ) \mathbf{y} = \mathbf{y}(\mathbf{x}) y=y(x),其中 y \mathbf{y} y 是关于向量 x \mathbf{x} x 的向量函数,那么 d y d x \frac{d\mathbf{y}}{d\mathbf{x}} dxdy 是一个 m × n m \times n m×n 的矩阵,其每个元素 J i j J_{ij} Jij 表示函数 y \mathbf{y} y 中第 (i) 个元素对向量 x \mathbf{x} x 中第 (j) 个元素的偏导数。
具体地说,对于函数 y \mathbf{y} y 中的每个元素 y i y_i yi,我们分别对向量 x \mathbf{x} x中的每个元素 x j x_j xj进行偏导数运算。
举个例子,如果有一个向量 y = [ x 1 2 + x 2 , sin ( x 1 ) , x 2 x 3 ] \mathbf{y} = [x_1^2 + x_2, \sin(x_1), x_2x_3] y=[x12+x2,sin(x1),x2x3],其中 x = [ x 1 , x 2 , x 3 ] \mathbf{x} = [x_1, x_2, x_3] x=[x1,x2,x3],那么对 x \mathbf{x} x 求导就是:
d y d x = [ d ( x 1 2 + x 2 ) d x 1 d ( x 1 2 + x 2 ) d x 2 d ( x 1 2 + x 2 ) d x 3 d ( sin ( x 1 ) ) d x 1 d ( sin ( x 1 ) ) d x 2 d ( sin ( x 1 ) ) d x 3 d ( x 2 x 3 ) d x 1 d ( x 2 x 3 ) d x 2 d ( x 2 x 3 ) d x 3 ] = [ 2 x 1 1 0 cos ( x 1 ) 0 0 0 x 3 x 2 ] \frac{d\mathbf{y}}{d\mathbf{x}} = \begin{bmatrix} \frac{d(x_1^2 + x_2)}{dx_1} & \frac{d(x_1^2 + x_2)}{dx_2} & \frac{d(x_1^2 + x_2)}{dx_3} \\ \frac{d(\sin(x_1))}{dx_1} & \frac{d(\sin(x_1))}{dx_2} & \frac{d(\sin(x_1))}{dx_3} \\ \frac{d(x_2x_3)}{dx_1} & \frac{d(x_2x_3)}{dx_2} & \frac{d(x_2x_3)}{dx_3} \end{bmatrix} = \begin{bmatrix} 2x_1 & 1 & 0 \\ \cos(x_1) & 0 & 0 \\ 0 & x_3 & x_2 \end{bmatrix} dxdy= dx1d(x12+x2)dx1d(sin(x1))dx1d(x2x3)dx2d(x12+x2)dx2d(sin(x1))dx2d(x2x3)dx3d(x12+x2)dx3d(sin(x1))dx3d(x2x3) = 2x1cos(x1)010x300x2
这样的结果是一个矩阵,其中每个元素是函数 y \mathbf{y} y 中相应元素对向量 x \mathbf{x} x 中元素的偏导数。
向量对矩阵求导
向量对矩阵求导是一个复杂的概念,通常涉及矩阵微分和张量的操作。这种情况下,我们考虑一个向量对矩阵中每个元素进行求导,结果通常是一个高维张量。
如果有一个 m m m 维向量 y = [ y 1 , y 2 , … , y m ] \mathbf{y} = [y_1, y_2, \dots, y_m] y=[y1,y2,…,ym],它是关于一个 p × q p \times q p×q 的矩阵 X \mathbf{X} X中元素的函数,即 y = y ( X ) \mathbf{y} = \mathbf{y}(\mathbf{X}) y=y(X)。向量 y \mathbf{y} y 对矩阵 X \mathbf{X} X 的求导(记为 d y d X \frac{d\mathbf{y}}{d\mathbf{X}} dXdy)结果是一个高维张量,表示向量 y \mathbf{y} y 中每个元素对矩阵 X \mathbf{X} X 中每个元素的偏导数。
在这种情况下,求导涉及到矩阵微分和张量的操作,结果会是一个高维张量,需要进行复杂的计算。通常情况下,涉及到向量对矩阵的求导不是简单的元素级别的运算,而是需要用到更高级的数学工具和技巧。
让我们考虑一个向量 y = [ y 1 , y 2 ] \mathbf{y} = [y_1, y_2] y=[y1,y2],它是关于一个 2 × 2 2 \times 2 2×2的矩阵 X \mathbf{X} X中元素的函数,即 y = [ x 11 2 + x 12 , sin ( x 21 + x 22 ) ] \mathbf{y} = [x_{11}^2 + x_{12}, \sin(x_{21} + x_{22})] y=[x112+x12,sin(x21+x22)]。
现在要求向量 y \mathbf{y} y 对矩阵 X \mathbf{X} X的求导 d y d X \frac{d\mathbf{y}}{d\mathbf{X}} dXdy。
首先,我们有向量
y
\mathbf{y}
y:
y
=
[
x
11
2
+
x
12
,
sin
(
x
21
+
x
22
)
]
\mathbf{y} = [x_{11}^2 + x_{12}, \sin(x_{21} + x_{22})]
y=[x112+x12,sin(x21+x22)]
对于第一个元素
y
1
=
x
11
2
+
x
12
y_1 = x_{11}^2 + x_{12}
y1=x112+x12,我们对矩阵
X
\mathbf{X}
X 中的每个元素进行求导:
∂
y
1
∂
x
i
j
=
[
∂
(
x
11
2
+
x
12
)
∂
x
11
∂
(
x
11
2
+
x
12
)
∂
x
12
∂
(
x
11
2
+
x
12
)
∂
x
21
∂
(
x
11
2
+
x
12
)
∂
x
22
]
=
[
2
x
11
1
0
0
]
\frac{\partial y_1}{\partial x_{ij}} = \begin{bmatrix} \frac{\partial (x_{11}^2 + x_{12})}{\partial x_{11}} & \frac{\partial (x_{11}^2 + x_{12})}{\partial x_{12}} \\ \frac{\partial (x_{11}^2 + x_{12})}{\partial x_{21}} & \frac{\partial (x_{11}^2 + x_{12})}{\partial x_{22}} \end{bmatrix} = \begin{bmatrix} 2x_{11} & 1 \\ 0 & 0 \end{bmatrix}
∂xij∂y1=[∂x11∂(x112+x12)∂x21∂(x112+x12)∂x12∂(x112+x12)∂x22∂(x112+x12)]=[2x11010]
对于第二个元素
y
2
=
sin
(
x
21
+
x
22
)
y_2 = \sin(x_{21} + x_{22})
y2=sin(x21+x22),同样对矩阵
X
\mathbf{X}
X 中的每个元素进行求导:
∂
y
2
∂
x
i
j
=
[
∂
sin
(
x
21
+
x
22
)
∂
x
11
∂
sin
(
x
21
+
x
22
)
∂
x
12
∂
sin
(
x
21
+
x
22
)
∂
x
21
∂
sin
(
x
21
+
x
22
)
∂
x
22
]
=
[
0
0
cos
(
x
21
+
x
22
)
cos
(
x
21
+
x
22
)
]
\frac{\partial y_2}{\partial x_{ij}} = \begin{bmatrix} \frac{\partial \sin(x_{21} + x_{22})}{\partial x_{11}} & \frac{\partial \sin(x_{21} + x_{22})}{\partial x_{12}} \\ \frac{\partial \sin(x_{21} + x_{22})}{\partial x_{21}} & \frac{\partial \sin(x_{21} + x_{22})}{\partial x_{22}} \end{bmatrix} = \begin{bmatrix} 0 & 0 \\ \cos(x_{21} + x_{22}) & \cos(x_{21} + x_{22}) \end{bmatrix}
∂xij∂y2=[∂x11∂sin(x21+x22)∂x21∂sin(x21+x22)∂x12∂sin(x21+x22)∂x22∂sin(x21+x22)]=[0cos(x21+x22)0cos(x21+x22)]
因此,整体的向量
y
\mathbf{y}
y对矩阵
X
\mathbf{X}
X的导数为:
d
y
d
X
=
[
2
x
11
1
0
0
]
,
[
0
0
cos
(
x
21
+
x
22
)
cos
(
x
21
+
x
22
)
]
\frac{d\mathbf{y}}{d\mathbf{X}} = \begin{bmatrix} 2x_{11} & 1 \\ 0 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 0 \\ \cos(x_{21} + x_{22}) & \cos(x_{21} + x_{22}) \end{bmatrix}
dXdy=[2x11010],[0cos(x21+x22)0cos(x21+x22)]
这样的结果是一个高维张量,其中每个元素是向量 y \mathbf{y} y 中相应元素对矩阵 X \mathbf{X} X 中元素的偏导数。
建议看b站视频,下面的都是视频内容,讲得挺好的
几个常见公式
∇
A
T
x
=
A
\nabla A^Tx=A
∇ATx=A
∇
x
T
A
x
=
(
A
+
A
T
)
x
\nabla x^TAx=(A+A^T)x
∇xTAx=(A+AT)x
∇
2
x
T
A
x
=
A
+
A
T
\nabla^2 x^TAx=A+A^T
∇2xTAx=A+AT