矩阵求导公式
时间: 2025-05-26 16:20:22 浏览: 49
### 矩阵求导公式的概述
在深度学习和机器学习领域,矩阵求导是一种重要的工具,用于优化模型参数并计算梯度。以下是几个常见的矩阵求导公式及其解释:
#### 1. 向量对标量的求导
假设 $\mathbf{y} = [y_1, y_2, \dots, y_n]^T$ 是一个 $n$ 维列向量,而 $x$ 是一个标量,则按照分子布局定义:
$$
\frac{\partial \mathbf{y}}{\partial x} =
\begin{bmatrix}
\frac{\partial y_1}{\partial x} \\
\frac{\partial y_2}{\partial x} \\
\vdots \\
\frac{\partial y_n}{\partial x}
\end{bmatrix}.
$$
这表示向量中的每个元素分别对 $x$ 进行求导[^2]。
---
#### 2. 标量对向量的求导
设 $f(\mathbf{x})$ 是一个关于向量 $\mathbf{x}$ 的标量函数,则其梯度为:
$$
\nabla_{\mathbf{x}} f(\mathbf{x}) =
\begin{bmatrix}
\frac{\partial f}{\partial x_1}, & \frac{\partial f}{\partial x_2}, & \cdots, & \frac{\partial f}{\partial x_n}
\end{bmatrix},
$$
其中每一项是对应变量的偏导数[^3]。
---
#### 3. 矩阵乘法的求导
对于两个矩阵 $\mathbf{A} \in \mathbb{R}^{m \times n}$ 和 $\mathbf{B} \in \mathbb{R}^{n \times p}$,它们的乘积记作 $\mathbf{C} = \mathbf{AB}$。则有如下关系成立:
$$
\frac{\partial (\text{tr}(\mathbf{ABC}))}{\partial \mathbf{X}} = \mathbf{B}^\top \mathbf{A}^\top,
$$
这里 tr 表示迹运算 (trace),$\mathbf{X}$ 可以是任意参与该表达式的矩阵之一[^1]。
---
#### 4. 函数复合规则下的链式法则应用实例
考虑损失函数形式如 $L(w)=h(g(f(x;w)))$, 需要通过反向传播算法依次计算各层贡献时会频繁遇到类似结构:
$$
\frac {d L }{ d w}= \sum _ k {\Bigg(}\underbrace {{\bigg(}{\frac {\partial h_k}{\partial g_k}}{\cdot }\,{\frac {\partial g_k}{\partial f_k}}{\bigg)}}_{{\text{(中间激活)} }}{\cdot }\,\underbrace {{\frac {\partial f_k}{\partial w}}} _{{\text {(权重影响)}}}{\Bigg)},
$$
此过程体现了复杂的嵌套依赖如何分解成简单局部变化率组合[^3].
---
```python
import numpy as np
def gradient_vector_scalar(y, x):
""" 计算向量 y 对标量 x 的导数 """
grad = np.array([np.gradient(y_i, x) for y_i in y])
return grad.reshape(-1, 1)
# 示例输入
y = np.array([[1], [2], [3]])
x = np.linspace(0, 1, len(y))
result = gradient_vector_scalar(y, x)
print(result)
```
阅读全文
相关推荐


















