向初学者解释反向传播(第 3 部分):反向传播的实际工作原理

从一个梯度到每个梯度这篇文章《为初学者解释反向传播(第 3 部分):反向传播的实际工作原理》首先出现在《走向数据科学》上。

来源:走向数据科学

回来了!

首先,非常感谢您对本系列前两部分的回复。

很高兴你们中的许多人发现它们很有帮助。

一如既往,如果您在阅读时有任何想法、问题或建议,我很想听听您的观点。

现在,让我们从第 2 部分结束的地方继续。

为什么重新计算相同的梯度?

我们使用链式法则计算了梯度。

\[

\frac{\partial L}{\partial w_1}

=

\frac{\partial L}{\partial \hat{y}}

\cdot

\frac{\partial \hat{y}}{\partial a_1}

\frac{\partial a_1}{\partial z_1}

\frac{\partial z_1}{\partial w_1}

\]

我们得到了与之前在第 1 部分中使用经典微分导出的相同方程。

-2(y-\hat{y})

w_3

\mathrm{ReLU}'(w_1x+b_1)

x

然后我们开始了解链式法则的重要性。

现在,其他参数的梯度怎么样?

b_1,\; w_2,\; b_2,\; w_3,\; w_4,\; b_3

我们已经看到了​的整个过程。因此,我们通常会考虑对其余参数重复相同的步骤,即使用链式法则。

如果我们查看所有参数的链式法则方程,我们可以观察到许多偏导数出现了不止一次。

\frac{\partial L}{\partial b_1}

\frac{\partial z_1}{\partial b_1}

\]

\[

\frac{\partial L}{\partial w_2}

\frac{\partial \hat{y}}{\partial a_2}

\frac{\partial a_2}{\partial z_2}

\frac{\partial z_2}{\partial w_2}

\frac{\partial L}{\partial b_2}

\frac{\partial z_2}{\partial b_2}

\frac{\partial L}{\partial w_3}

\frac{\partial \hat{y}}{\partial w_3}

\frac{\partial L}{\partial w_4}

\frac{\partial \hat{y}}{\partial w_4}

\frac{\partial L}{\partial b_3}

\frac{\partial \hat{y}}{\partial b_3}

让我们考虑一下

\[b_1\]

该参数的链式法则方程为

现在,让我们将其与​的链式法则方程进行比较。

我们可以观察到链的大部分实际上是相同的。

两个方程都包含

它们还包含

唯一的区别是最终的偏导数。

对于​,最后一项是

而对于 b1,最后一项是

w_2,\; b_2,\; w_3,\; w_4,\; b_3

L为