跳转至

反向传播:为什么 ∂L/∂W₁ = x·δᵀ(外积)——逐元素链式推导

  • 章节:第23章 · 前馈神经网络(反向传播 / 解答题推导)
  • 相关条目反向传播-接力棒与内积外积.md(那条用「形状匹配」解释;本条用「链式法则逐元素」严格推出,互为补充)
  • 载体题目:作业二·5(约定 \(z=W^\top x+b\)\(x=[1,2]^\top\)\(\delta_1=[4,0]^\top\)
  • 出处:课本 p.401–402 式 23.57/23.58(反向传播)、p.403–404 课程约定 \(z=W^\top x+b\)

问题/疑问

\(\dfrac{\partial L}{\partial W_1}\) 为什么 \(=x\,\delta_1^\top\) 而不是 \(\delta_1\,x^\top\)?能不能用链式法则原本的公式推一下,而不是只看形状?

正确答案(逐元素链式推导)

第一步 · 前向写成分量形式

课程约定 \(\boldsymbol z_1=\boldsymbol W_1^\top\boldsymbol x+\boldsymbol b_1\)\(\boldsymbol W_1\)\(2\times2\)、元素记 \(W_{ij}\)

\[ z_1=W_{11}x_1+W_{21}x_2+b_1 \quad(\text{神经元 1 的净输入}) $$ $$ z_2=W_{12}x_1+W_{22}x_2+b_2 \quad(\text{神经元 2 的净输入}) \]

关键事实:每个 \(W_{ij}\) 只出现在一个 \(z\)——第二个下标 \(j\) 决定它进哪个 \(z_j\),前面乘的是 \(x_i\)

第二步 · 对单个元素 \(W_{11}\) 用链式法则

\[ \frac{\partial L}{\partial W_{11}}=\sum_k\frac{\partial L}{\partial z_k}\frac{\partial z_k}{\partial W_{11}} \]

\(W_{11}\) 只出现在 \(z_1\)\(z_2\) 式里没有它),求和只剩 \(k=1\)

\[ \frac{\partial L}{\partial W_{11}}=\frac{\partial L}{\partial z_1}\frac{\partial z_1}{\partial W_{11}} \]

\(\dfrac{\partial z_1}{\partial W_{11}}=x_1\)(其余项是常数),\(\dfrac{\partial L}{\partial z_1}=(\delta_1)_1\),于是

\[ \frac{\partial L}{\partial W_{11}}=(\delta_1)_1\,x_1=x_1(\delta_1)_1=4\times1=4 \]

第三步 · 推广到任意 \(W_{ij}\)

\(W_{ij}\) 只进 \(z_j\)、系数 \(x_i\)

\[ \boxed{\ \frac{\partial L}{\partial W_{ij}}=\frac{\partial L}{\partial z_j}\frac{\partial z_j}{\partial W_{ij}}=(\delta_1)_j\,x_i=x_i\,(\delta_1)_j\ } \]
元素 \(=x_i(\delta_1)_j\) 位置
\(\partial L/\partial W_{11}\) \(x_1\delta_1=1\times4\) 4 行1列1
\(\partial L/\partial W_{21}\) \(x_2\delta_1=2\times4\) 8 行2列1
\(\partial L/\partial W_{12}\) \(x_1\delta_2=1\times0\) 0 行1列2
\(\partial L/\partial W_{22}\) \(x_2\delta_2=2\times0\) 0 行2列2

拼回矩阵 \(=\begin{bmatrix}4&0\\8&0\end{bmatrix}\)

第四步 · 顺序被下标关系锁死

每个元素是 \(\big(\frac{\partial L}{\partial W_1}\big)_{ij}=x_i(\delta_1)_j\)行号 \(i\)\(x\),列号 \(j\)\(\delta\)。要拼出「第 \((i,j)\)\(=x_i\delta_j\)」的矩阵,只能:

\[ \underbrace{\boldsymbol x}_{2\times1,\ \text{管行}}\ \underbrace{\boldsymbol\delta_1^\top}_{1\times2,\ \text{管列}} \]

外积里左列向量的 \(i\) 撒在行、右行向量的 \(j\) 撒在列,乘出来正好 \(x_i\delta_j\)。 反写 \(\boldsymbol\delta_1\boldsymbol x^\top\) 则第 \((i,j)\)\(=(\delta_1)_i x_j\)——行配 δ、列配 x,和 \(x_i\delta_j\) 行列对调,得到转置 \(\begin{bmatrix}4&8\\0&0\end{bmatrix}\)

结论:顺序不是约定,是被 \(\partial L/\partial W_{ij}=x_i\delta_j\) 这个下标关系唯一锁死的。标量乘法可交换(\(x\delta=\delta x\)),但升到矩阵/外积 \(\boldsymbol x\boldsymbol\delta^\top\ne\boldsymbol\delta\boldsymbol x^\top\),顺序就有意义。

易错点 / 为什么错

  • 凭"标量可交换"以为 \(x\delta^\top\)\(\delta x^\top\) 一样——外积不可交换,写反得到转置矩阵。
  • 万能钥匙:忘了顺序,就现推一个 \(W_{11}\)(分量展开→链式→看哪个下标配哪个量→拼回矩阵),比死记结论稳。

⚠️ 课本记法冲突(务必认准一套)

课本内部用了两套前向约定,权重梯度因此长得不一样,但本质同一个梯度(差一个 W 转置):

位置 前向约定 权重梯度
反向传播算法/计算图 p401–402(式23.57/23.58) \(z=Wx\)(无转置,原文 \(U=W\!\cdot\!X\) 式23.58:\(\nabla_W L=\delta\,h^\top\)(δ 在左)
BN 节 p403–404 + 本课程标准 \(z=W^\top x+b\)(有转置) \(\dfrac{\partial L}{\partial W}=x\,\delta^\top\)(x 在左)
  • 本题/本课用 \(z=W^\top x+b\),所以答案是 \(x\,\delta^\top\)
  • 把课本式23.58 字面的 \(\delta h^\top\) 直接套到 \(z=W^\top x\) 约定上,否则写出转置错的矩阵。认准 \(z=W^\top x+b\)\(x\delta^\top\) 这一套。