返回 数理基础 思维导图
中文·English
📐 数理基础ID: matrix-calculus-deep

矩阵求导与 Softmax 梯度

Matrix Calculus & Softmax Gradient
🎯核心定义
矩阵求导与 Softmax 梯度是推导面试的“白板基本功”。核心一: 二次型求导。展开 xTAx=i,jxiAijxjx^TAx = \sum_{i,j} x_i A_{ij} x_j,对 xkx_k 求偏导: 含 xkx_k 的项分两类——固定 i=ki=k 贡献 jAkjxj\sum_j A_{kj}x_j,固定 j=kj=k 贡献 iAikxi\sum_i A_{ik}x_i,于是 (xTAx)xk=jAkjxj+iAikxi=(Ax)k+(ATx)k\frac{\partial (x^TAx)}{\partial x_k} = \sum_j A_{kj}x_j + \sum_i A_{ik}x_i = (Ax)_k + (A^Tx)_k,写成向量即 xTAxx=(A+AT)x\frac{\partial x^TAx}{\partial x} = (A + A^T)x;若 AA 对称,=2Ax= 2Ax。核心二: Softmax+CE 联合梯度。Softmax 概率 pi=ezijezjp_i = \frac{e^{z_i}}{\sum_j e^{z_j}},交叉熵 L=iyilogpiL = -\sum_i y_i \log p_i。先求 pjzi\frac{\partial p_j}{\partial z_i},分两种情形: i=ji = jpizi=ezi(jezj)eziezi(jezj)2=pipi2=pi(1pi)\frac{\partial p_i}{\partial z_i} = \frac{e^{z_i}(\sum_j e^{z_j}) - e^{z_i}e^{z_i}}{(\sum_j e^{z_j})^2} = p_i - p_i^2 = p_i(1-p_i);iji \neq jpjzi=0ezjezi(kezk)2=pipj\frac{\partial p_j}{\partial z_i} = \frac{0 - e^{z_j}e^{z_i}}{(\sum_k e^{z_k})^2} = -p_i p_j。再由链式法则 Lzi=jLpjpjzi=jyjpjpjzi=yipipi(1pi)+jiyjpjpipj=yi(1pi)+pijiyj\frac{\partial L}{\partial z_i} = \sum_j \frac{\partial L}{\partial p_j}\frac{\partial p_j}{\partial z_i} = -\sum_j \frac{y_j}{p_j}\frac{\partial p_j}{\partial z_i} = -\frac{y_i}{p_i}\cdot p_i(1-p_i) + \sum_{j\neq i}\frac{y_j}{p_j}\cdot p_i p_j = -y_i(1-p_i) + p_i\sum_{j\neq i} y_j。利用 jyj=1\sum_j y_j = 1(标签和为 1)得 jiyj=1yi\sum_{j\neq i}y_j = 1 - y_i,代入: yi+yipi+pipiyi=piyi-y_i + y_i p_i + p_i - p_i y_i = p_i - y_i,即 Lzi=piyi\frac{\partial L}{\partial z_i} = p_i - y_i
💡使用场景
面试官常要求白板现场推导 Lz=py\frac{\partial L}{\partial z} = p - y(Softmax + 交叉熵联合求导)、xTAxx=(A+AT)x\frac{\partial x^TAx}{\partial x} = (A+A^T)xxAxb2=2AT(Axb)\frac{\partial}{\partial x}\Vert Ax - b\Vert^2 = 2A^T(Ax-b);这是理解反向传播、Jacobian/Hessian 维度核对(维度检查法则)的前提。
解决的核心痛点
把复杂链式求导化简为可背诵的最终形式 piyip_i - y_i: 推导中 softmax 导数分 i=ji=jiji\neq j 两情形的正负号抵消、交叉熵的 logpj\log p_j 恰好“消掉”softmax 的分母,使梯度从 O(C2)O(C^2) 的雅可比矩阵计算简化为 O(C)O(C) 的向量相减——这正是 PyTorch/TensorFlow 中 Softmax+CE 梯度层(O(C) 一次前向、一次相减)的标准实现方式。
🎯5 个高频面试考点 (Exam Points)
1
白板推导 xTAxx=(A+AT)x\frac{\partial x^TAx}{\partial x} = (A+A^T)x:展开 xTAx=i,jxiAijxjx^TAx = \sum_{i,j}x_iA_{ij}x_j 逐步求偏导,AA 对称时为什么等于 2Ax2Ax?
2
白板推导 Softmax+CE 联合梯度 Lzi=piyi\frac{\partial L}{\partial z_i} = p_i - y_i:分 i=ji=j / iji\neq j 两种情形求 pjzi\frac{\partial p_j}{\partial z_i},并利用 jyj=1\sum_j y_j = 1 化简。
3
推导最小二乘梯度 xAxb22=2AT(Axb)\frac{\partial}{\partial x}\Vert Ax - b\Vert_2^2 = 2A^T(Ax-b),并解释维度检查法则(2AT(Axb)2A^T(Ax-b) 各因子形状)。
4
为什么交叉熵里的 logpj\log p_j 恰好“抵消”softmax 的分母使梯度变成 pyp-y?换成平方损失 12(piyi)2\frac{1}{2}(p_i - y_i)^2 梯度还这么简洁吗?
5
链式法则维度核对: 给定 LzRC\frac{\partial L}{\partial z} \in \mathbb{R}^CzW\frac{\partial z}{\partial W} 的形状,如何相乘得到 LW\frac{\partial L}{\partial W}?
更新于 2026-08-12
🎯
检验攻克程度:针对「矩阵求导与 Softmax 梯度」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点梯度下降下一个知识点Adam/AdamW 偏差修正推导

🔗 更多 数理基础 知识点卡片

贝叶斯推断偏差方差分解Bootstrap因果推断与 Rubin 框架