向量求导规则

假设 x\boldsymbol xx,a\boldsymbol aa是列向量,A\boldsymbol AA是矩阵。

1. 基础线性规则(最常用)

  1. ∂(aTx)∂x=a\frac{\partial (\boldsymbol a^T \boldsymbol x)}{\partial \boldsymbol x} = \boldsymbol a∂x∂(aTx)=a
  2. ∂(xTa)∂x=a\frac{\partial (\boldsymbol x^T \boldsymbol a)}{\partial \boldsymbol x} = \boldsymbol a∂x∂(xTa)=a
  3. ∂(Ax)∂x=AT\frac{\partial (\boldsymbol A \boldsymbol x)}{\partial \boldsymbol x} = \boldsymbol A^T∂x∂(Ax)=AT

2. 二次型求导

  1. ∂(xTAx)∂x=(A+AT)x\frac{\partial (\boldsymbol x^T \boldsymbol A \boldsymbol x)}{\partial \boldsymbol x} = (\boldsymbol A + \boldsymbol A^T) \boldsymbol x∂x∂(xTAx)=(A+AT)x
    如果 AT=A\boldsymbol A^T = \boldsymbol AAT=A (A\boldsymbol AA为对称矩阵),则 ∂(xTAx)∂x=2Ax\frac{\partial (\boldsymbol x^T \boldsymbol A \boldsymbol x)}{\partial \boldsymbol x} = 2 \boldsymbol A \boldsymbol x∂x∂(xTAx)=2Ax

3. 链式法则

假设 yyy 是 u\boldsymbol uu 的函数,而 u\boldsymbol uu 是 x\boldsymbol xx 的函数:
∂y∂x=(∂u∂x)T∂y∂u \frac{\partial y}{\partial \boldsymbol x} = \left( \frac{\partial \boldsymbol u}{\partial \boldsymbol x} \right)^T \frac{\partial y}{\partial \boldsymbol u} ∂x∂y=(∂x∂u)T∂u∂y

4. 实战演示:求线性回归代价函数的梯度

代价函数:
J=12∥Xθ−y∥2=12(Xθ−y)T(Xθ−y)=12(θTXTXθ−2yTXθ+yTy)\begin{aligned} J = & \frac{1}{2} \|\boldsymbol X \boldsymbol \theta - \boldsymbol y\|^2 \\ = & \frac{1}{2} (\boldsymbol X \boldsymbol \theta - \boldsymbol y)^T (\boldsymbol X \boldsymbol \theta - \boldsymbol y) \\ = &\frac{1}{2} (\boldsymbol \theta^T \boldsymbol X^T \boldsymbol X \boldsymbol \theta - 2 \boldsymbol y^T \boldsymbol X \boldsymbol \theta + \boldsymbol y^T \boldsymbol y) \end{aligned}J===21∥Xθ−y∥221(Xθ−y)T(Xθ−y)21(θTXTXθ−2yTXθ+yTy)

对 θ\boldsymbol \thetaθ 求偏导:
∇J(θ)=XTXθ−XTy \nabla J (\boldsymbol \theta) = \boldsymbol X^T \boldsymbol X \boldsymbol \theta - \boldsymbol X^T \boldsymbol y ∇J(θ)=XTXθ−XTy

5. 记忆小窍门

  1. 形状匹配:导数的结果形状必须和原变量 x\boldsymbol xx的形状一模一样(如果 x\boldsymbol xx 是列向量,导数也是列向量)。
  2. 转置标志:如果在求导过程中发现形状对不上,通常是漏掉了一个转置。
  3. 对比标量:先想标量怎么求导,在大脑里把系数换成矩阵/向量,最后根据形状调整转置。
相关推荐
IT_陈寒2 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
甲维斯2 小时前
Claude Opus5手搓“NewAPI Plus”首轮成果!
人工智能
程序猿DD2 小时前
分享两个我每天都在用的 Skill,拖进豆包就能跑,限时领 30 天会员
人工智能
阿里云大数据AI技术2 小时前
Agentic Search 2.0:从单轮对话迈向企业级 AI 搜索自动驾驶Agent
人工智能·elasticsearch·agent
东风破_2 小时前
从 messages 数组到 Memory:大模型到底是怎么“记住”上一轮对话的?
人工智能
AEI3 小时前
四年间大模型的演进历程
人工智能·面试·程序员
狂师3 小时前
阿里开源:skill-up,一款Agent Skill 评测工具!
人工智能·开源·agent
武子康3 小时前
同一套 Agent Runtime,为什么 Web、Headless 和 Python SDK 仍然不是同一个产品
人工智能·llm·agent
天天代码码天天3 小时前
一个纯 C 的 OCR Runtime,又向前走了一步:lw.PPOCR.C preview.5 发布
人工智能
程序员cxuan3 小时前
Claude 官方的学习教程,太强了。
人工智能·后端·程序员