乘法节点
待计算
m = x × w
计算图 · 局部记账
先从左到右算节点值,再从损失反向走。每到一个运算,只核对“上游梯度 × 局部梯度”;同一个变量分成两路时,再把两路贡献相加。
输入与参数一改,整张图会重新计算。数值范围限制在教学演示需要的区间,避免结果被极端数值淹没。
蓝色沿前向方向,红色沿反向方向。节点里的红色小签是已经回传到该变量的梯度。
反向走到分叉处后,两条路径都向 a 寄回一份贡献。必须先收齐,再继续穿过 ReLU。
先逐节点揭示前向值,再切换到反向断点。聚焦断点区后,可用左右方向键移动。
前向传播
直接跳到任一站:
先别急着背完整导数。反向传播真正重复的动作很少,关键是不要漏掉分支,也不要把算梯度和改参数混为一谈。
每个运算拿到上游梯度,再乘自己的局部导数。乘法节点看另一个因子,加法节点的局部导数是 1。
a 同时影响 p 和 q,所以 ∂L/∂a 是两条路径贡献之和。只保留其中一条,会漏算参数对损失的影响。
z>0 时局部梯度为 1,反向信号通过;z≤0 时按常见约定取 0,前面的 w 与 b 收到零梯度。
∂L/∂s = s − y,∂L/∂p = ∂L/∂q = ∂L/∂s
∂L/∂a = (∂L/∂p)u + (∂L/∂q)·1
∂L/∂z = (∂L/∂a)·𝟙[z>0]
∂L/∂w = (∂L/∂z)x,∂L/∂b = ∂L/∂z
∂L/∂u = (∂L/∂p)a,∂L/∂c = ∂L/∂q