矩阵的导数运算2——链式法则

假设 J = f ( y ( u ) ) J=f(y(u)) J=f(y(u)) ,已知标量复合函数对标量 的求导:
∂ J ∂ u = ∂ J ∂ y ∂ y ∂ u \frac{\partial J}{\partial u}=\frac{\partial J}{\partial y} \frac{\partial y}{\partial u} ∂u∂J=∂y∂J∂u∂y

以此类推,假设 J = f ( y → ( u → ) ) J=f(\overrightarrow{y}(\overrightarrow{u})) J=f(y (u )), y → = y 1 ( u → ) . . y m ( u → ) m × 1 \overrightarrow{y}= \begin{bmatrix} y_1(\overrightarrow{u}) \\ .\\ .\\ y_m(\overrightarrow{u})\\ \end{bmatrix}{m\times1} y = y1(u )..ym(u ) m×1, u → = u 1 . . u n n × 1 \overrightarrow{u}= \begin{bmatrix} u_1\\ .\\ .\\ u_n\\ \end{bmatrix}{n\times1} u = u1..un n×1,则标量复合函数对向量的求导(分母布局):
∂ J ∂ u → = ∂ J ∂ y → m × 1 ∂ y → ∂ u → n × m \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial J}{\partial \overrightarrow{y}}{m\times 1} \frac{\partial \overrightarrow{y}}{\partial \overrightarrow{u}}{n\times m} ∂u ∂J=∂y ∂Jm×1∂u ∂y n×m

可以发现矩阵的行列无法满足相乘规则,无法相乘

最终通过推导可以得出标量复合函数对向量的求导(分母布局)的正确形式
∂ J ∂ u → = ∂ y → ∂ u → n × m ∂ J ∂ y → m × 1 \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial \overrightarrow{y}}{\partial \overrightarrow{u}}{n\times m} \frac{\partial J}{\partial \overrightarrow{y}}{m\times 1} ∂u ∂J=∂u ∂y n×m∂y ∂Jm×1

例,性能指标、代价函数

状态变量 x → k + 1 = A x → k + B u → k \overrightarrow{x}{k+1}=A\overrightarrow{x}{k}+B\overrightarrow{u}{k} x k+1=Ax k+Bu k,代价函数 J = x → k + 1 T x → k + 1 J=\overrightarrow{x}^T{k+1}\overrightarrow{x}{k+1} J=x k+1Tx k+1,则根据上式可得:
∂ J ∂ u → = ∂ x → k + 1 ∂ u → k ∂ J ∂ x → k + 1 \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial \overrightarrow{x}
{k+1}}{\partial \overrightarrow{u}{k}} \frac{\partial J}{\partial \overrightarrow{x}{k+1}} ∂u ∂J=∂u k∂x k+1∂x k+1∂J

其中 ∂ x → k + 1 ∂ u → k = ∂ ( A x → k + B u → k ) ∂ u → k = B T \frac{\partial \overrightarrow{x}{k+1}}{\partial \overrightarrow{u}{k}}=\frac{\partial (A\overrightarrow{x}{k}+B\overrightarrow{u}{k})}{\partial \overrightarrow{u}{k}}=B^T ∂u k∂x k+1=∂u k∂(Ax k+Bu k)=BT(向量方程对向量的求导常用特例1), ∂ J ∂ x → k + 1 = ∂ ( x → k + 1 T x → k + 1 ) ∂ x → k + 1 = 1 x → k + 1 + 1 T x → k + 1 = 2 x → k + 1 \frac{\partial J}{\partial \overrightarrow{x}{k+1}}=\frac{\partial (\overrightarrow{x}^T_{k+1}\overrightarrow{x}{k+1})}{\partial \overrightarrow{x}{k+1}}=1\overrightarrow{x}{k+1}+1^T\overrightarrow{x}{k+1}=2\overrightarrow{x}{k+1} ∂x k+1∂J=∂x k+1∂(x k+1Tx k+1)=1x k+1+1Tx k+1=2x k+1(向量方程对向量的求导常用特例2),将这两式代入上述最终可得:
∂ J ∂ u → = ∂ x → k + 1 ∂ u → k ∂ J ∂ x → k + 1 = 2 B T x → k + 1 \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial \overrightarrow{x}
{k+1}}{\partial \overrightarrow{u}{k}} \frac{\partial J}{\partial \overrightarrow{x}{k+1}}=2B^T\overrightarrow{x}_{k+1} ∂u ∂J=∂u k∂x k+1∂x k+1∂J=2BTx k+1

相关推荐
hold?fish:palm17 小时前
18 矩阵置0
线性代数·算法·矩阵
hold?fish:palm18 小时前
19 螺旋矩阵
线性代数·算法·矩阵
larito20 小时前
图形学基础(面试版)
线性代数·矩阵
青象矩阵解码器2 天前
2026年HDMI矩阵供应商实力对决,谁更胜一筹?
矩阵
SNAKEpc121383 天前
OpenGL(十一)- 变换管线
c语言·c++·算法·矩阵·图形渲染
中年阿甘3 天前
解析式布局-二次线长布局
线性代数·算法·矩阵
xier_ran3 天前
【infra之路】W_Q、W_K、W_V矩阵是如何训练出来的
线性代数·矩阵·transformer
乱七八糟的屋子4 天前
MTL4 (Matrix Template Library) 超详细实战教程|C++高性能稠密/稀疏矩阵计算
c++·矩阵·稀疏矩阵·mtl4·matrixtemplate·c++线性代数·高性能数值计算
小趴蔡ha4 天前
03 NumPy 入门:机器学习中的数组和矩阵
python·线性代数·机器学习·numpy
乱七八糟的屋子4 天前
TooN 超详细入门实战教程|C++轻量极致精简矩阵库(机器人/SLAM专用)
矩阵·机器人·数值计算·slam·c++矩阵库·轻量线性代数·机器人数学