矩阵求导法则
时间: 2025-05-25 13:59:16 浏览: 24
### 关于矩阵求导的数学法则和公式
#### 矩阵向量求导链式法则
在机器学习中,矩阵向量求导是一个重要的工具。特别是在神经网络反向传播算法中,链式法则是核心之一。假设 \( f \) 是一个由多个函数复合而成的目标函数,则其梯度可以通过链式法则计算得出。具体来说,如果存在中间变量 \( z \),则目标函数相对于输入参数 \( x \) 的偏导数可以表示为:
\[
\frac{\partial f}{\partial x} = \frac{\partial f}{\partial z} \cdot \frac{\partial z}{\partial x}
\]
其中,\( \frac{\partial f}{\partial z} \) 和 \( \frac{\partial z}{\partial x} \) 都是以适当布局(如分子布局或分母布局)排列的矩阵或向量[^1]。
---
#### 分子布局下的基本规则
在分子布局下,矩阵的行被视为“分子”,列被视为“分母”。以下是几个常见的矩阵求导公式:
1. **标量对向量的导数**
如果 \( y=f(x) \) 是一个标量函数,且 \( x=[x_1, x_2, ..., x_n]^T \) 是一个列向量,则:
\[
\frac{\partial y}{\partial x} =
\begin{bmatrix}
\frac{\partial y}{\partial x_1}, & \frac{\partial y}{\partial x_2}, & ... ,& \frac{\partial y}{\partial x_n}
\end{bmatrix}^T
\]
2. **向量对标量的导数**
假设 \( y=[y_1, y_2,...,y_m]^T \) 是一个列向量,而 \( x \) 是一个标量,则:
\[
\frac{\partial y}{\partial x} =
\begin{bmatrix}
\frac{\partial y_1}{\partial x}\\
\frac{\partial y_2}{\partial x}\\
...\\
\frac{\partial y_m}{\partial x}
\end{bmatrix}
\]
3. **线性变换的导数**
对于 \( y=Ax+b \),其中 \( A \) 是常数矩阵,\( b \) 是常数向量,则有:
\[
\frac{\partial y}{\partial x} = A^T
\][^2]
4. **二次型的导数**
若 \( y=x^TAx \),其中 \( A \) 是对称矩阵,则:
\[
\frac{\partial y}{\partial x} = (A+A^T)x
\]
当 \( A \) 为对称矩阵时,简化为 \( 2Ax \)[^3]。
---
#### 实战案例:最小二乘问题
考虑经典的最小二乘问题,给定数据点 \( X \in R^{m\times n} \) 和标签 \( Y \in R^m \),寻找权重 \( W \in R^n \) 来使损失函数最小化。损失函数定义如下:
\[
L(W) = \|Y-XW\|^2
\]
对其展开并取导数可得:
\[
\frac{\partial L}{\partial W} = -2X^T(Y-XW)
\]
令该导数等于零即可解出最优权值 \( W=(X^TX)^{-1}X^TY \)[^3]。
---
```python
import numpy as np
# 定义数据
X = np.array([[1, 2], [3, 4]])
Y = np.array([5, 7])
# 计算最终权重
XT_X_inv = np.linalg.inv(np.dot(X.T, X))
W_optimal = np.dot(np.dot(XT_X_inv, X.T), Y)
print("Optimal Weights:", W_optimal)
```
---
#### 总结
以上介绍了矩阵求导的一些基础法则及其应用场景。这些方法不仅适用于传统机器学习模型,在深度学习框架中也广泛用于自动微分系统的实现。
阅读全文
相关推荐

















