计算图(Computational Graph)

把复杂计算过程画成流程图——每个节点是一步运算,箭头表示数据流向。关键洞察:每条箭头就是一个偏导数,告诉你"起点动一下,终点变多少"。反向传播就是沿箭头逆行逐段相乘。

直觉理解

计算图就是把一个复杂计算"画成流程图"——每个节点是一步基本运算(加、乘、激活函数……),箭头表示数据的流向。

核心洞察:每条箭头是一个偏导数

计算图不只是画好看——它的每条箭头都告诉你"起点稍微动一下,终点会变多少"。这就是偏导数的可视化。

比如在神经网络中,箭头"h1z3h_1 \to z_3h1z3"对应 z3h1=w3\frac{\partial z_3}{\partial h_1} = w_3h1z3=w3——意思是"h1h_1h1 增加 1,z3z_3z3 就增加 w3w_3w3"。

正向与反向

  • 正向计算:沿箭头从左到右,逐步算出最终结果
  • 反向追溯:沿箭头从右到左,逐步乘以每条箭头的偏导数——这就是反向传播的核心操作

梯度被截断的路径

如果计算图中某个节点是 ReLU 且输入为负数(被关闭),那条箭头的偏导数为 0。从这个节点往前的整条路径,梯度信号都过不去——就像一条路被封了。

为什么计算图重要

当网络有上百万个参数时,直接对整个损失函数求导几乎不可能。但拆成计算图后,每个节点只处理一步简单运算的求导,然后沿路径相乘——这让反向传播变成了系统化的高效算法。