Skip to content

2.6 矩阵微积分

当你对一个向量或矩阵求导时,就是矩阵微积分。这是线性回归、组合优化、神经网络反向传播的数学基础。


一、向量求导的直觉

在一元函数中,导数 f(x)f'(x) 告诉你"输入变一点点,输出变多少"。

在多元函数中,f(x)f(\boldsymbol{x})nn 个输入。导数是一个向量——每个分量对应一个输入的敏感度。

fx=[fx1fx2fxn]\frac{\partial f}{\partial \boldsymbol{x}} = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}

这就是你已经见过的梯度


二、三个最常用的公式

2.1 线性函数:f(x)=aTxf(\boldsymbol{x}) = \boldsymbol{a}^T \boldsymbol{x}

x(aTx)=a\frac{\partial}{\partial \boldsymbol{x}} (\boldsymbol{a}^T \boldsymbol{x}) = \boldsymbol{a}

手算a=[2,3]\boldsymbol{a} = [2, 3]x=[x1,x2]\boldsymbol{x} = [x_1, x_2]

aTx=2x1+3x2\boldsymbol{a}^T \boldsymbol{x} = 2x_1 + 3x_2

fx1=2,fx2=3f=[23]=a\frac{\partial f}{\partial x_1} = 2,\quad \frac{\partial f}{\partial x_2} = 3 \quad\Rightarrow\quad \nabla f = \begin{bmatrix} 2 \\ 3 \end{bmatrix} = \boldsymbol{a}

2.2 二次型:f(x)=xTAxf(\boldsymbol{x}) = \boldsymbol{x}^T A \boldsymbol{x}AA 对称)

x(xTAx)=2Ax\frac{\partial}{\partial \boldsymbol{x}} (\boldsymbol{x}^T A \boldsymbol{x}) = 2A\boldsymbol{x}

手算A=[2113]A = \begin{bmatrix} 2 & 1 \\ 1 & 3 \end{bmatrix}x=[x1,x2]\boldsymbol{x} = [x_1, x_2]

xTAx=2x12+2x1x2+3x22\boldsymbol{x}^T A \boldsymbol{x} = 2x_1^2 + 2x_1x_2 + 3x_2^2

fx1=4x1+2x2,fx2=2x1+6x2\frac{\partial f}{\partial x_1} = 4x_1 + 2x_2,\quad \frac{\partial f}{\partial x_2} = 2x_1 + 6x_2

写成矩阵:2Ax=2[2113][x1x2]=[4x1+2x22x1+6x2]2A\boldsymbol{x} = 2 \begin{bmatrix} 2 & 1 \\ 1 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 4x_1 + 2x_2 \\ 2x_1 + 6x_2 \end{bmatrix}

2.3 最小二乘

目标:L(β)=yXβ2L(\boldsymbol{\beta}) = \|\boldsymbol{y} - X\boldsymbol{\beta}\|^2

展开:(yXβ)T(yXβ)=yTy2βTXTy+βTXTXβ(\boldsymbol{y} - X\boldsymbol{\beta})^T (\boldsymbol{y} - X\boldsymbol{\beta}) = \boldsymbol{y}^T\boldsymbol{y} - 2\boldsymbol{\beta}^T X^T \boldsymbol{y} + \boldsymbol{\beta}^T X^T X \boldsymbol{\beta}

β\boldsymbol{\beta} 求导:

Lβ=2XTy+2XTXβ\frac{\partial L}{\partial \boldsymbol{\beta}} = -2X^T\boldsymbol{y} + 2X^T X \boldsymbol{\beta}

令为零得正规方程:XTXβ=XTyX^T X \boldsymbol{\beta} = X^T \boldsymbol{y},所以 β^=(XTX)1XTy\hat{\boldsymbol{\beta}} = (X^T X)^{-1} X^T \boldsymbol{y}


三、量化应用

3.1 Markowitz 最优组合

目标:minwTΣw\min \boldsymbol{w}^T \Sigma \boldsymbol{w},约束 1Tw=1\boldsymbol{1}^T \boldsymbol{w} = 1

拉格朗日函数:L=wTΣwλ(1Tw1)\mathcal{L} = \boldsymbol{w}^T \Sigma \boldsymbol{w} - \lambda(\boldsymbol{1}^T \boldsymbol{w} - 1)

w\boldsymbol{w} 求导:2Σwλ1=0w=λ2Σ112\Sigma \boldsymbol{w} - \lambda \boldsymbol{1} = 0 \quad\Rightarrow\quad \boldsymbol{w} = \frac{\lambda}{2} \Sigma^{-1} \boldsymbol{1}

3.2 线性回归

python
import numpy as np

# 生成数据
np.random.seed(42)
X = np.random.randn(100, 3)
beta_true = np.array([2.0, -1.5, 0.5])
y = X @ beta_true + np.random.randn(100) * 0.1

# 解析解
beta_hat = np.linalg.inv(X.T @ X) @ (X.T @ y)
print(f"真实 β: {beta_true}")
print(f"估计 β: {beta_hat.round(4)}")

小结

场景公式应用
线性函数xaTx=a\frac{\partial}{\partial \boldsymbol{x}} \boldsymbol{a}^T \boldsymbol{x} = \boldsymbol{a}因子暴露度
二次型xxTAx=2Ax\frac{\partial}{\partial \boldsymbol{x}} \boldsymbol{x}^T A \boldsymbol{x} = 2A\boldsymbol{x}组合方差求导
最小二乘2XT(yXβ)-2X^T(\boldsymbol{y} - X\boldsymbol{\beta})线性回归
Markowitz2Σwλ1=02\Sigma\boldsymbol{w} - \lambda\boldsymbol{1} = 0最优组合
\n> 下一步:继续学习 03 概率论

Built with VitePress